masbas2d.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\telemac2d\masbas2d.f
00002 !
00053                      SUBROUTINE MASBAS2D
00054 !                    *******************
00055 !
00056      &(VOLU2D,V2DPAR,UNSV2D,IELM,MESH,MSK,MASKEL,T1,S)
00057 !
00058 !***********************************************************************
00059 ! TELEMAC2D   V6P1                                   21/08/2010
00060 !***********************************************************************
00061 !
00062 !
00063 !
00064 !
00065 !
00066 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00067 !| IELM           |-->| TYPE OF ELEMENT (11 FOR LINEAR)
00068 !| MASKEL         |-->| ARRAY OF MASKS, PER ELEMENT
00069 !| MESH           |<->| MESH STRUCTURE
00070 !| MSK            |-->| IF YES, THERE IS MASKING, MASKEL IS TO BE USED
00071 !| S              |-->| EMPTY BIEF_OBJ STRUCTURE
00072 !| T1             |<->| BIEF_OBJ STRUCTURE FOR LOCAL WORK
00073 !| UNSV2D         |<->| INVERSE OF INTEGRAL OF TEST FUNCTIONS
00074 !|                |   | WITHOUT MASKING
00075 !| V2DPAR         |<->| AS VOLU2D IF NOT PARALLEL
00076 !|                |   | IN PARALLEL COMPLETED WITH OTHER SUBDOMAINS
00077 !| VOLU2D         |<->| INTEGRAL OF TEST FUNCTIONS, WITH MASKING
00078 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00079 !
00080       USE BIEF
00081 !
00082       IMPLICIT NONE
00083       INTEGER LNG,LU
00084       COMMON/INFO/LNG,LU
00085 !
00086 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00087 !
00088       INTEGER, INTENT(IN)            :: IELM
00089       LOGICAL, INTENT(IN)            :: MSK
00090       TYPE(BIEF_OBJ) , INTENT(INOUT) :: VOLU2D,V2DPAR,UNSV2D,T1
00091       TYPE(BIEF_OBJ) , INTENT(IN)    :: MASKEL,S
00092       TYPE(BIEF_MESH), INTENT(INOUT) :: MESH
00093 !
00094 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00095 !
00096 !     VOLU2D : VOLUME WITH POSSIBLE MASKING
00097 !
00098       CALL VECTOR(VOLU2D,'=','MASBAS          ',IELM,1.D0,
00099      &            S,S,S,S,S,S,MESH,MSK,MASKEL)
00100 !
00101 !     V2DPAR : LIKE VOLU2D BUT IN PARALLEL VALUES COMPLETED AT
00102 !              INTERFACES BETWEEN SUBDOMAINS
00103 !
00104       CALL OS('X=Y     ',X=V2DPAR,Y=VOLU2D)
00105       IF(NCSIZE.GT.1) CALL PARCOM(V2DPAR,2,MESH)
00106 !
00107 !     INVERSE OF VOLUMES (DONE WITHOUT MASKING), THERE SHOULD BE
00108 !     NO DIVISION BY ZERO, UNLESS ELEMENT WITH NO AREA
00109 !
00110       IF(MSK) THEN
00111         CALL VECTOR(T1,'=','MASBAS          ',IELM,1.D0,
00112      &              S,S,S,S,S,S,MESH,.FALSE.,MASKEL)
00113         IF(NCSIZE.GT.1) CALL PARCOM(T1,2,MESH)
00114         CALL OS('X=1/Y   ',X=UNSV2D,Y=T1)
00115       ELSE
00116         CALL OS('X=1/Y   ',X=UNSV2D,Y=V2DPAR)
00117       ENDIF
00118 !
00119 !-----------------------------------------------------------------------
00120 !
00121       RETURN
00122       END

Generated on Fri Aug 31 2013 18:12:58 by S.E.Bourban (HRW) using doxygen 1.7.0