Changeset 1885 for trunk/LMDZ.MARS/libf/phymars
- Timestamp:
- Jan 5, 2018, 4:45:21 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/libf/phymars/co2cloud.F
r1820 r1885 173 173 REAL :: zteff(ngrid, nlay)! effective temperature in the cloud,neb 174 174 REAL :: pqeff(ngrid, nlay, nq)! effective tracers quantities in the cloud 175 REAL :: c loudfrac(ngrid,nlay) ! cloud fraction175 REAL :: co2cloudfrac(ngrid,nlay) ! cloud fraction 176 176 REAL :: mincloud ! min cloud frac 177 177 DOUBLE PRECISION:: rho,zu,NN,gradT !For Saturation Index computation … … 287 287 print*,' i, rad_cldco2(i), Qext1bins(i)' 288 288 do i=1,nbinco2_cld 289 write(*,'(i3,3x,3(e1 2.6,4x))') i, rad_cldco2(i),289 write(*,'(i3,3x,3(e13.6,4x))') i, rad_cldco2(i), 290 290 & Qext1bins(i) 291 291 enddo … … 337 337 338 338 spant=spantCO2 ! delta T for the temprature distribution 339 mincloud=0.1 ! min c loudfrac when there is ice339 mincloud=0.1 ! min co2cloudfrac when there is ice 340 340 zteff(:,:)=pt(:,:) 341 c loudfrac(:,:)=mincloud341 co2cloudfrac(:,:)=mincloud 342 342 343 343 c-----Tendencies … … 358 358 359 359 360 call WRITEDIAGFI(ngrid," pzlev","pzlev","km",3,360 call WRITEDIAGFI(ngrid,"co2cloud_pzlev","pzlev","km",3, 361 361 & pzlev) 362 call WRITEDIAGFI(ngrid," pzlay","pzlay","km",3,362 call WRITEDIAGFI(ngrid,"co2cloud_pzlay","pzlay","km",3, 363 363 & pzlay) 364 call WRITEDIAGFI(ngrid," pplay","pplay","Pa",3,364 call WRITEDIAGFI(ngrid,"co2cloud_pplay","pplay","Pa",3, 365 365 & pplay) 366 366 … … 412 412 & .or. tcond(ig,l) .le. 0 ) THEN !The entire fraction is saturated 413 413 zteff(ig,l)=zt(ig,l) 414 c loudfrac(ig,l)=1.414 co2cloudfrac(ig,l)=1. 415 415 ELSE IF (tcond(ig,l) .le. (zt(ig,l)-zdelt)) THEN ! No saturation at all 416 416 zteff(ig,l)=zt(ig,l)-zdelt 417 c loudfrac(ig,l)=mincloud417 co2cloudfrac(ig,l)=mincloud 418 418 ELSE 419 c loudfrac(ig,l)=(tcond(ig,l)-zt(ig,l)+zdelt)/419 co2cloudfrac(ig,l)=(tcond(ig,l)-zt(ig,l)+zdelt)/ 420 420 & (2.0*zdelt) 421 421 zteff(ig,l)=(tcond(ig,l)+zt(ig,l)-zdelt)/2. !Mean temperature of the cloud fraction 422 422 END IF !ig if (tcond(ig,l) ... 423 423 zteff(ig,l)=zteff(ig,l)-pdt(ig,l)*ptimestep 424 IF (c loudfrac(ig,l).le. mincloud) THEN425 c loudfrac(ig,l)=mincloud426 ELSE IF (c loudfrac(ig,l).gt. 1) THEN427 c loudfrac(ig,l)=1.424 IF (co2cloudfrac(ig,l).le. mincloud) THEN 425 co2cloudfrac(ig,l)=mincloud 426 ELSE IF (co2cloudfrac(ig,l).gt. 1) THEN 427 co2cloudfrac(ig,l)=1. 428 428 END IF 429 429 ENDDO … … 431 431 !SatIndex not favorable for GW : leave pt untouched 432 432 zteff(ig,l)=pt(ig,l) 433 c loudfrac(ig,l)=mincloud433 co2cloudfrac(ig,l)=mincloud 434 434 ENDIF ! of if(SatIndexmap... 435 435 ENDDO ! of DO ig=1,ngrid … … 494 494 pqeff(:,:,:)=pq(:,:,:) ! prevent from buggs (A. Pottier) 495 495 pqeff(:,:,igcm_ccnco2_mass) =pq(:,:,igcm_ccnco2_mass)/ 496 & c loudfrac(:,:)496 & co2cloudfrac(:,:) 497 497 pqeff(:,:,igcm_ccnco2_number)= 498 & pq(:,:,igcm_ccnco2_number)/c loudfrac(:,:)498 & pq(:,:,igcm_ccnco2_number)/co2cloudfrac(:,:) 499 499 pqeff(:,:,igcm_co2_ice)= pq(:,:,igcm_co2_ice)/ 500 & c loudfrac(:,:)500 & co2cloudfrac(:,:) 501 501 ELSE 502 502 pqeff(:,:,:)=pq(:,:,:) … … 869 869 enddo 870 870 enddo 871 !Everything modified by CO2 microphysics must be wrt c loudfrac871 !Everything modified by CO2 microphysics must be wrt co2cloudfrac 872 872 IF (CLFvaryingCO2) THEN 873 874 875 876 & pdqcloudco2(ig,l,igcm_ccn_mass)*cloudfrac(ig,l)877 878 & pdqcloudco2(ig,l,igcm_ccnco2_mass)*cloudfrac(ig,l)879 880 & pdqcloudco2(ig,l,igcm_ccn_number)*cloudfrac(ig,l)881 882 & pdqcloudco2(ig,l,igcm_ccnco2_number)*cloudfrac(ig,l)883 884 & pdqcloudco2(ig,l,igcm_dust_mass)*cloudfrac(ig,l)885 886 & pdqcloudco2(ig,l,igcm_dust_number)*cloudfrac(ig,l)887 888 & pdqcloudco2(ig,l,igcm_h2o_ice)*cloudfrac(ig,l)889 890 & pdqcloudco2(ig,l,igcm_co2_ice)*cloudfrac(ig,l)891 892 & pdqcloudco2(ig,l,igcm_co2)*cloudfrac(ig,l)893 pdtcloudco2(ig,l)=pdtcloudco2(ig,l)*cloudfrac(ig,l)894 Qext1bins2(ig,l)=Qext1bins2(ig,l)*cloudfrac(ig,l)895 896 873 DO l=1,nlay 874 DO ig=1,ngrid 875 pdqcloudco2(ig,l,igcm_ccn_mass)= 876 & pdqcloudco2(ig,l,igcm_ccn_mass)*co2cloudfrac(ig,l) 877 pdqcloudco2(ig,l,igcm_ccnco2_mass)= 878 & pdqcloudco2(ig,l,igcm_ccnco2_mass)*co2cloudfrac(ig,l) 879 pdqcloudco2(ig,l,igcm_ccn_number)= 880 & pdqcloudco2(ig,l,igcm_ccn_number)*co2cloudfrac(ig,l) 881 pdqcloudco2(ig,l,igcm_ccnco2_number)= 882 & pdqcloudco2(ig,l,igcm_ccnco2_number)*co2cloudfrac(ig,l) 883 pdqcloudco2(ig,l,igcm_dust_mass)= 884 & pdqcloudco2(ig,l,igcm_dust_mass)*co2cloudfrac(ig,l) 885 pdqcloudco2(ig,l,igcm_dust_number)= 886 & pdqcloudco2(ig,l,igcm_dust_number)*co2cloudfrac(ig,l) 887 pdqcloudco2(ig,l,igcm_h2o_ice)= 888 & pdqcloudco2(ig,l,igcm_h2o_ice)*co2cloudfrac(ig,l) 889 pdqcloudco2(ig,l,igcm_co2_ice)= 890 & pdqcloudco2(ig,l,igcm_co2_ice)*co2cloudfrac(ig,l) 891 pdqcloudco2(ig,l,igcm_co2)= 892 & pdqcloudco2(ig,l,igcm_co2)*co2cloudfrac(ig,l) 893 pdtcloudco2(ig,l)=pdtcloudco2(ig,l)*co2cloudfrac(ig,l) 894 Qext1bins2(ig,l)=Qext1bins2(ig,l)*co2cloudfrac(ig,l) 895 ENDDO 896 ENDDO 897 897 ENDIF 898 898 ! opacity in mesh ig is the sum over l of Qext1bins2: Is this true ? … … 910 910 call WRITEdiagfi(ngrid,"riceco2","ice radius","m" 911 911 & ,3,riceco2) 912 call WRITEdiagfi(ngrid,"c loudfrac","co2 cloud fraction"913 & ," ",3,c loudfrac)912 call WRITEdiagfi(ngrid,"co2cloudfrac","co2 cloud fraction" 913 & ," ",3,co2cloudfrac) 914 914 call WRITEdiagfi(ngrid,"rsedcloudco2","rsed co2" 915 915 & ,"m",3,rsedcloudco2)
Note: See TracChangeset
for help on using the changeset viewer.