Changeset 1909 for trunk/LMDZ.MARS/libf/phymars/improvedclouds.F
- Timestamp:
- Mar 9, 2018, 4:43:48 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/libf/phymars/improvedclouds.F
r1779 r1909 1 subroutine improvedclouds(ngrid,nlay, ptimestep,2 & pplay,pt ,pdt,3 & pq ,pdq,pdqcloud,pdtcloud,1 subroutine improvedclouds(ngrid,nlay,microtimestep, 2 & pplay,pteff,sum_subpdt, 3 & pqeff,sum_subpdq,subpdqcloud,subpdtcloud, 4 4 & nq,tauscaling) 5 5 ! to use 'getin' … … 42 42 INTEGER ngrid,nlay 43 43 integer nq ! nombre de traceurs 44 REAL ptimestep ! pas de temps physique (s)44 REAL microtimestep ! pas de temps physique (s) 45 45 REAL pplay(ngrid,nlay) ! pression au milieu des couches (Pa) 46 46 47 REAL pt (ngrid,nlay) ! temperature at the middle of the47 REAL pteff(ngrid,nlay) ! temperature at the middle of the 48 48 ! layers (K) 49 REAL pdt(ngrid,nlay) ! tendance temperature des autres49 REAL sum_subpdt(ngrid,nlay) ! tendance temperature des autres 50 50 ! param. 51 REAL pq (ngrid,nlay,nq) ! traceur (kg/kg)52 REAL pdq(ngrid,nlay,nq) ! tendance avant condensation51 REAL pqeff(ngrid,nlay,nq) ! traceur (kg/kg) 52 REAL sum_subpdq(ngrid,nlay,nq) ! tendance avant condensation 53 53 ! (kg/kg.s-1) 54 54 REAL tauscaling(ngrid) ! Convertion factor for qdust and Ndust 55 55 56 56 c Outputs: 57 REAL pdqcloud(ngrid,nlay,nq) ! tendance de la condensation57 REAL subpdqcloud(ngrid,nlay,nq) ! tendance de la condensation 58 58 ! H2O(kg/kg.s-1) 59 REAL pdtcloud(ngrid,nlay) ! tendance temperature due59 REAL subpdtcloud(ngrid,nlay) ! tendance temperature due 60 60 ! a la chaleur latente 61 61 … … 216 216 ! 1. Initialisation 217 217 !============================================================= 218 cste = 4*pi*rho_ice* ptimestep218 cste = 4*pi*rho_ice*microtimestep 219 219 220 220 res_out(:,:) = 0 … … 222 222 223 223 c Initialize the tendencies 224 pdqcloud(1:ngrid,1:nlay,1:nq)=0225 pdtcloud(1:ngrid,1:nlay)=0224 subpdqcloud(1:ngrid,1:nlay,1:nq)=0 225 subpdtcloud(1:ngrid,1:nlay)=0 226 226 227 227 228 228 zt(1:ngrid,1:nlay) = 229 & pt (1:ngrid,1:nlay) +230 & pdt(1:ngrid,1:nlay) * ptimestep229 & pteff(1:ngrid,1:nlay) + 230 & sum_subpdt(1:ngrid,1:nlay) * microtimestep 231 231 232 232 zq(1:ngrid,1:nlay,1:nq) = 233 & pq (1:ngrid,1:nlay,1:nq) +234 & pdq(1:ngrid,1:nlay,1:nq) * ptimestep233 & pqeff(1:ngrid,1:nlay,1:nq) + 234 & sum_subpdq(1:ngrid,1:nlay,1:nq) * microtimestep 235 235 236 236 … … 317 317 dM = 0. 318 318 do i = 1, nbin_cld 319 n_aer(i) = n_aer(i)/( 1. + rate(i)* ptimestep)320 m_aer(i) = m_aer(i)/( 1. + rate(i)* ptimestep)321 dN = dN + n_aer(i) * rate(i) * ptimestep322 dM = dM + m_aer(i) * rate(i) * ptimestep319 n_aer(i) = n_aer(i)/( 1. + rate(i)*microtimestep) 320 m_aer(i) = m_aer(i)/( 1. + rate(i)*microtimestep) 321 dN = dN + n_aer(i) * rate(i) * microtimestep 322 dM = dM + m_aer(i) * rate(i) * microtimestep 323 323 enddo 324 324 … … 386 386 lw=(2834.3-0.28*(zt(ig,l)-To)- 387 387 & 0.004*(zt(ig,l)-To)*(zt(ig,l)-To))*1.e+3 388 pdtcloud(ig,l)= dMice*lw/cpp/ptimestep388 subpdtcloud(ig,l)= dMice*lw/cpp/microtimestep 389 389 390 390 … … 420 420 421 421 ! Get cloud tendencies 422 pdqcloud(1:ngrid,1:nlay,igcm_h2o_vap) =422 subpdqcloud(1:ngrid,1:nlay,igcm_h2o_vap) = 423 423 & (zq(1:ngrid,1:nlay,igcm_h2o_vap) - 424 & zq0(1:ngrid,1:nlay,igcm_h2o_vap))/ ptimestep425 pdqcloud(1:ngrid,1:nlay,igcm_h2o_ice) =424 & zq0(1:ngrid,1:nlay,igcm_h2o_vap))/microtimestep 425 subpdqcloud(1:ngrid,1:nlay,igcm_h2o_ice) = 426 426 & (zq(1:ngrid,1:nlay,igcm_h2o_ice) - 427 & zq0(1:ngrid,1:nlay,igcm_h2o_ice))/ ptimestep428 pdqcloud(1:ngrid,1:nlay,igcm_ccn_mass) =427 & zq0(1:ngrid,1:nlay,igcm_h2o_ice))/microtimestep 428 subpdqcloud(1:ngrid,1:nlay,igcm_ccn_mass) = 429 429 & (zq(1:ngrid,1:nlay,igcm_ccn_mass) - 430 & zq0(1:ngrid,1:nlay,igcm_ccn_mass))/ ptimestep431 pdqcloud(1:ngrid,1:nlay,igcm_ccn_number) =430 & zq0(1:ngrid,1:nlay,igcm_ccn_mass))/microtimestep 431 subpdqcloud(1:ngrid,1:nlay,igcm_ccn_number) = 432 432 & (zq(1:ngrid,1:nlay,igcm_ccn_number) - 433 & zq0(1:ngrid,1:nlay,igcm_ccn_number))/ ptimestep433 & zq0(1:ngrid,1:nlay,igcm_ccn_number))/microtimestep 434 434 435 435 if (scavenging) then 436 436 437 pdqcloud(1:ngrid,1:nlay,igcm_dust_mass) =437 subpdqcloud(1:ngrid,1:nlay,igcm_dust_mass) = 438 438 & (zq(1:ngrid,1:nlay,igcm_dust_mass) - 439 & zq0(1:ngrid,1:nlay,igcm_dust_mass))/ ptimestep440 pdqcloud(1:ngrid,1:nlay,igcm_dust_number) =439 & zq0(1:ngrid,1:nlay,igcm_dust_mass))/microtimestep 440 subpdqcloud(1:ngrid,1:nlay,igcm_dust_number) = 441 441 & (zq(1:ngrid,1:nlay,igcm_dust_number) - 442 & zq0(1:ngrid,1:nlay,igcm_dust_number))/ ptimestep442 & zq0(1:ngrid,1:nlay,igcm_dust_number))/microtimestep 443 443 444 444 endif
Note: See TracChangeset
for help on using the changeset viewer.