oil_flot.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\telemac2d\oil_flot.f
00002 !
00060                      SUBROUTINE OIL_FLOT
00061 !                    *******************
00062 !
00063      &(PARTICULES,NFLOT,NFLOT_MAX,MESH,LT,VOLDEV,RHO_OIL,NB_COMPO,
00064      &NB_HAP,FMCOMPO,TBCOMPO,FMHAP,TBHAP,SOLU,ETAL,AREA,NPLAN,GRAV)
00065 !
00066 !***********************************************************************
00067 ! TELEMAC2D & TELEMAC3D  V7P0                               21/08/2010
00068 !***********************************************************************
00069 !
00070 !
00071 !
00072 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00073 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00074 !| PARTICLES      |<->| STRUCTURE OF THE OIL PARTICLE
00075 !| NFLOT          |<->| NUMBER OF FLOATS
00076 !| NFLOT_MAX      |-->| MAXIMUM NUMBER OF FLOATS
00077 !| MESH           |<->| MESH STRUCTURE
00078 !| LT             |-->| CURRENT TIME STEP
00079 !| VOLDEV         |-->| VOLUME OF THE OIL SPILL
00080 !| RHO_OIL        |-->| OIL DENSITY
00081 !| NB_COMPO       |-->| NUMBER OF UNSOLUBLE COMPOUND IN OIL
00082 !| NB_HAP         |-->| NUMBER OF SOLUBLE COMPOUND IN OIL
00083 !| FMCOMPO        |-->| MASS FRACTION OF UNSOLUBLE COMPOUND IN OIL
00084 !| TBCOMPO        |-->| BOILING POINT OF UNSOLUBLE COMPOUND IN OIL
00085 !| FMHAP          |-->| MASS FRACTION OF SOLUBLE COMPOUND IN OIL
00086 !| TBHAP          |-->| BOILING POINT OF SOLUBLE COMPOUND IN OIL
00087 !| SOLU           |-->| SOLUBILITY OF SOLUBLE COMPOUND IN OIL
00088 !| ETAL           |-->| NUMBER OF THE SPREADING MODEL
00089 !| AREA           |-->| AREA OF OIL PARTICLE IF ETAL = 3
00090 !| NPLAN          |-->| NUMBER OF PLANES
00091 !| GRAV           |-->| GRAVITY
00092 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00093 !
00094       USE BIEF
00095       USE STREAMLINE, ONLY : ADD_PARTICLE
00096 !
00097       IMPLICIT NONE
00098       INTEGER LNG,LU
00099       COMMON/INFO/LNG,LU
00100 !
00101 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00102 !
00103       INTEGER, INTENT(INOUT)          :: NFLOT
00104       INTEGER, INTENT(IN)             :: NFLOT_MAX,LT,NPLAN
00105       INTEGER, INTENT(IN)             :: NB_COMPO,NB_HAP
00106       INTEGER, INTENT(IN)             :: ETAL
00107       DOUBLE PRECISION, INTENT(IN)    :: GRAV
00108       DOUBLE PRECISION, INTENT(IN)    :: VOLDEV,RHO_OIL,AREA
00109       DOUBLE PRECISION, INTENT(IN)    :: FMCOMPO(NB_COMPO)
00110       DOUBLE PRECISION, INTENT(IN)    :: TBCOMPO(NB_COMPO)
00111       DOUBLE PRECISION, INTENT(IN)    :: FMHAP(NB_HAP)
00112       DOUBLE PRECISION, INTENT(IN)    :: TBHAP(NB_HAP)
00113       DOUBLE PRECISION, INTENT(IN)    :: SOLU(NB_HAP)
00114       TYPE(BIEF_MESH), INTENT(INOUT)  :: MESH
00115       TYPE(OIL_PART), INTENT(INOUT)   :: PARTICULES(NFLOT_MAX)
00116 !
00117 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00118 !
00119       INTEGER K,J,NUM_GLO,NUM_LOC,NUM_MAX,I,NFLOT_OIL,TAGFLO(1)
00120       INTEGER ELTFLO(1),ETAFLO(1)
00121       DOUBLE PRECISION RHO_EAU,PI,COEF1,COEF2,DELTA,NU,NU2,COORD_X
00122       DOUBLE PRECISION COORD_Y,XFLOT(1), YFLOT(1),ZFLOT(1),SHPFLO(3,1)
00123       DOUBLE PRECISION SHZFLO(1)
00124 !
00125 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00126 !
00127 !     THIS IS AN EXAMPLE !!!!!!!!!!!!!!!!!!!!
00128 !
00129       RHO_EAU=1000.D0
00130       PI=ACOS(-1.D0)
00131 !     HARDCODED WATER MOLECULAR VISCOSITY
00132       NU=1.D-6
00133       NU2=NU**2
00134 !
00135       COEF1=1.21D0**4
00136       COEF2=COEF1/1.53D0**2
00137       DELTA=(RHO_EAU-RHO_OIL)/(RHO_EAU)
00138 !
00139       IF(LT.EQ.10000) THEN
00140         NUM_GLO=0
00141         NUM_MAX=0
00142         NUM_LOC=0
00143         COORD_X=0.D0
00144         COORD_Y=0.D0
00145         NUM_MAX=INT(SQRT(REAL(NFLOT_MAX)))
00146         DO K=0,NUM_MAX-1
00147           DO J=0,NUM_MAX-1
00148             COORD_X=336000.D0+REAL(J)
00149             COORD_Y=371000.D0+REAL(K)
00150             NUM_GLO=NUM_GLO+1
00151             NFLOT_OIL = 0
00152             IF(MESH%DIM.EQ.3)THEN
00153               CALL ADD_PARTICLE(COORD_X,COORD_Y,COORD_Y,NUM_GLO,
00154      &                         NFLOT_OIL,1,XFLOT,YFLOT,ZFLOT,TAGFLO,
00155      &                         SHPFLO,SHZFLO,ELTFLO,ETAFLO,MESH,NPLAN,
00156      &                         0.D0,0.D0,0.D0,0.D0,0,0)
00157             ELSEIF(MESH%DIM.EQ.2)THEN
00158               CALL ADD_PARTICLE(COORD_X,COORD_Y,0.D0,NUM_GLO,
00159      &                         NFLOT_OIL,1,XFLOT,YFLOT,YFLOT,TAGFLO,
00160      &                         SHPFLO,SHPFLO,ELTFLO,ELTFLO,MESH,1,
00161      &                         0.D0,0.D0,0.D0,0.D0,0,0)
00162             END IF
00163             IF(NFLOT_OIL.EQ.1)THEN
00164               NUM_LOC = NUM_LOC+1
00165 !=========================================================================
00166 !----INITIALIZATION PARAMETERS FOR THE CALCULATION OF PARTICULE MOTION----
00167 !=========================================================================
00168               PARTICULES(NUM_LOC)%XOIL = XFLOT(1)
00169               PARTICULES(NUM_LOC)%YOIL = YFLOT(1)
00170               PARTICULES(NUM_LOC)%ID = TAGFLO(1)
00171               PARTICULES(NUM_LOC)%SHPOIL(1) = SHPFLO(1,1)
00172               PARTICULES(NUM_LOC)%SHPOIL(2) = SHPFLO(2,1)
00173               PARTICULES(NUM_LOC)%SHPOIL(3) = SHPFLO(3,1)
00174               PARTICULES(NUM_LOC)%ELTOIL = ELTFLO(1)
00175               IF(MESH%DIM.EQ.3)THEN
00176                 PARTICULES(NUM_LOC)%ZOIL = ZFLOT(1)
00177                 PARTICULES(NUM_LOC)%ETAOIL = ETAFLO(1)
00178                 PARTICULES(NUM_LOC)%SHZOIL = SHZFLO(1)
00179               END IF
00180 !=========================================================================
00181 !-----------INITIALIZATION PARAMETERS FOR THE CALCULATION OF OIL----------
00182 !---------------------------WEATHERING PROCESSES--------------------------
00183 !=========================================================================
00184               PARTICULES(NUM_LOC)%STATE=1
00185               PARTICULES(NUM_LOC)%TPSECH=0
00186               IF(ETAL.EQ.1)THEN
00187                 PARTICULES(NUM_LOC)%SURFACE=PI*COEF2*
00188      &                           (DELTA*GRAV/(VOLDEV*NU2))**(1.D0/6.D0)*
00189      &                           VOLDEV/DBLE(NFLOT_MAX)
00190               ELSEIF(ETAL.EQ.2) THEN
00191                 PARTICULES(NUM_LOC)%SURFACE = 0.D0
00192               ELSEIF(ETAL.EQ.3)THEN
00193                 PARTICULES(NUM_LOC)%SURFACE = AREA
00194               ELSE
00195                 IF(LNG.EQ.1) THEN
00196                   WRITE(LU,*) 'ETAL=',ETAL,' INCONNU DANS OIL_FLOT'
00197                 ENDIF
00198                 IF(LNG.EQ.1) THEN
00199                   WRITE(LU,*) 'ETAL=',ETAL,' UNKNOWN IN OIL_FLOT'
00200                 ENDIF
00201                 CALL PLANTE(1)
00202                 STOP
00203               END IF
00204               PARTICULES(NUM_LOC)%MASS0=(VOLDEV*RHO_OIL)/DBLE(NFLOT_MAX)
00205               PARTICULES(NUM_LOC)%MASS_EVAP=0.D0
00206               PARTICULES(NUM_LOC)%MASS_DISS=0.D0
00207               DO I=1,NB_COMPO
00208                 PARTICULES(NUM_LOC)%COMPO(I)%MASS=
00209      &                PARTICULES(NUM_LOC)%MASS0*FMCOMPO(I)
00210                 PARTICULES(NUM_LOC)%COMPO(I)%TB=TBCOMPO(I)
00211                 PARTICULES(NUM_LOC)%COMPO(I)%SOL=0.D0
00212                 PARTICULES(NUM_LOC)%MASS=PARTICULES(NUM_LOC)%MASS+
00213      &               PARTICULES(NUM_LOC)%COMPO(I)%MASS
00214               END DO
00215               DO I=1,NB_HAP
00216                 PARTICULES(NUM_LOC)%HAP(I)%MASS=
00217      &                PARTICULES(NUM_LOC)%MASS0*FMHAP(I)
00218                 PARTICULES(NUM_LOC)%HAP(I)%TB=TBHAP(I)
00219                 PARTICULES(NUM_LOC)%HAP(I)%SOL=SOLU(I)
00220                 PARTICULES(NUM_LOC)%MASS=PARTICULES(NUM_LOC)%MASS+
00221      &               PARTICULES(NUM_LOC)%HAP(I)%MASS
00222               END DO
00223               NFLOT = NUM_LOC
00224             END IF
00225           END DO
00226         END DO
00227       ENDIF
00228 !
00229 !-----------------------------------------------------------------------
00230 !
00231       RETURN
00232       END

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