Changeset 1726 for trunk/LMDZ.VENUS
- Timestamp:
- Jul 22, 2017, 11:34:22 PM (7 years ago)
- Location:
- trunk/LMDZ.VENUS/libf/phyvenus
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.VENUS/libf/phyvenus/conf_phys.F90
r1723 r1726 49 49 !Config Help = Cette option permet d'eteidre le cycle diurne. 50 50 !Config Peut etre util pour accelerer le code ! 51 !cycle_diurne = .FALSE.52 51 cycle_diurne = .TRUE. 53 52 call getin('cycle_diurne',cycle_diurne) … … 67 66 !Config Help = GW drag orographie 68 67 !Config 69 ok_orodr = . true.68 ok_orodr = .false. 70 69 call getin('ok_orodr',ok_orodr) 71 70 … … 74 73 !Config Def = n 75 74 !Config Help = GW lift orographie (pas utilise) 76 ok_orolf = . true.75 ok_orolf = .false. 77 76 call getin('ok_orolf', ok_orolf) 78 77 … … 81 80 !Config Def = n 82 81 !Config Help = GW drag non-orographique 83 ok_gw_nonoro = . true.82 ok_gw_nonoro = .false. 84 83 call getin('ok_gw_nonoro',ok_gw_nonoro) 85 84 … … 124 123 !Config Key = OK_mensuel 125 124 !Config Desc = Pour des sorties mensuelles 126 !Config Def = . true.125 !Config Def = .false. 127 126 !Config Help = Pour creer le fichier histmth contenant les sorties 128 127 ! mensuelles 129 128 ! 130 ok_mensuel = . true.129 ok_mensuel = .false. 131 130 call getin('OK_mensuel', ok_mensuel) 132 131 ! … … 343 342 ! 344 343 ok_cloud = .false. 345 !ok_cloud = .true.346 344 call getin('ok_cloud',ok_cloud) 345 346 ! 347 !Config Key = cl_scheme 348 !Config Desc = 349 !Config Def = 2 350 !Config Help = 351 ! 352 ! 1 = Simple microphysics (Aurelien Stolzenbach's PhD) 353 ! 2 = Full microphysics (momentum scheme, Sabrina Guilbon's PhD) 354 355 cl_scheme = 2 356 call getin('cl_scheme',cl_scheme) 347 357 348 358 ! … … 353 363 ! 354 364 ok_chem = .false. 355 !ok_chem = .TRUE.356 365 call getin('ok_chem',ok_chem) 357 366 … … 372 381 ! 373 382 ok_sedim = .false. 374 !ok_sedim=.TRUE.375 383 call getin('ok_sedim',ok_sedim) 376 384 … … 505 513 write(numout,*)' reinit_trac = ',reinit_trac 506 514 write(numout,*)' ok_cloud = ',ok_cloud 515 write(numout,*)' cl_scheme = ',cl_scheme 507 516 write(numout,*)' ok_chem = ',ok_chem 508 517 write(numout,*)' ok_sedim = ',ok_sedim -
trunk/LMDZ.VENUS/libf/phyvenus/dyn1d/rcm1d.F
r1692 r1726 451 451 ENDDO 452 452 453 c calcul des traceurs au pas de temps suivant 454 c ------------------------------------------- 455 if (iflag_trac.eq.1) then 456 DO iq=1,nqtot 457 DO ilayer=1,nlayer 458 q(ilayer,iq)=q(ilayer,iq)+dq(ilayer,iq)*dtphys 459 ENDDO 460 ENDDO 461 endif 462 453 463 c calcul des pressions au pas de temps suivant 454 c -------------------------------------------- --------------464 c -------------------------------------------- 455 465 456 466 psurf=psurf+dtphys*dpsurf(1) ! evolution de la pression de surface -
trunk/LMDZ.VENUS/libf/phyvenus/load_ksi.F
r1723 r1726 38 38 character*9 tmp1 39 39 character*100 file 40 CHARACTER*3 str2 40 CHARACTER*2 str2 41 CHARACTER*3 str3 42 CHARACTER*10 format_lect 41 43 real lambda(nnuve) ! wavelenght in table (mu->m, middle of interval) 42 44 real lambdamin(nnuve),lambdamax(nnuve) ! in microns … … 99 101 endif 100 102 c Now reading ksi matrix index "mat" 101 !write(str2,'(i2.2)') m+2 102 write(str2,'(i3.3)') m+2 103 if ((m+2).ge.100) then 104 write(str3,'(i3.3)') m+2 105 format_lect='('//str3//'e17.9)' 106 else 107 write(str2,'(i2.2)') m+2 108 format_lect='('//str2//'e17.9)' 109 endif 103 110 do band=1,Nb 104 111 read(10,*) lambdamin(band),lambdamax(band) 105 112 do i=0,m+1 106 read(10, '('//str2//'e17.9)') (ksive(i,j,band,mat),j=0,m+1) ! no unit113 read(10,format_lect) (ksive(i,j,band,mat),j=0,m+1) ! no unit 107 114 enddo ! i 108 115 enddo ! band -
trunk/LMDZ.VENUS/libf/phyvenus/physiq_mod.F
r1723 r1726 732 732 733 733 c INIT PHOTOCHEMISTRY ! includes the indexation of microphys tracers 734 if ((nlon .GT. 1) .AND. ok_chem) then 735 c !!! DONC 3D !!! 734 c if ((nlon .GT. 1) .AND. ok_chem) then 735 c !!! DONC 3D !!! POURQUOI ??? 736 if (ok_chem) then 736 737 CALL chemparam_ini() 737 738 endif … … 1920 1921 ENDDO 1921 1922 1922 IF ((tr_scheme.eq.3).and.(ok_sedim).and.(cl_scheme.eq.1)) THEN 1923 CALL send_xios_field("Fsedim",Fsedim(:,1:klev)) 1923 IF ((tr_scheme.eq.3).and.(cl_scheme.eq.1)) THEN 1924 c liquids !!!outputs in [vmr] 1925 CALL send_xios_field(tname(i_h2oliq), 1926 . qx(:,:,i_h2oliq)*mmean(:,:)/M_tr(i_h2oliq)) 1927 CALL send_xios_field(tname(i_h2so4liq), 1928 . qx(:,:,i_h2so4liq)*mmean(:,:)/M_tr(i_h2so4liq)) 1929 if (ok_sedim) CALL send_xios_field("Fsedim",Fsedim(:,1:klev)) 1924 1930 ENDIF 1925 1931 ENDIF -
trunk/LMDZ.VENUS/libf/phyvenus/phytrac_chimie.F
r1687 r1726 273 273 DO ilev=1, n_lev 274 274 275 if (temp(ilon,ilev).lt.500.) then 275 276 CALL MAD_MUPHY(pdtphys, ! Timestep 276 277 & temp(ilon,ilev),pplay(ilon,ilev), ! Temperature and pressure … … 283 284 & trac(ilon,ilev,i_m3_mode2sa),trac(ilon,ilev,i_m3_mode2w), ! Moments of mode 2 284 285 & trac(ilon,ilev,i_m3_mode2ccn)) ! Moments of mode 2 285 286 else 287 trac(ilon,ilev,i_m0_aer)=0. 288 trac(ilon,ilev,i_m3_aer)=0. 289 trac(ilon,ilev,i_m0_mode1drop)=0. 290 trac(ilon,ilev,i_m0_mode1ccn)=0. 291 trac(ilon,ilev,i_m3_mode1sa)=0. 292 trac(ilon,ilev,i_m3_mode1w)=0. 293 trac(ilon,ilev,i_m3_mode1ccn)=0. 294 trac(ilon,ilev,i_m0_mode2drop)=0. 295 trac(ilon,ilev,i_m0_mode2ccn)=0. 296 trac(ilon,ilev,i_m3_mode2sa)=0. 297 trac(ilon,ilev,i_m3_mode2w)=0. 298 trac(ilon,ilev,i_m3_mode2ccn)=0. 299 endif 286 300 ENDDO 287 301 ENDDO -
trunk/LMDZ.VENUS/libf/phyvenus/radlwsw.F
r1723 r1726 562 562 c CALL SW_venus_dc_1Dglobave(zrmu0,zfract, ! pour moy globale 563 563 c CALL SW_venus_dc(zrmu0,zfract, 564 c CALL SW_venus_rh_1Dglobave(zrmu0,zfract, ! pour moy globale 565 c S PPB,temp, 564 566 CALL SW_venus_rh(zrmu0,zfract,latdeg, 565 c CALL SW_venus_rh_1Dglobave(zrmu0,zfract, ! pour moy globale566 567 S PPA,PPB,temp, 567 568 S zheat, -
trunk/LMDZ.VENUS/libf/phyvenus/sw_venus_rh.F
r1723 r1726 59 59 real solza(nszarh,nlatrh) ! solar zenith angles in table 60 60 real presrh(nlrh+1) ! pressure in table (bar) 61 real logplay dc(nlrh)61 real logplayrh(nlrh) 62 62 real altrh(nlrh+1) ! altitude in table (km) 63 63 real latrh(nlatrh) ! latitude in table (degrees) … … 70 70 save firstcall 71 71 real Tplay(nlrh) 72 real Q dc1(nlrh)73 real Q dc2(nlrh)74 real Q dc3(nlrh)75 real Q dc4(nlrh)72 real Qrh1(nlrh) 73 real Qrh2(nlrh) 74 real Qrh3(nlrh) 75 real Qrh4(nlrh) 76 76 77 77 c ------------------------ … … 198 198 199 199 #ifdef MESOSCALE 200 ! extrapolation play DCrisppressure200 ! extrapolation play RH pressure 201 201 do j=1,nlrh 202 logplay dc(j)=(log(presrh(j+1))+log(presrh(j)))/2.203 enddo 204 ! Extrapolation of temperature over DCrispplay pressure202 logplayrh(j)=(log(presrh(j+1))+log(presrh(j)))/2. 203 enddo 204 ! Extrapolation of temperature over RH play pressure 205 205 do i=nlrh,2,-1 206 206 nl0 = 2 207 207 do j=1,klev-1 208 if (exp(logplay dc(i)).le.PPA(j)) then208 if (exp(logplayrh(i)).le.PPA(j)) then 209 209 nl0 = j+1 210 210 endif 211 211 enddo 212 factflux = (log10(max(exp(logplay dc(i)),PPA(klev)))212 factflux = (log10(max(exp(logplayrh(i)),PPA(klev))) 213 213 . -log10(PPA(nl0-1))) 214 214 . /(log10(PPA(nl0))-log10(PPA(nl0-1))) … … 217 217 218 218 ENDDO 219 ! DCrisp PHEAT over DCrispplay pressure219 ! RH PHEAT over RH play pressure 220 220 DO k=1,nlrh 221 221 c 222 Q dc1(k)=((RG/cpdet(Tplay(k)))222 Qrh1(k)=((RG/cpdet(Tplay(k))) 223 223 . *((zsnet(k+1,nsza0(1),nlat0-1)-zsnet(k,nsza0(1),nlat0-1)) 224 224 . *PFRAC)) 225 225 . /((presrh(k)-presrh(k+1))*1.e5) 226 Q dc2(k)=((RG/cpdet(Tplay(k)))226 Qrh2(k)=((RG/cpdet(Tplay(k))) 227 227 . *((zsnet(k+1,nsza0(1)-1,nlat0-1)-zsnet(k,nsza0(1)-1,nlat0-1)) 228 228 . *PFRAC)) 229 229 . /((presrh(k)-presrh(k+1))*1.e5) 230 Q dc3(k)=((RG/cpdet(Tplay(k)))230 Qrh3(k)=((RG/cpdet(Tplay(k))) 231 231 . *((zsnet(k+1,nsza0(2),nlat0)-zsnet(k,nsza0(2),nlat0)) 232 232 . *PFRAC)) 233 233 . /((presrh(k)-presrh(k+1))*1.e5) 234 Q dc4(k)=((RG/cpdet(Tplay(k)))234 Qrh4(k)=((RG/cpdet(Tplay(k))) 235 235 . *((zsnet(k+1,nsza0(2)-1,nlat0)-zsnet(k,nsza0(2)-1,nlat0)) 236 236 . *PFRAC)) 237 237 . /((presrh(k)-presrh(k+1))*1.e5) 238 238 ENDDO 239 ! Interapolation of PHEAT over GCM/MESOSCALE play le lv239 ! Interapolation of PHEAT over GCM/MESOSCALE play levels 240 240 do j=1,klev 241 241 nl0 = nlrh-1 242 242 do i=nlrh,2,-1 243 if (exp(logplay dc(i)).ge.PPA(j)) then243 if (exp(logplayrh(i)).ge.PPA(j)) then 244 244 nl0 = i-1 245 245 endif … … 247 247 c factflux = (log10(max(PPB(j),presrh(1)))-log10(presrh(nl0+1))) 248 248 c . /(log10(presrh(nl0))-log10(presrh(nl0+1))) 249 factflux = (log10(max(PPA(j),exp(logplay dc(1))))250 . -log10(exp(logplay dc(nl0+1))))251 . /(log10(exp(logplay dc(nl0)))-log10(exp(logplaydc(nl0+1))))249 factflux = (log10(max(PPA(j),exp(logplayrh(1)))) 250 . -log10(exp(logplayrh(nl0+1)))) 251 . /(log10(exp(logplayrh(nl0)))-log10(exp(logplayrh(nl0+1)))) 252 252 PHEATPPA(j)=factlat*( 253 . factflux * factsza(2) *Q dc3(nl0)254 . + factflux *(1.-factsza(2))*Q dc4(nl0)255 . + (1.-factflux)* factsza(2) *Q dc3(nl0+1)256 . + (1.-factflux)*(1.-factsza(2))*Q dc4(nl0+1))253 . factflux * factsza(2) *Qrh3(nl0) 254 . + factflux *(1.-factsza(2))*Qrh4(nl0) 255 . + (1.-factflux)* factsza(2) *Qrh3(nl0+1) 256 . + (1.-factflux)*(1.-factsza(2))*Qrh4(nl0+1)) 257 257 . + (1.-factlat)*( 258 . factflux * factsza(1) *Qdc1(nl0)259 . + factflux *(1.-factsza(1))*Q dc2(nl0)260 . + (1.-factflux)* factsza(1) *Q dc1(nl0+1)261 . + (1.-factflux)*(1.-factsza(1))*Q dc2(nl0+1) )258 . factflux * factsza(1) *Qrh1(nl0) 259 . + factflux *(1.-factsza(1))*Qrh2(nl0) 260 . + (1.-factflux)* factsza(1) *Qrh1(nl0+1) 261 . + (1.-factflux)*(1.-factsza(1))*Qrh2(nl0+1) ) 262 262 PHEAT(j)=PHEATPPA(j) 263 263 ENDDO … … 275 275 do j=1,klev 276 276 ! ADAPTATION GCM POUR CP(T) 277 PHEAT(j) = PHEATPPA(j)277 PHEAT(j) = (ZFSNET(j+1)-ZFSNET(j)) 278 278 . *RG/cpdet(pt(j)) / ((PPB(j)-PPB(j+1))*1.e5) 279 279 c-----TEST------- … … 281 281 if ((PPB(j).gt.1.4).and.(PPB(j).le.10.)) then 282 282 PHEAT(j) = PHEAT(j)*3 283 !endif283 endif 284 284 c---------------- 285 !enddo285 enddo 286 286 #endif 287 287
Note: See TracChangeset
for help on using the changeset viewer.