Changeset 5117 for LMDZ6/branches/Amaury_dev/libf/phylmd/coare_cp_mod.F90
- Timestamp:
- Jul 24, 2024, 4:23:34 PM (4 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/coare_cp_mod.F90
r5116 r5117 6 6 contains 7 7 8 realfunction psit_30(zet)8 REAL function psit_30(zet) 9 9 IMPLICIT NONE 10 real, intent(in) :: zet10 REAL, INTENT(IN) :: zet 11 11 12 12 REAL :: x, psik, psic, f, c … … 26 26 END FUNCTION psit_30 27 27 28 realfunction psiuo(zet)28 REAL function psiuo(zet) 29 29 IMPLICIT NONE 30 real, intent(in) :: zet30 REAL, INTENT(IN) :: zet 31 31 32 32 REAL :: x, psik, psic, f, c 33 33 34 if(zet<0) THEN34 IF (zet<0) THEN 35 35 x=(1.-15.*zet)**.25 36 36 psik=2.*log((1.+x)/2.)+log((1.+x*x)/2.)-2.*atan(x)+2.*atan(1.) … … 42 42 c=min(50.,.35*zet) 43 43 psiuo=-((1.+1.0*zet)**1.0+.667*(zet-14.28)/exp(c)+8.525) 44 endif44 ENDIF 45 45 46 46 END FUNCTION psiuo … … 67 67 IMPLICIT NONE 68 68 69 real, intent(in) :: du,dt,dq,t,q70 real, intent(in) :: zu,zt,zq,p,zi71 integer, intent(in) :: nits72 ! real, dimension (nits), intent(out) :: zo,tau,hsb,hlb73 ! real, dimension(nits,3), intent(out) :: var74 real, dimension(3), intent(out) :: coeffs75 real, intent(out) :: rugosm76 real, intent(out) :: rugosh77 78 real, parameter :: beta=1.2, von=.4, fdg = 1. ,&69 REAL, INTENT(IN) :: du,dt,dq,t,q 70 REAL, INTENT(IN) :: zu,zt,zq,p,zi 71 INTEGER, INTENT(IN) :: nits 72 ! REAL, dimension (nits), INTENT(OUT) :: zo,tau,hsb,hlb 73 ! REAL, DIMENSION(nits,3), INTENT(OUT) :: var 74 REAL, DIMENSION(3), INTENT(OUT) :: coeffs 75 REAL, INTENT(OUT) :: rugosm 76 REAL, INTENT(OUT) :: rugosh 77 78 REAL, parameter :: beta=1.2, von=.4, fdg = 1. ,& 79 79 tdk = 273.16, pi = 3.141593, grav = 9.82,& 80 80 rgas = 287.1 81 81 82 integer, dimension(3) :: shape_input83 84 realbf, cc, rhoa, visa,&82 INTEGER, DIMENSION(3) :: shape_input 83 84 REAL bf, cc, rhoa, visa,& 85 85 u10, ut, uts, ut0, ug,& 86 86 cd10, ch10, ct, ct10,& … … 98 98 99 99 100 realold_usr, old_tsr, old_qsr,tmp101 102 real, external :: grv103 integeri,j,k100 REAL old_usr, old_tsr, old_qsr,tmp 101 102 REAL, external :: grv 103 INTEGER i,j,k 104 104 !---------------- Rajout pour prendre en compte différent Z0 --------------------------------! 105 105 ! INTEGER :: NGRVWAVES ! Pour le choix du z0 … … 153 153 Ribu=grav*zu/t*(dt+.61*t*dq)/ut**2 154 154 155 if(Ribu < 0) THEN155 IF (Ribu < 0) THEN 156 156 zetu=CC*Ribu/(1+Ribu/Ribcu) 157 157 else 158 158 zetu=CC*Ribu*(1+27/9*Ribu/CC) 159 endif159 ENDIF 160 160 161 161 L10=zu/zetu … … 163 163 ! if (zetu .GT. 50) THEN 164 164 ! nits=1 165 ! endif165 ! END IF 166 166 167 167 usr=ut*von/(log(zu/zom10)-psiuo(zetu)) … … 171 171 172 172 ! charnock constant - lin par morceau - constant 173 if( ut <= 10. ) THEN173 IF ( ut <= 10. ) THEN 174 174 charn=0.011 175 175 else 176 if(ut > 18) THEN176 IF (ut > 18) THEN 177 177 charn=0.018 178 178 else 179 179 charn=0.011+(ut-10)/(18-10)*(0.018-0.011) 180 180 endif 181 endif181 ENDIF 182 182 183 183 ! ZHWAVE = 0.018*ut*ut*(1.+0.015*ut) … … 220 220 Bf=-grav/t*usr*(tsr+.61*t*qsr) 221 221 222 if(Bf > 0) THEN222 IF (Bf > 0) THEN 223 223 ug=Beta*(Bf*zi)**.333 224 224 else
Note: See TracChangeset
for help on using the changeset viewer.