cvsp_alt.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\sisyphe\cvsp_alt.f
00002 !
00073                   DOUBLE PRECISION FUNCTION CVSP_ALT
00074 !                 **********************************
00075 !
00076      &(J, FORMULA)
00077 !
00078 !***********************************************************************
00079 ! SISYPHE   V6P3                                   12/03/2013
00080 !***********************************************************************
00081 !
00082 !
00083 !
00084 !
00085 !
00086 !
00087 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00088 !| J              |<--| INDEX OF A POINT IN MESH
00089 !| FORMULA        |<--| WHICH FORMULA TO USE TO CALCULATE THE ALT
00090 !| VCE            |-->| WATER VISCOSITY
00091 !| XMVE           |-->| FLUID DENSITY
00092 !| XMVS           |-->| SEDIMENT DENSITY
00093 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00094 !
00095       USE BIEF
00096       USE DECLARATIONS_SISYPHE
00097 !
00098       IMPLICIT NONE
00099       INTEGER LNG,LU
00100       COMMON/INFO/LNG,LU
00101 
00102       INTEGER, INTENT(IN) :: J
00103       INTEGER, INTENT(IN) :: FORMULA
00104 !
00105 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00106 !
00107       INTEGER  I
00108       DOUBLE PRECISION RHO, RHO_S, G, D50, D90, DIAMAX, TAUC, TAUB, D
00109       DOUBLE PRECISION A1, A2, A3, A4, A5, A6, RHOCR, PON, SUMME
00110       DOUBLE PRECISION DSTAR
00111 !
00112 !-----------------------------------------------------------------------
00113 !
00114 ! ATTENTION !
00115 !
00116 !-----------------------------------------------------------------------
00117 !
00118 ! EXPECTS GRAIN CLASSES TO BE SORTED IN ASCENDING ORDER
00119 ! UNLIKE SISYPHE!!!
00120 ! IMPROVE IT!!!
00121 !
00122 !-----------------------------------------------------------------------
00123 !
00124 !
00125 !-----------------------------------------------------------------------
00126 ! CHECK ASCENDING ORDER OF CLASSES D50
00127 !-----------------------------------------------------------------------
00128 !
00129       DO I=1,NSICLA-1
00130         IF(FDM(I).GE.FDM(I+1)) THEN
00131           WRITE(LU,*) 'STOPPING!!!! GRAIN CLASSES HAVE TO BE',
00132      &                ' IN ASCENDING ORDER!!! FOR DYNAMIC ALT'
00133           CALL PLANTE(1)
00134           STOP
00135         ENDIF
00136       ENDDO
00137 !
00138 !-----------------------------------------------------------------------
00139 ! BASICS
00140 !-----------------------------------------------------------------------
00141 !
00142       G = GRAV
00143       RHO = XMVE
00144       RHO_S = XMVS
00145       PON = XKV
00146 !
00147 !-----------------------------------------------------------------------
00148 ! CHARACTERISTIC GRAIN DIAMETERS FOR SURFACE
00149 !-----------------------------------------------------------------------
00150 !
00151 !
00152 !-----------------------------------------------------------------------
00153 ! D50 - RAW APROXIMATION OVER LAYER 1 (ACTUALLY IT SHOULD BE SOLVED RECURSSIVE)
00154 !-----------------------------------------------------------------------
00155 !
00156       D50 = 0.D0
00157       DO I=1,NSICLA
00158         D50 =  D50 + FDM(I)*AVAIL(J,1,I)
00159       ENDDO
00160 !     D50 = ACLADM%R(J)
00161 !
00162 !-----------------------------------------------------------------------
00163 ! DIAMAX - FIRST APPROXIMATION
00164 !-----------------------------------------------------------------------
00165 !
00166       DO I=1,NSICLA
00167         IF(AVAIL(J,1,I).GE.0.01D0) DIAMAX = FDM(I)
00168       ENDDO
00169 !
00170 !-----------------------------------------------------------------------
00171 ! D90 - ONLY FIRST APPROXIMATION!
00172 !-----------------------------------------------------------------------
00173 !
00174       SUMME = AVAIL(J,1,1)
00175       D90 = 0.D0
00176       IF (AVAIL(J,1,1).GE.0.999D0) THEN
00177         D90 = D50
00178       ELSE
00179         DO I=2,NSICLA
00180           SUMME = AVAIL(J,1,I) + SUMME
00181           IF(SUMME.GE.0.9D0.AND.AVAIL(J,1,I).GT.0.D0) THEN
00182             D90 = (0.9D0 - (SUMME-AVAIL(J,1,I)))/
00183      &            AVAIL(J,1,I)*(FDM(I)-FDM(I-1)) + FDM(I-1)
00184             EXIT
00185           ENDIF
00186         ENDDO
00187       ENDIF
00188       D = D50
00189 !
00190 !-----------------------------------------------------------------------
00191 ! SHEAR PARAMETERS
00192 !
00193 ! HERE ARE ENOUGH POSSIBILITIES FOR IMPROVEMENT
00194 !-----------------------------------------------------------------------
00195 !
00196 !-----------------------------------------------------------------------
00197 ! NON-DIMENSION PARTICLE PARAMETER
00198 !-----------------------------------------------------------------------
00199 !
00200       DSTAR = D50*((XMVS/XMVE-1.D0)*G/(VCE**2))**(1./3.)
00201 !
00202 !-----------------------------------------------------------------------
00203 ! SHIELDS PARAMETER
00204 !-----------------------------------------------------------------------
00205 !
00206       IF(DSTAR <= 4.D0) THEN
00207         RHOCR = 0.24D0*DSTAR**(-1.D0)
00208       ELSEIF (DSTAR <= 10.D0)THEN
00209         RHOCR = 0.14D0*DSTAR**(-0.64D0)
00210       ELSEIF (DSTAR <= 20.D0)THEN
00211         RHOCR = 0.04D0*DSTAR**(-0.1D0)
00212       ELSEIF (DSTAR <= 150.D0)THEN
00213         RHOCR = 0.013D0*DSTAR**(0.29D0)
00214       ELSE
00215         RHOCR = 0.055D0
00216       ENDIF
00217 !
00218       TAUC = RHOCR*((XMVS-XMVE)*G*D50)
00219       TAUB = TOB%R(J)
00220 !
00221 !-----------------------------------------------------------------------
00222 ! NEW ACTIVE LAYER THICKNESS
00223 !-----------------------------------------------------------------------
00224 !
00225 !-----------------------------------------------------------------------
00226 ! HUNZIKER & G´┐ŻNTHER
00227 !-----------------------------------------------------------------------
00228 !
00229       CVSP_ALT = 5.D0 * DIAMAX
00230       A1 = CVSP_ALT
00231 !
00232 !-----------------------------------------------------------------------
00233 ! FREDSOE & DEIGAARD 1992
00234 !-----------------------------------------------------------------------
00235 !
00236       CVSP_ALT = 2.D0 * TAUB / (G*(RHO_S-RHO))
00237      &     / TAN(PHISED/180.0D0*PI) / (1.D0-PON)
00238       A2 = CVSP_ALT
00239 !
00240 !-----------------------------------------------------------------------
00241 ! VAN RIJN 1993
00242 !-----------------------------------------------------------------------
00243 !
00244       IF(TAUB.LT.TAUC) THEN
00245         CVSP_ALT = 0.D0
00246       ELSE
00247         CVSP_ALT = 0.3D0*(DSTAR**0.7D0)*((TAUB-TAUC)/TAUC)**0.5*D50
00248       ENDIF
00249 !
00250       A3 = CVSP_ALT
00251 !
00252 !-----------------------------------------------------------------------
00253 ! WONG 2006
00254 !-----------------------------------------------------------------------
00255 !
00256       IF((TAUB/(RHO_S-RHO)/G/D50).LT.0.0549D0) THEN
00257         CVSP_ALT = 0.D0
00258       ELSE
00259         CVSP_ALT=5.0D0*D50*((TAUB/(RHO_S-RHO)/G/D50)
00260      &        -0.0549D0)**0.56D0
00261       ENDIF
00262       A4 = CVSP_ALT
00263 !
00264 !-----------------------------------------------------------------------
00265 ! MALCHEREK 2003
00266 !-----------------------------------------------------------------------
00267 !
00268       CVSP_ALT = D90 / (1.D0-PON) * MAX(1.D0,(TAUB/TAUC))
00269       A5 = CVSP_ALT
00270 !
00271 !-----------------------------------------------------------------------
00272 ! SISYPHE
00273 !-----------------------------------------------------------------------
00274 !
00275       CVSP_ALT = 3.D0 * D50
00276       A6 = CVSP_ALT
00277 !
00278 !-----------------------------------------------------------------------
00279 ! CONSTANT FROM CAS FILE
00280 !-----------------------------------------------------------------------
00281 !
00282       CVSP_ALT = ELAY0
00283 !
00284 !-----------------------------------------------------------------------
00285 !
00286       IF(FORMULA == 0) CVSP_ALT = ELAY0
00287       IF(FORMULA == 1) CVSP_ALT = A1
00288       IF(FORMULA == 2) CVSP_ALT = A2
00289       IF(FORMULA == 3) CVSP_ALT = A3
00290       IF(FORMULA == 4) CVSP_ALT = A4
00291       IF(FORMULA == 5) CVSP_ALT = A5
00292       IF(FORMULA == 6) CVSP_ALT = A6
00293 !
00294 !-----------------------------------------------------------------------
00295 ! CHECK FOR ERRORS
00296 !-----------------------------------------------------------------------
00297 !
00298       IF(CVSP_ALT.LE.FDM(1)) THEN
00299         CVSP_ALT = FDM(1)
00300       ENDIF
00301 !
00302 !-----------------------------------------------------------------------
00303 !
00304       RETURN
00305       END FUNCTION CVSP_ALT
00306 

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