Changeset 2135 for trunk/LMDZ.VENUS/libf
- Timestamp:
- May 3, 2019, 1:10:27 PM (6 years ago)
- Location:
- trunk/LMDZ.VENUS/libf/phyvenus
- Files:
-
- 1 added
- 1 deleted
- 7 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.VENUS/libf/phyvenus/clesphys.h
r1723 r2135 13 13 LOGICAL callnlte,callnirco2,callthermos 14 14 LOGICAL ok_cloud, ok_chem, reinit_trac, ok_sedim 15 LOGICAL cclmain 16 LOGICAL startphy_file 15 LOGICAL ok_clmain, physideal, startphy_file 17 16 INTEGER nbapp_rad, nbapp_chim, iflag_con, iflag_ajs 18 17 INTEGER lev_histins, lev_histday, lev_histmth 19 18 INTEGER tr_scheme, cl_scheme 20 19 INTEGER nircorr, nltemodel, solvarmod 20 INTEGER nb_mode 21 21 REAL ecriphy 22 22 REAL solaire … … 24 24 REAL ksta, inertie 25 25 REAL euveff, solarcondate 26 INTEGER nb_mode27 26 28 27 COMMON/clesphys_l/ cycle_diurne, soil_model, & 29 28 & ok_orodr, ok_orolf, ok_gw_nonoro, ok_kzmin, & 30 29 & callnlte,callnirco2,callthermos, & 31 & ok_cloud, ok_chem, reinit_trac, ok_sedim, startphy_file 30 & ok_cloud, ok_chem, reinit_trac, ok_sedim, & 31 & ok_clmain, physideal, startphy_file 32 32 33 33 COMMON/clesphys_i/ nbapp_rad, nbapp_chim, & 34 & iflag_con, iflag_ajs, cclmain,&34 & iflag_con, iflag_ajs, & 35 35 & lev_histins, lev_histday, lev_histmth, tr_scheme, & 36 36 & cl_scheme, nircorr, nltemodel, solvarmod, nb_mode -
trunk/LMDZ.VENUS/libf/phyvenus/conf_phys.F90
r1981 r2135 251 251 call getin('ok_kzmin',ok_kzmin) 252 252 253 cclmain = .true. 254 call getin('clmain',cclmain) 253 ok_clmain = .true. 254 call getin('ok_clmain',ok_clmain) 255 256 physideal = .false. 257 call getin('physideal',physideal) 255 258 256 259 !Config Key = iflag_ajs … … 507 510 write(lunout,*)' ok_kzmin = ',ok_kzmin 508 511 write(lunout,*)' inertie = ', inertie 509 write(lunout,*)' clmain = ',cclmain 512 write(lunout,*)' ok_clmain = ',ok_clmain 513 write(lunout,*)' physideal = ',physideal 510 514 write(lunout,*)' iflag_ajs = ', iflag_ajs 511 515 write(lunout,*)' lev_histins = ',lev_histins -
trunk/LMDZ.VENUS/libf/phyvenus/cpdet_phy_mod.F90
r1658 r2135 36 36 real cpdet 37 37 38 cpdet = cpp*(t/t0_venus)**nu_venus 38 if (t0_venus.ne.0.) then 39 cpdet = cpp*(t/t0_venus)**nu_venus 40 else 41 cpdet = cpp 42 endif 39 43 40 44 end function cpdet … … 81 85 !---------------------- 82 86 83 yteta = yt**nu_venus & 87 if (t0_venus.ne.0.) then 88 yteta = yt**nu_venus & 84 89 & - nu_venus * t0_venus**nu_venus * log(ypk/cpp) 85 yteta = yteta**(1./nu_venus) 90 yteta = yteta**(1./nu_venus) 91 else 92 yteta = yt * cpp/ypk 93 endif 94 86 95 !---------------------- 87 96 ! ATMOSPHERE PROFONDE … … 135 144 ! ATMOSPHERE PROFONDE 136 145 !---------------------- 146 if (t0_venus.ne.0.) then 137 147 yt = (yteta/ratio_mod)**nu_venus & 138 148 !---------------------- 139 149 + nu_venus * t0_venus**nu_venus * log(ypk/cpp) 140 150 yt = yt**(1./nu_venus) 151 else 152 yt = (yteta/ratio_mod) * ypk/cpp 153 endif 154 141 155 142 156 end subroutine tpot2t -
trunk/LMDZ.VENUS/libf/phyvenus/phys_state_var_mod.F90
r1723 r2135 77 77 REAL,ALLOCATABLE,SAVE :: d_t_nirco2(:,:),d_t_nlte(:,:) 78 78 !$OMP THREADPRIVATE(d_t_nirco2,d_t_nlte) 79 80 ! Case for Newtonian cooling (physideal=.true.) 81 REAL,ALLOCATABLE,SAVE :: zt_eq(:,:) 82 !$OMP THREADPRIVATE(zt_eq) 79 83 80 84 ! Fluxes (W/m2) … … 145 149 ALLOCATE(d_t_rad(klon,klev),d_t_euv(klon,klev)) 146 150 ALLOCATE(d_t_nirco2(klon,klev),d_t_nlte(klon,klev)) 151 ALLOCATE(zt_eq(klon,klev)) 147 152 148 153 ALLOCATE(swnet(klon,klev+1), lwnet(klon,klev+1)) … … 186 191 deallocate(d_t_rad,d_t_euv) 187 192 deallocate(d_t_nirco2,d_t_nlte) 193 deallocate(zt_eq) 188 194 189 195 deallocate(swnet, lwnet) -
trunk/LMDZ.VENUS/libf/phyvenus/physiq_mod.F
r2125 r2135 234 234 EXTERNAL ajsec ! ajustement sec 235 235 EXTERNAL clmain ! couche limite 236 EXTERNAL clmain_ideal ! couche limite simple 236 237 EXTERNAL hgardfou ! verifier les temperatures 237 238 c EXTERNAL orbite ! calculer l'orbite … … 239 240 EXTERNAL phyredem ! ecrire l'etat de redemarrage de la physique 240 241 EXTERNAL radlwsw ! rayonnements solaire et infrarouge 241 EXTERNAL suphec ! initialiser certaines constantes242 ! EXTERNAL suphec ! initialiser certaines constantes 242 243 EXTERNAL transp ! transport total de l'eau et de l'energie 243 244 EXTERNAL printflag … … 446 447 #endif 447 448 448 CALL suphec ! initialiser constantes et parametres phys. 449 ! The call to suphec is now done in iniphysiq_mod (interface) 450 ! CALL suphec ! initialiser constantes et parametres phys. 449 451 450 452 IF (if_ebil.ge.1) d_h_vcol_phy=0. … … 1130 1132 c VENUS TEST: on ne tient pas compte des calculs de clmain mais on force 1131 1133 c l'equilibre radiatif du sol 1132 if (.not. cclmain) then1134 if (.not. ok_clmain) then 1133 1135 if (debut) then 1134 1136 print*,"ATTENTION, CLMAIN SHUNTEE..." … … 1159 1161 ! ADAPTATION GCM POUR CP(T) 1160 1162 1161 CALL clmain(dtime,itap, 1163 if (physideal) then 1164 CALL clmain_ideal(dtime,itap, 1162 1165 e t_seri,u_seri,v_seri, 1163 1166 e rmu0, … … 1172 1175 s dsens, 1173 1176 s ycoefh,yu1,yv1) 1177 else 1178 CALL clmain(dtime,itap, 1179 e t_seri,u_seri,v_seri, 1180 e rmu0, 1181 e ftsol, 1182 $ ftsoil, 1183 $ paprs,pplay,ppk,radsol,falbe, 1184 e solsw, sollw, sollwdown, fder, 1185 e longitude_deg, latitude_deg, dx, dy, 1186 e debut, lafin, 1187 s d_t_vdf,d_u_vdf,d_v_vdf,d_ts, 1188 s fluxt,fluxu,fluxv,cdragh,cdragm, 1189 s dsens, 1190 s ycoefh,yu1,yv1) 1191 endif 1174 1192 1175 1193 CXXX Incrementation des flux … … 1405 1423 c LTE radiative transfert / solar / IR matrix 1406 1424 c ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1407 CALL radlwsw 1425 if (physideal) then 1426 CALL radlwsw_newtoncool 1408 1427 e (dist, rmu0, fract, zzlev, 1409 1428 e paprs, pplay,ftsol, t_seri) 1429 else 1430 CALL radlwsw 1431 e (dist, rmu0, fract, zzlev, 1432 e paprs, pplay,ftsol, t_seri) 1433 endif 1410 1434 1411 1435 c albedo variations: test for Yeon Joo Lee 1412 c +12% in 4 Vd / increment to increase it for 20 Vd => +80% 1413 c heat(:,:)=heat(:,:)*(1.+0.12*(rjourvrai+gmtime)/4.)*1.12**4 1436 c increment to increase it for 20 Vd => +80% 1437 c heat(:,:)=heat(:,:)*(1.+0.80*((rjourvrai-356)+gmtime)/20.) 1438 c or to decrease it for 20 Vd => 1/1.8 1439 c heat(:,:)=heat(:,:)/(1.+0.80*((rjourvrai-356)+gmtime)/20.) 1414 1440 1415 1441 c CO2 near infrared absorption -
trunk/LMDZ.VENUS/libf/phyvenus/phytrac_emiss.F
r1621 r2135 67 67 68 68 integer,parameter :: nblat=5,nblon=4,nbz=3 69 integer,parameter :: Nemiss= 1! duree emission (Ed)69 integer,parameter :: Nemiss=0 ! duree emission (Ed) 70 70 integer,save :: Nheight(nbz) ! layer emission 71 71 real,save :: so2_quantity ! quantity so2 (kg) … … 149 149 if (reinit_trac) then 150 150 tr_seri(:,:,:)=0. 151 c CAS N2 TRACEUR PASSIF POUR EVALUER PROFIL SOUS 7 KM 152 c J'ai mis Nemiss=0 ! 153 do i=1,klon 154 do k=1,klev 155 tr_seri(i,k,:)=max(min(0.035, 156 & 0.035*(1.-log(paprs(i,k)/6.e6)/log(9.e6/6.e6))),0.) 157 enddo 158 enddo 159 c FIN CAS N2 PASSIF 151 160 endif 152 161 -
trunk/LMDZ.VENUS/libf/phyvenus/radlwsw_NewtonCool.F
r2123 r2135 2 2 ! $Header: /home/cvsroot/LMDZ4/libf/phylmd/radlwsw.F,v 1.2 2004/10/27 10:14:46 lmdzadmin Exp $ 3 3 ! 4 SUBROUTINE radlwsw (dist, rmu0, fract, zzlev,4 SUBROUTINE radlwsw_newtoncool(dist, rmu0, fract, zzlev, 5 5 . paprs, pplay,tsol, pt) 6 6 … … 26 26 USE geometry_mod, ONLY: latitude ! in radians 27 27 USE phys_state_var_mod, only: heat,cool,radsol, 28 . topsw,toplw,solsw,sollw,sollwdown,lwnet,swnet28 . topsw,toplw,solsw,sollw,sollwdown,lwnet,swnet,zt_eq 29 29 USE write_field_phy 30 30 IMPLICIT none … … 48 48 parameter (tauCLee=25*86400) ! en s 49 49 real ztemp,zdt,fact 50 real dTsdt(klev),zt_eq(klon,klev) 51 save zt_eq 50 real dTsdt(klev) 52 51 53 52 data etaCLee/9.602e-1,8.679e-1,7.577e-1,6.420e-1,5.299e-1, … … 111 110 112 111 do k = 1,klev 113 dTsdt(k) = -( t(j,k)-zt_eq(j,k))/tauCLee ! en K/s112 dTsdt(k) = -(pt(j,k)-zt_eq(j,k))/tauCLee ! en K/s 114 113 enddo 115 114 -
trunk/LMDZ.VENUS/libf/phyvenus/suphec.F
r97 r2135 2 2 ! $Header: /home/cvsroot/LMDZ4/libf/phylmd/suphec.F,v 1.1.1.1 2004/05/19 12:53:08 lmdzadmin Exp $ 3 3 ! 4 SUBROUTINE suphec 4 SUBROUTINE suphec(cpp_) 5 5 C 6 6 #include "YOMCST.h" 7 7 cIM cf. JLD 8 REAL cpp_ ! from dynamics 8 9 LOGICAL firstcall 9 10 SAVE firstcall … … 132 133 ! VENUS: Cp(T) = RCPD*(T/T0)^nu (RCPD phys = cpp dyn) 133 134 ! avec RCPD=1000., T0=460. et nu=0.35 134 RCPD=1.0e3 135 ! RCPD=9.0e2 ! Version constante 135 RCPD=cpp_ 136 136 137 137 RCVD=RCPD-RD
Note: See TracChangeset
for help on using the changeset viewer.