suspension_miles.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\sisyphe\suspension_miles.f
00002 !
00057                      SUBROUTINE SUSPENSION_MILES
00058 !                    ***************************
00059 !
00060      &(HN,NPOIN,KARMAN,HMIN,ZERO,FDM,FD90,XWC,ZREF,CSRATIO)
00061 !
00062 !***********************************************************************
00063 ! SISYPHE   V6P3                                   16/05/2011
00064 !***********************************************************************
00065 !
00066 !         FOUND IN HR WALLINGFORD REPORT: SR75.
00067 !
00068 !
00069 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00070 !| HMIN           |-->|
00071 !| HN             |-->|
00072 !| KARMAN         |-->|
00073 !| NPOIN          |-->|
00074 !| CSRATIO        |---| RATIO BETWEEN BOTTOM CONC. AND AVERAGE CONC.
00075 !| XWC            |-->| FALL VELOCITY W_S
00076 !| ZERO           |-->|
00077 !| ZREF           |---|
00078 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00079 !
00080       USE DECLARATIONS_SISYPHE, ONLY: SFON,U2D,V2D,DT
00081       USE INTERFACE_SISYPHE,EX_SUSPENSION_MILES => SUSPENSION_MILES
00082       USE BIEF
00083       IMPLICIT NONE
00084       INTEGER LNG,LU
00085       COMMON/INFO/LNG,LU
00086 !
00087 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00088 !
00089       TYPE(BIEF_OBJ),   INTENT(IN)    :: HN,ZREF
00090       INTEGER,          INTENT(IN)    :: NPOIN
00091       DOUBLE PRECISION, INTENT(IN)    :: FDM,FD90,KARMAN,XWC,HMIN,ZERO
00092       TYPE(BIEF_OBJ),   INTENT(INOUT) :: CSRATIO
00093 !
00094 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00095 !
00096       INTEGER          :: I
00097       DOUBLE PRECISION :: UB,USTARS,RB,BETAS
00098       DOUBLE PRECISION :: SFBETA(NPOIN),AUX,RRTPI
00099       DOUBLE PRECISION :: FVINV
00100       DOUBLE PRECISION :: DZ,TAU,TAU_SQ,UCR
00101 !
00102       DOUBLE PRECISION BIEF_ERF
00103       EXTERNAL         BIEF_ERF
00104 !
00105       INTRINSIC SQRT,EXP
00106 !     INTRINSIC ERF
00107 !
00108 !======================================================================!
00109 !======================================================================!
00110 !                               PROGRAM                                !
00111 !======================================================================!
00112 !======================================================================!
00113 !
00114 !     COMPUTE CONSTANTS:
00115 !
00116       RRTPI = 1.D0/SQRT(3.1415926535D0)
00117       FVINV = 1.D0/XWC**2
00118 !
00119 !     DMK MOD 03/05/2011
00120 !
00121 !     MODIFYING SUSPENDED LOAD TO BE LIKE SANDFLOW AND ALSO TO TAKE
00122 !     LAG INTO CONSIDERATION VIA A BETA COMPUTATION.
00123 !
00124       DO I=1,NPOIN
00125 !
00126         IF(FDM.LT.500.E-6) THEN
00127 !         UCR = 0.19D0*(D50**0.1D0)*LOG10(4.D0*(HN%R(I)/FDM))    ! SANDFLOW
00128           UCR = 0.19D0*(FDM**0.1D0)*LOG10(4.D0*HN%R(I)/FD90)  ! CORRECT
00129         ELSE
00130 !         UCR = 8.5D0*(D50**0.6D0)*LOG10(4.D0*(HN%R(I)/D50))      ! SANDFLOW
00131           UCR = 8.5D0*(FDM**0.6D0)*LOG10(4.D0*HN%R(I)/FD90)    ! CORRECT
00132         ENDIF
00133 !
00134         UB = SQRT(U2D%R(I)**2+V2D%R(I)**2)
00135 !
00136         IF(HN%R(I).GT.HMIN.AND.UB.GT.UCR) THEN ! STOP PROBLEMS WITH LOW VELOCITIES
00137           USTARS = 1.3D0*UB*SQRT(SFON/8.D0)
00138           RB     = XWC*15.D0/USTARS
00139 !         THIS IS DIFFERENT BETWEEN MILES’ PAPERS DUE TO TYPO IN DEF OF R
00140           BETAS  = RB/(1.D0-EXP(-RB))
00141 !         ACTUAL EQUATION FROM MILES (1981)  [1]
00142           DZ     = (1.D0/6.D0)*0.4D0*HN%R(I)*USTARS
00143 !         USE WITH [1]
00144           TAU    = XWC*SQRT(DT/(4.D0*DZ))
00145           TAU_SQ = TAU**2
00146 !         EQ. (27) NOTE THIS IS ALREADY INTEGRATED WITH RESPECT TO TIME (DTS)
00147 !
00148 !         IF COMPILER ALOWS...
00149 !         AUX=ERF(TAU)
00150 !         AND IF NOT...
00151           AUX=BIEF_ERF(TAU)
00152 !
00153           SFBETA(I)=
00154      &      DZ*FVINV*BETAS*(4.D0*TAU_SQ*(1.D0+TAU_SQ)*(1.D0-AUX)
00155      &    + AUX - 2.D0*TAU*(1.D0+2.D0*TAU_SQ)*EXP(-TAU_SQ)*RRTPI)
00156 !
00157           IF(SFBETA(I)*XWC/HN%R(I).GT.1.D0) SFBETA(I)=1.D0/(XWC*HN%R(I))
00158 !         DIVIDE BACK THROUGH BY DT AS WE WILL INTEGRATE UP  WRTT LATER
00159           CSRATIO%R(I)=SFBETA(I)/DT ! FOR USE WITH EQ. (27)
00160 !         NOTE WE RECORD BETA_S (PROFILE PARAMETER) I.E. THE RATIO OF REF LEVEL CONC
00161 !         TO DEPTH AVERAGED CONC THIS WILL THEN BE USED IN SUSPENSION_SANDFLOW.F:
00162 !         NB: STORED IN T14
00163         ELSE
00164           SFBETA(I) = 1.D0
00165           CSRATIO%R(I) = 1.D0
00166         ENDIF
00167 !
00168       ENDDO
00169 !
00170 !     END BETA FACTOR COMPUTATION
00171 !
00172 !======================================================================!
00173 !======================================================================!
00174 !
00175       RETURN
00176       END

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