fluhyd.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\telemac2d\fluhyd.f
00002 !
00079                         SUBROUTINE FLUHYD
00080 !                       *****************
00081 !
00082      &(NS,NT,NSEG,NPTFR,NUBO,G,DT,X,Y,AIRS,NU,AIRE,
00083      & UA,ZF,VNOIN,CE,NBOR,LIMPRO,XNEBOR,YNEBOR,KDIR,KNEU,
00084      & HBOR,UBOR,VBOR,FLUENT,FLUSORT,NORDRE,CMI,JMI,
00085      & DJX,DJY,DX,DY,DTHAUT,CFLWTD,FLBOR,
00086      & DPX,DPY,IVIS,CVIS,FLUHBTEMP,BETA,DSZ,AIRST,HC,FLUXTEMP,
00087      & NTRAC,ELTSEG,IFABOR,MESH)
00088 !
00089 !***********************************************************************
00090 ! TELEMAC2D   V6P1                                   03/15/2011
00091 !***********************************************************************
00092 !
00093 !
00094 !
00095 !
00096 !
00097 !
00098 !
00099 !
00100 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00101 !| AIRE           |-->| ELEMENT AREA
00102 !| AIRS           |-->| CELL AREA
00103 !| AIRST          |-->| AREA OF SUB-TRIANGLES (SECOND ORDER)
00104 !| BETA           |-->| EXTRAPOLATION COEFFICIENT FOR ORDRE 2
00105 !| CE             |<--| FLUX   +  DIFFUSION TERMS
00106 !| CFLWTD         |-->| CFL NUMBER
00107 !| CMI            |-->| COORDINATES OF MIDDLE POINTS OF INTERFACES
00108 !| CVIS           |-->| COEFFICIENT OF DIFFUSION FOR THE VELOCITIES
00109 !| DJX,DJY        |-->| GRADIENTS PER TRIANGLE
00110 !| DSZ            |-->| VARIATIONS Z (BATHY) FOR ORDRE 2
00111 !| DT             |<->| TIME STEP
00112 !| DTHAUT         |-->| USED FOR CFL CONDITION
00113 !| DX,DY          |---| GRADIENTS PER NODES
00114 !| FLUENT,FLUSORT |<--| INLET AND OUTLET MASS FLUXS BETWEEN TN AND TN+1
00115 !| FLUHBTEMP      |<--| TRACER BORD FLUXES
00116 !| FLUXTEMP       |<--| FLUX FOR TRACER
00117 !| G              |-->| GRAVITY
00118 !| HBOR           |-->| PRESCRIBED VALUES FOR H
00119 !| HC             |<--| RECONSTRUCTED H FOR ORDRE 2
00120 !| IVIS           |-->| OPTION FOR THE DIFFUSION OF VELOCITIES
00121 !| JMI            |-->| NUMBER OF THE TRIANGLE IN WHICH IS LOCATED
00122 !|                |   | THE MIDDLE POINT OF THE INTERFACE
00123 !| KDDL           |-->| CONVENTION FOR THE FREE POINTS
00124 !| KDIR           |-->| CONVENTION DIRICHLET POINTS
00125 !| KNEU           |-->| CONVENTION NEUMANN POINTS
00126 !| LIMPRO         |-->| TYPES OF BOUNDARY CONDITION
00127 !| NBOR           |-->| GLOBAL NUMBER OF BOUNDARY NODES
00128 !| NORDRE         |-->| ORDRE OF THE SCHEME
00129 !| NPTFR          |-->| NUMBER OF BOUNDARY POINTS
00130 !| NS             |-->| TOTAL NUMER OF POINTS IN THE MESH
00131 !| NSEG           |-->| NUMBER OF EDGES IN THE MESH
00132 !| NT             |-->| NUMBER OF ELEMENTS IN THE MESH
00133 !| NTRAC          |---| NUMBER OF TRACER
00134 !| NU             |-->| NUMEROS OF NODES PER TRIANGLE
00135 !| NUBO           |-->| GLOBAL NUMBERS OF THE NODES FORMING THE EDGE
00136 !| UA             |-->| UA(1,IS) = H,  UA(2,IS)=U  ,UA(3,IS)=V
00137 !| UBOR           |-->| PERSCRIBED VALUES FOR U
00138 !| VBOR           |-->| PRESCRIBED VALUES FOR V
00139 !| VNOIN          |-->| NORMAL VECTOR TO THE INTERFACE
00140 !|                |   | (2 FIRST COMPONENTS) AND
00141 !|                |   | LENGTH OF THE SEGMENT (3RD COMPONENT)
00142 !| X,Y            |-->| COORDINATES IF THE NODES
00143 !| XNEBOR,YNEBOR  |-->| NORMAL VECTOR TO BOUNDARY NODES
00144 !| ZF             |-->| BATHYMETRY
00145 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00146 !
00147       USE BIEF
00148       USE DECLARATIONS_TELEMAC2D, ONLY:DEBUG
00149       USE INTERFACE_TELEMAC2D, EX_FLUHYD => FLUHYD
00150 !
00151       IMPLICIT NONE
00152       INTEGER LNG,LU
00153       COMMON/INFO/LNG,LU
00154 !
00155 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00156 !
00157       INTEGER, INTENT(IN) :: NS,NT,NSEG,NPTFR,KDIR,KNEU,NORDRE
00158       INTEGER, INTENT(IN) :: NBOR(NPTFR),LIMPRO(NPTFR,6),NU(NT,3)
00159       INTEGER, INTENT(IN) :: NUBO(2,NSEG),JMI(*),IVIS,NTRAC
00160       INTEGER, INTENT(IN)  :: ELTSEG(NT,3)
00161       DOUBLE PRECISION, INTENT(IN) :: XNEBOR(2*NPTFR),YNEBOR(2*NPTFR)
00162       DOUBLE PRECISION, INTENT(IN) :: HBOR(NPTFR),G,CFLWTD,DTHAUT(*)
00163       DOUBLE PRECISION, INTENT(IN) ::UBOR(NPTFR),VBOR(NPTFR),CMI(NSEG,2)
00164       DOUBLE PRECISION, INTENT(IN) :: AIRST(2,*),CVIS
00165       DOUBLE PRECISION, INTENT(IN) :: X(NS),Y(NS),AIRS(NS),AIRE(NT)
00166       DOUBLE PRECISION, INTENT(INOUT) :: BETA,DT,HC(2,*)
00167       DOUBLE PRECISION, INTENT(INOUT) :: CE(NS,3),FLUENT,FLUSORT
00168       DOUBLE PRECISION, INTENT(IN) :: UA(3,NS),ZF(NS),VNOIN(3,NSEG)
00169       DOUBLE PRECISION, INTENT(IN) :: DSZ(2,*),DPX(3,NT),DPY(3,NT)
00170       DOUBLE PRECISION, INTENT(INOUT) :: DJX(3,*),DJY(3,*)
00171       DOUBLE PRECISION, INTENT(INOUT) :: DX(3,*),DY(3,*)
00172       TYPE(BIEF_OBJ), INTENT(INOUT) :: FLUXTEMP,FLUHBTEMP,FLBOR
00173       INTEGER, INTENT(IN)             :: IFABOR(NT,3)
00174       TYPE(BIEF_MESH),INTENT(INOUT)   :: MESH
00175 !
00176 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00177 !
00178       INTEGER IS,ITRAC
00179 !
00180 !-----------------------------------------------------------------------
00181 !
00182 !    INITIALISATION
00183       CE(:,1)=(/(0.D0,IS=1,NS)/)
00184       CE(:,2)=(/(0.D0,IS=1,NS)/)
00185       CE(:,3)=(/(0.D0,IS=1,NS)/)
00186 !
00187 !-----------------------------------------------------------------------
00188 !
00189 !     COMPUTES GRADIENTS AT NODES AS WELL AS DIFFUSION TERMS
00190 !
00191       IF(NORDRE.EQ.2.OR.IVIS.EQ.1) THEN
00192         CALL GRADNOD(NS,NT,NU,AIRE,AIRS,
00193      &               UA,DPX,DPY,DJX,DJY,DX,DY,IVIS,CVIS,CE,ZF,MESH)
00194       ENDIF
00195 !
00196       CALL FLUCIN(NS,NT,NSEG,NUBO,G,X,Y,CFLWTD,DT,UA,ZF,VNOIN,CE,NORDRE,
00197      &          CMI,JMI,DJX,DJY,DX,DY,BETA,DSZ,AIRS,
00198      &          AIRST,HC,FLUXTEMP,NPTFR,NBOR,XNEBOR,YNEBOR,NTRAC,ELTSEG,
00199      &          IFABOR,MESH)
00200 !
00201 !     FOR PARALLELISM
00202 !
00203       IF(NCSIZE.GT.1)THEN
00204         CALL PARCOM2(CE(1,1),CE(1,2),CE(1,3),NS,1,2,3,MESH)
00205         IF(NTRAC.GT.0)THEN
00206           DO ITRAC=1,NTRAC
00207             CALL PARCOM2_SEG(FLUXTEMP%ADR(ITRAC)%P%R,
00208      &                       FLUXTEMP%ADR(ITRAC)%P%R, ! NO EFFECT FOR THIS ONE
00209      &                       FLUXTEMP%ADR(ITRAC)%P%R, ! NO EFFECT FOR THIS ONE
00210      &                  NSEG,1,    2,   1,  MESH,1,  11)
00211                            ! NPLAN,ICOM,IAN,MESH,OPT,IELM)
00212           ENDDO
00213         ENDIF
00214       ENDIF
00215 !
00216 !     BOUNDARY CONDITIONS TREATMENT
00217 !
00218       CALL CDL(NS,NPTFR,NBOR,LIMPRO,XNEBOR,YNEBOR,KDIR,KNEU,
00219      &         G,HBOR,UBOR,VBOR,UA,CE,FLUENT,FLUSORT,FLBOR,
00220      &         DTHAUT,DT,CFLWTD,FLUHBTEMP,NTRAC)
00221 
00222 !
00223 !     ASSEMBLY IN PARALLEL (EVEN IF NPTFR=0)
00224 !
00225       IF(NCSIZE.GT.1) THEN
00226         CALL PARCOM_BORD(CE(:,1),2,MESH)
00227         CALL PARCOM_BORD(CE(:,2),2,MESH)
00228         CALL PARCOM_BORD(CE(:,3),2,MESH)
00229       ENDIF
00230 !
00231 !
00232 !-----------------------------------------------------------------------
00233 !
00234       RETURN
00235       END

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