- Timestamp:
- Jan 24, 2017, 6:41:02 PM (8 years ago)
- Location:
- trunk/LMDZ.MARS
- Files:
-
- 2 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/README
r1629 r1649 2369 2369 - Moved CO2 clouds outuputs from physiq_mod.F to co2cloud.F 2370 2370 - Removed some CO2 clouds properties computation in physiq_mod.F (now done in post-treatment) 2371 2372 == 24/01/2017 == JA 2373 -Modification of CO2 clouds routines : removal of some screen ouputs, modification for 3D of the writediagfi outputs in co2cloud.F, improvedCO2clouds.F and physiq_mod.F 2374 -callphys.def.co2clouds was added in deftank. It contains the necessary flags and constant for including co2clouds 2375 -traceur.def.co2clouds was added in deftank. It supplies the necessary tracers for running the co2 clouds scheme -
trunk/LMDZ.MARS/libf/phymars/co2cloud.F
r1629 r1649 256 256 DO l=1, nlay 257 257 DO ig=1,ngrid 258 Niceco2= tempo_traceurs(ig,l,igcm_co2_ice)258 Niceco2=max(tempo_traceurs(ig,l,igcm_co2_ice),1.e-30) 259 259 Nccnco2=max(tempo_traceurs(ig,l,igcm_ccnco2_number), 260 260 & 1.e-30) … … 271 271 rdust(ig,l)=max(rdust(ig,l),1.e-9) 272 272 end if 273 rhocloudco2t(ig,l) = (Niceco2 *rho_ice_co2274 & + Qccnco2*rho_dust)275 & / (Niceco2 + Qccnco2)273 c rhocloudco2t(ig,l) = (Niceco2 *rho_ice_co2 274 c & + Qccnco2*rho_dust) 275 c & / (Niceco2 + Qccnco2) 276 276 riceco2(ig,l)= Niceco2*3.0/ 277 277 & (4.0*rho_ice_co2*pi*Nccnco2) 278 278 & +rdust(ig,l)*rdust(ig,l)*rdust(ig,l) 279 279 riceco2(ig,l)=riceco2(ig,l)**(1.0/3.0) 280 write(*,*) "in co2clouds, rice = ",riceco2(ig,l)281 write(*,*) "in co2clouds, rho = ",rhocloudco2t(ig,l)282 283 280 c write(*,*) "in co2clouds, rice = ",riceco2(ig,l) 281 c write(*,*) "in co2clouds, rho = ",rhocloudco2t(ig,l) 282 283 call updaterice_microCO2(Niceco2,Qccnco2,Nccnco2, 284 284 & tauscaling(ig),riceco2(ig,l),rhocloudco2t(ig,l)) 285 write(*,*) "in co2clouds, rice update = ",riceco2(ig,l)286 write(*,*) "in co2clouds, rho update = "287 & ,rhocloudco2t(ig,l)285 c write(*,*) "in co2clouds, rice update = ",riceco2(ig,l) 286 c write(*,*) "in co2clouds, rho update = " 287 c & ,rhocloudco2t(ig,l) 288 288 289 289 rsedcloudco2(ig,l)=max(riceco2(ig,l)* … … 291 291 & rdust(ig,l)) 292 292 rsedcloudco2(ig,l)=min(rsedcloudco2(ig,l),5.e-4) 293 write(*,*) 'Rsedcloud = ',rsedcloudco2(ig,l)293 c write(*,*) 'Rsedcloud = ',rsedcloudco2(ig,l) 294 294 !write(*,*) 'Rhocloudco2 = ',rhocloudco2t(ig,l) 295 295 … … 657 657 & pdqcloudco2(ig,l,igcm_ccnco2_mass))*ptimestep)* 658 658 & tauscaling(ig),1.e-30) 659 rhocloudco2t(ig,l) = (Niceco2 *rho_ice_co2 + Qccnco2*rho_dust)660 & / (Niceco2 + Qccnco2)659 c rhocloudco2t(ig,l) = (Niceco2 *rho_ice_co2 + Qccnco2*rho_dust) 660 c & / (Niceco2 + Qccnco2) 661 661 c rhocloudco2(ig,l) = min(max(rhocloudco2t,rho_ice_co2),rho_dust) 662 662 … … 669 669 670 670 riceco2(ig,l)=riceco2(ig,l)**(1.0/3.0) 671 write(*,*) "In co2cloud, after loop, riceco2 =",riceco2(ig,l)672 write(*,*) "In co2cloud, after loop, rhoco2 ="673 & ,rhocloudco2t(ig,l)671 c write(*,*) "In co2cloud, after loop, riceco2 =",riceco2(ig,l) 672 c write(*,*) "In co2cloud, after loop, rhoco2 =" 673 c & ,rhocloudco2t(ig,l) 674 674 675 675 call updaterice_microCO2(Niceco2,Qccnco2,Nccnco2, 676 676 & tauscaling(ig),riceco2(ig,l),rhocloudco2t(ig,l)) 677 677 678 write(*,*) "In co2cloud, after loop and update, riceco2 ="679 & ,riceco2(ig,l)680 write(*,*) "In co2cloud, after loop and update, rhoco2 ="681 & ,rhocloudco2t(ig,l)678 c write(*,*) "In co2cloud, after loop and update, riceco2 =" 679 c & ,riceco2(ig,l) 680 c write(*,*) "In co2cloud, after loop and update, rhoco2 =" 681 c & ,rhocloudco2t(ig,l) 682 682 683 683 if ( Niceco2 … … 752 752 & (mmean(ig,l)/44.01)*pplay(ig,l)/zqsatco2(ig,l) 753 753 754 write(*,*) "In CO2 pt,sat ",pt(ig,l),satuco2(ig,l)754 c write(*,*) "In CO2 pt,sat ",pt(ig,l),satuco2(ig,l) 755 755 enddo 756 756 enddo 757 call WRITEDIAGFI(ngrid,"satuco2","vap in satu","kg/kg", 1,757 call WRITEDIAGFI(ngrid,"satuco2","vap in satu","kg/kg",3, 758 758 & satuco2) 759 759 call WRITEdiagfi(ngrid,"riceco2","ice radius","m" 760 & , 1,riceco2)760 & ,3,riceco2) 761 761 ! or output in diagfi.nc (for testphys1d) 762 762 c call WRITEDIAGFI(ngrid,'ps','Surface pressure','Pa',0,ps) … … 764 764 c & 'K JA',1,pt) 765 765 766 call WRITEdiagfi(ngrid,"rsedcloudco2","rsed co2","m", 1,766 call WRITEdiagfi(ngrid,"rsedcloudco2","rsed co2","m",3, 767 767 & rsedcloudco2) 768 768 -
trunk/LMDZ.MARS/libf/phymars/improvedCO2clouds.F
r1632 r1649 302 302 303 303 IF ( satu .ge. 1d0 ) THEN ! if there is condensation 304 write(*,*)305 write(*,*) "l, pco2, satu= ",l,pco2,satu304 c write(*,*) 305 c write(*,*) "l, pco2, satu= ",l,pco2,satu 306 306 c Masse_atm=mmean(ig,l)*1.e-3*pplay(ig,l)/rgp/zt(ig,l) !Kg par couche 307 307 … … 309 309 call updaterccn(zq(ig,l,igcm_dust_mass), 310 310 & zq(ig,l,igcm_dust_number),rdust(ig,l),tauscaling(ig)) 311 write(*,*) "Improved, l,Rdust = ",l,rdust(ig,l)311 c write(*,*) "Improved, l,Rdust = ",l,rdust(ig,l) 312 312 313 313 rdust(ig,l)= zq(ig,l,igcm_dust_mass) … … 315 315 & / zq(ig,l,igcm_dust_number) 316 316 rdust(ig,l)= rdust(ig,l)**(1./3.) 317 write(*,*) "Improved2, l,Rdust = ",l,rdust(ig,l)317 c write(*,*) "Improved2, l,Rdust = ",l,rdust(ig,l) 318 318 rdust(ig,l)=max(1.e-9,rdust(ig,l)) 319 319 rdust(ig,l)=min(2e-6,rdust(ig,l)) 320 write(*,*) "Improved3, l,Rdust = ",l,rdust(ig,l)320 c write(*,*) "Improved3, l,Rdust = ",l,rdust(ig,l) 321 321 322 322 c Expand the dust moments into a binned distribution 323 323 Mo = zq(ig,l,igcm_dust_mass)* tauscaling(ig) 324 324 No = zq(ig,l,igcm_dust_number)* tauscaling(ig) 325 write(*,*) "dust number, mass = ",326 & zq(ig,l,igcm_dust_number)* tauscaling(ig),327 & zq(ig,l,igcm_dust_mass)* tauscaling(ig)325 c write(*,*) "dust number, mass = ", 326 c & zq(ig,l,igcm_dust_number)* tauscaling(ig), 327 c & zq(ig,l,igcm_dust_mass)* tauscaling(ig) 328 328 c write(*,*) "No, Mo = ",No, Mo 329 329 Rn = rdust(ig,l) … … 461 461 c + enlever les CCN a la distri de dust 462 462 463 write(*,*) "new dust_mass, number =",464 & zq(ig,l,igcm_dust_mass)* tauscaling(ig),465 & zq(ig,l,igcm_dust_number)*tauscaling(ig)466 write(*,*) "new ccn mass, number =",467 & zq(ig,l,igcm_ccnco2_mass)* tauscaling(ig)468 & ,zq(ig,l,igcm_ccnco2_number)*tauscaling(ig)463 c write(*,*) "new dust_mass, number =", 464 c & zq(ig,l,igcm_dust_mass)* tauscaling(ig), 465 c & zq(ig,l,igcm_dust_number)*tauscaling(ig) 466 c write(*,*) "new ccn mass, number =", 467 c & zq(ig,l,igcm_ccnco2_mass)* tauscaling(ig) 468 c & ,zq(ig,l,igcm_ccnco2_number)*tauscaling(ig) 469 469 470 470 ENDIF ! of is satu >1 … … 497 497 & zq(ig,l,igcm_dust_number) .lt. 0. ) THEN 498 498 499 write(*,*) " before growth CCN N,M = "499 write(*,*) "CO2 clouds before growth CCN N,M = " 500 500 & ,zq(ig,l,igcm_ccnco2_number)*tauscaling(ig) 501 501 & ,zq(ig,l,igcm_ccnco2_mass)*tauscaling(ig) … … 522 522 ! WATCH OUT: CO2 nuclei is supposed to be dust 523 523 ! only when deriving rhocloud (otherwise would need to keep info on water embedded in co2) - listo 524 write(*,*) "Rdust before growth = ",rdust(ig,l)525 write(*,*) "Riceco2 before growth = ",riceco2(ig,l)524 c write(*,*) "Rdust before growth = ",rdust(ig,l) 525 c write(*,*) "Riceco2 before growth = ",riceco2(ig,l) 526 526 527 527 !! Niceco2,Qccnco2,Nccnco2 … … 531 531 call updaterice_microCO2(Niceco2,Qccnco2,Nccnco2, 532 532 & tauscaling(ig),riceco2(ig,l),rhocloudco2(ig,l)) 533 write(*,*) "Riceco2 update before growth = ",riceco2(ig,l)533 c write(*,*) "Riceco2 update before growth = ",riceco2(ig,l) 534 534 535 535 No = zq(ig,l,igcm_ccnco2_number)* tauscaling(ig) … … 550 550 & riceco2(ig,l)*rho_ice_co2)*Ic_rice 551 551 dMice = No * Ic_rice * ptimestep ! Kg par kg d'air, <0 si croissance ! 552 write(*,*) "dMicev0 in improved = " , dMice552 c write(*,*) "dMicev0 in improved = " , dMice 553 553 554 554 if (dMice .gt. 0) dMice = min(dMice,zq0(ig,l,igcm_co2_ice)) … … 561 561 c write(*,*) "riceco2+dr/dt = ", riceco2(ig,l) 562 562 563 write(*,*) "dMice in improved = " , dMice563 c write(*,*) "dMice in improved = " , dMice 564 564 565 565 … … 574 574 & *tauscaling(ig)) +rdust(ig,l)*rdust(ig,l) 575 575 & *rdust(ig,l) )**(1.0/3.0) 576 write(*,*) "new riceco2 = ",riceco2(ig,l)576 c write(*,*) "new riceco2 = ",riceco2(ig,l) 577 577 578 578 !! Niceco2,Qccnco2,Nccnco2 … … 582 582 call updaterice_microCO2(Niceco2,Qccnco2,Nccnco2, 583 583 & tauscaling(ig),riceco2(ig,l),rhocloudco2(ig,l)) 584 write(*,*) "new riceco2 updaterad= ",riceco2(ig,l)584 c write(*,*) "new riceco2 updaterad= ",riceco2(ig,l) 585 585 586 586 ! latent heat release -
trunk/LMDZ.MARS/libf/phymars/physiq_mod.F
r1640 r1649 1165 1165 & nq,tau,tauscaling,rdust,rice,riceco2,nuice, 1166 1166 & rsedcloudco2,rhocloudco2,zzlev,zdqssed_co2) 1167 1168 1169 call WRITEdiagfi(ngrid,"rhocloudco2","rho cloud co2","kk",1, 1170 & rhocloudco2) 1171 1167 1172 1168 1173 1169 c Temperature variation due to latent heat release … … 2282 2278 c call WRITEDIAGFI(ngrid,'lw_htrt','lw heat. rate', 2283 2279 c & 'w.m-2',3,zdtlw) 2280 2281 if (co2clouds) then 2282 do iq=1, nq 2283 call WRITEDIAGFI(ngrid,trim(noms(iq)), 2284 & trim(noms(iq)),'kg/kg',3,zq(:,:,iq)) 2285 end do 2286 endif 2284 2287 if (.not.activice) then 2285 2288 CALL WRITEDIAGFI(ngrid,'tauTESap',
Note: See TracChangeset
for help on using the changeset viewer.