fluver_2.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\telemac3d\fluver_2.f
00002 !
00041                      SUBROUTINE FLUVER_2
00042 !                    *******************
00043 !
00044      &(FLUVER2,UP,VP,WP,GRADZF,VOLU2D,DSSUDT,NPLAN,NPOIN2)
00045 !
00046 !***********************************************************************
00047 ! TELEMAC3D   V6P1                                   21/08/2010
00048 !***********************************************************************
00049 !
00050 !
00051 !
00052 !
00053 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00054 !| DSSUDT         |-->| (H-HN)/DT
00055 !| FLUVER2        |<->| RESULT
00056 !| GRADZF         |-->| BOTTOM GRADIENT
00057 !| NPLAN          |-->| NUMBER OF PLANES IN THE 3D MESH OF PRISMS
00058 !| NPOIN2         |-->| NUMBER OF 2D POINTS
00059 !| VOLU2D         |-->| 2D VOLUME
00060 !| UP             |-->| INTERMEDIATE VELOCITY FIELD
00061 !| VP             |-->| INTERMEDIATE VELOCITY FIELD
00062 !| WP             |-->| INTERMEDIATE VELOCITY FIELD
00063 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00064 !
00065       USE BIEF
00066 !
00067       IMPLICIT NONE
00068       INTEGER LNG,LU
00069       COMMON/INFO/LNG,LU
00070 !
00071 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00072 !
00073       INTEGER, INTENT(IN)           :: NPLAN,NPOIN2
00074       TYPE(BIEF_OBJ), INTENT(INOUT) :: FLUVER2
00075       TYPE(BIEF_OBJ), INTENT(IN)    :: UP,VP,WP,GRADZF,VOLU2D,DSSUDT
00076 !
00077 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00078 !
00079       INTEGER IPLAN,IPOIN2,ILEVEL,IUPPER
00080       DOUBLE PRECISION FLUXMID,NPX,NPY,UMID,VMID,WMID
00081 !
00082 !-----------------------------------------------------------------------
00083 !
00084 !     CONTRIBUTION OF BOUNDARY CONDITIONS: BOTTOM (FLUBOT)
00085 !     THIS INITIALISES THE FIRST PLANE
00086 !
00087       DO IPOIN2=1,NPOIN2
00088         FLUVER2%R(IPOIN2)=0.D0
00089       ENDDO
00090 !
00091 !-----------------------------------------------------------------------
00092 !
00093 !     FOR ALL PLANES BUT FREE SURFACE (HENCE ALL LAYERS)
00094 !     COMPUTATION OF INTERMEDIATE FLUX
00095 !     IT WILL BE ADDED TO LOWER PLANE AND SUBTRACTED FROM UPPER PLANE
00096 !
00097       DO IPLAN=1,NPLAN-1
00098 !
00099         DO IPOIN2=1,NPOIN2
00100           ILEVEL=(IPLAN-1)*NPOIN2+IPOIN2
00101           IUPPER=ILEVEL+NPOIN2
00102           NPX=0.5D0*(  GRADZF%ADR(1)%P%R(IUPPER)
00103      &                +GRADZF%ADR(1)%P%R(ILEVEL) )
00104           NPY=0.5D0*(  GRADZF%ADR(2)%P%R(IUPPER)
00105      &                +GRADZF%ADR(2)%P%R(ILEVEL) )
00106           UMID=0.5D0*(UP%R(IUPPER)+UP%R(ILEVEL))
00107           VMID=0.5D0*(VP%R(IUPPER)+VP%R(ILEVEL))
00108           WMID=0.5D0*(WP%R(IUPPER)+WP%R(ILEVEL))
00109           FLUXMID=VOLU2D%R(IPOIN2) * (-UMID*NPX-VMID*NPY+WMID)
00110 !
00111 !         FLUXMID IS DOWN FOR UPPER LEVEL (NOT YET INITIALISED)
00112           FLUVER2%R(IUPPER)=                 +FLUXMID
00113 !         FLUXMID IS UP FOR LEVEL (ALREADY INITIALISED)
00114           FLUVER2%R(ILEVEL)=FLUVER2%R(ILEVEL)-FLUXMID
00115         ENDDO
00116 !
00117       ENDDO
00118 !
00119 !-----------------------------------------------------------------------
00120 !
00121 !     CONTRIBUTION OF BOUNDARY CONDITIONS: FREE SURFACE (FLUSUR)
00122 !
00123 !     FLUSUR
00124 !
00125       DO IPOIN2=1,NPOIN2
00126         ILEVEL=(NPLAN-1)*NPOIN2+IPOIN2
00127         FLUVER2%R(ILEVEL)=FLUVER2%R(ILEVEL)
00128      &                   -VOLU2D%R(IPOIN2)*DSSUDT%R(IPOIN2)
00129       ENDDO
00130 !
00131 !-----------------------------------------------------------------------
00132 !
00133       RETURN
00134       END

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