Changeset 3232 for trunk/LMDZ.PLUTO
- Timestamp:
- Feb 21, 2024, 5:45:11 PM (9 months ago)
- Location:
- trunk/LMDZ.PLUTO/libf/phypluto
- Files:
-
- 1 deleted
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.PLUTO/libf/phypluto/condense_n2.F90
r3228 r3232 495 495 end do 496 496 497 ! Value transfert at the surface interface when condensation sublimation: 498 499 if (zmflux(1).lt.0) then 500 ! Surface condensation 501 zum(1)= zu(1) 502 zvm(1)= zv(1) 503 ztm(1) = ztc(1) 504 else 505 ! Surface sublimation: 506 ztm(1) = ztsrf(ig) + pdtsrfc(ig)*ptimestep 507 zum(1) = 0 508 zvm(1) = 0 509 end if 510 do iq=1,nq 511 zqm(1,iq)=0. ! most tracer do not condense ! 512 enddo 513 ! Special case if the tracer is n2 gas 514 if (igcm_n2.ne.0) zqm(1,igcm_n2)=1. 515 497 516 ztm(2:klev+1)=0. 498 517 zum(2:klev+1)=0. … … 528 547 end if 529 548 530 ! Value transfert at the surface interface when condensation sublimation:531 532 if (zmflux(1).lt.0) then533 ! Surface condensation534 zum(1)= zu(1)535 zvm(1)= zv(1)536 ztm(1) = ztc(1)537 else538 ! Surface sublimation:539 ztm(1) = ztsrf(ig) + pdtsrfc(ig)*ptimestep540 zum(1) = 0541 zvm(1) = 0542 end if543 do iq=1,nq544 zqm(1,iq)=0. ! most tracer do not condense !545 enddo546 ! Special case if the tracer is n2 gas547 if (igcm_n2.ne.0) zqm(1,igcm_n2)=1.548 549 549 550 !!! Source haze: 0.02 pourcent when n2 sublimes -
trunk/LMDZ.PLUTO/libf/phypluto/dyn1d/kcmprof_fn.F90
r3184 r3232 2 2 3 3 use params_h 4 use watercommon_h, only : mH2O5 4 use gases_h 6 5 use comcstfi_mod, only: mugaz, cpp, g 7 use callkeys_mod, only: co2cond6 use callkeys_mod, only: n2cond 8 7 implicit none 9 8 … … 97 96 m_v = 1.0 98 97 tcrit = 1000.0 99 elseif(trim(gnom(vgas)).eq.'H2O')then100 m_v = dble(mH2O/1000.)101 tcrit = 6.47d298 ! elseif(trim(gnom(vgas)).eq.'H2O')then 99 ! m_v = dble(mH2O/1000.) ! AF24: no water in Pluton 100 ! tcrit = 6.47d2 102 101 elseif(trim(gnom(vgas)).eq.'NH3')then 103 102 m_v = 17.031/1000. … … 368 367 enddo 369 368 370 ! CO2 condensation 'haircut' of temperature profile if necessary371 if(co2cond)then372 print*,'CO2 condensation haircut - assumes CO2-dominated atmosphere!'373 do ilay=2,nlayer374 if(P_rcm(ilay).lt.518000.)then375 TCO2cond = (-3167.8)/(log(.01*P_rcm(ilay))-23.23) ! Fanale's formula376 else377 TCO2cond = 684.2-92.3*log(P_rcm(ilay))+4.32*log(P_rcm(ilay))**2378 ! liquid-vapour transition (based on CRC handbook 2003 data)379 endif380 381 print*,'p=',P_rcm(ilay),', T=',T_rcm(ilay),' Tcond=',TCO2cond382 if(T_rcm(ilay).lt.TCO2cond)then383 T_rcm(ilay)=TCO2cond384 endif385 enddo386 endif387 388 369 return 389 370 end subroutine kcmprof_fn -
trunk/LMDZ.PLUTO/libf/phypluto/dyn1d/rcm1d.F
r3184 r3232 89 89 REAL,ALLOCATABLE :: qsurf(:) ! tracer surface budget (e.g. kg.m-2) 90 90 REAL,ALLOCATABLE :: tsoil(:) ! subsurface soil temperature (K) 91 ! REAL co2ice ! co2ice layer (kg.m-2) !not used anymore92 integer :: i_ co2_ice=0 ! tracer index of co2 ice91 ! REAL n2ice ! n2ice layer (kg.m-2) !not used anymore 92 integer :: i_n2_ice=0 ! tracer index of n2 ice 93 93 integer :: i_h2o_ice=0 ! tracer index of h2o ice 94 94 integer :: i_h2o_vap=0 ! tracer index of h2o vapor … … 235 235 emisice(2)=0.95 ! Emissivite calotte sud 236 236 237 iceradius(1) = 100.e-6 ! mean scat radius of CO2 snow (north)238 iceradius(2) = 100.e-6 ! mean scat radius of CO2 snow (south)237 iceradius(1) = 100.e-6 ! mean scat radius of n2 snow (north) 238 iceradius(2) = 100.e-6 ! mean scat radius of n2 snow (south) 239 239 dtemisice(1) = 2. ! time scale for snow metamorphism (north) 240 240 dtemisice(2) = 2. ! time scale for snow metamorphism (south … … 313 313 endif 314 314 enddo !of do iq=1,nq 315 ! check for co2_ice / h2o_ice tracers:316 i_ co2_ice=0315 ! check for n2_ice / h2o_ice tracers: 316 i_n2_ice=0 317 317 i_h2o_ice=0 318 318 i_h2o_vap=0 319 319 do iq=1,nq 320 if (tname(iq)==" co2_ice") then321 i_ co2_ice=iq320 if (tname(iq)=="n2") then 321 i_n2_ice=iq 322 322 elseif (tname(iq)=="h2o_ice") then 323 323 i_h2o_ice=iq … … 390 390 call getin("rad",rad) 391 391 ! Planetary radius is needed to compute shadow of the rings 392 IF (rad.eq.-99999. .and. rings_shadow .eqv. .true.) THEN392 IF (rad.eq.-99999.) THEN 393 393 PRINT *,"STOP. I NEED rad IN RCM1D.DEF." 394 394 STOP … … 623 623 write(*,*)" tracer:",trim(txt) 624 624 625 ! CO2626 if (txt.eq." co2_ice") then625 ! n2 626 if (txt.eq."n2_ice") then 627 627 q(:,iq)=0. ! kg/kg of atmosphere 628 628 qsurf(iq)=0. ! kg/m2 at the surface 629 ! Look for a "profile_ co2_ice" input file630 open(91,file='profile_ co2_ice',status='old',629 ! Look for a "profile_n2_ice" input file 630 open(91,file='profile_n2_ice',status='old', 631 631 & form='formatted',iostat=ierr) 632 632 if (ierr.eq.0) then … … 636 636 enddo 637 637 else 638 write(*,*) "No profile_ co2_ice file!"638 write(*,*) "No profile_n2_ice file!" 639 639 endif 640 640 close(91) 641 endif ! of if (txt.eq." co2")641 endif ! of if (txt.eq."n2") 642 642 643 643 ! WATER VAPOUR … … 739 739 ENDDO 740 740 741 c emissivity / surface co2 ice ( + h2o ice??)741 c emissivity / surface n2 ice ( + h2o ice??) 742 742 c ------------------------------------------- 743 743 emis(1)=emissiv ! default value for emissivity … … 745 745 call getin("emis",emis(1)) 746 746 write(*,*) " emis = ",emis(1) 747 emissiv=emis(1) ! we do this so that condense_ co2 sets things to the right747 emissiv=emis(1) ! we do this so that condense_n2 sets things to the right 748 748 ! value if there is no snow 749 749 750 if(i_ co2_ice.gt.0)then751 qsurf(i_ co2_ice)=0 ! default value for co2ice752 print*,'Initial CO2 ice on the surface (kg.m-2)'753 call getin(" co2ice",qsurf(i_co2_ice))754 write(*,*) " co2ice = ",qsurf(i_co2_ice)755 IF (qsurf(i_ co2_ice).ge.1.E+0) THEN756 ! if we have some CO2 ice on the surface, change emissivity750 if(i_n2_ice.gt.0)then 751 qsurf(i_n2_ice)=0 ! default value for n2ice 752 print*,'Initial n2 ice on the surface (kg.m-2)' 753 call getin("n2ice",qsurf(i_n2_ice)) 754 write(*,*) " n2ice = ",qsurf(i_n2_ice) 755 IF (qsurf(i_n2_ice).ge.1.E+0) THEN 756 ! if we have some n2 ice on the surface, change emissivity 757 757 if (latitude(1).ge.0) then ! northern hemisphere 758 758 emis(1)=emisice(1) … … 911 911 call physdem1("startfi.nc",nsoilmx,1,llm,nq, 912 912 & dtphys,time, 913 & tsurf,tsoil,emis,q2,qsurf, 914 & cloudfrac,totcloudfrac,hice, 915 & rnat,pctsrf_sic,tslab,tsea_ice,sea_ice) 913 & tsurf,tsoil,emis,q2,qsurf) 916 914 917 915 c======================================================================= -
trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90
r3228 r3232 551 551 tsoil(1:ngrid,isoil)=tsurf(1:ngrid) 552 552 enddo 553 if (is_master) write(*,*) "Physiq: initializing day_ini to pda t!"553 if (is_master) write(*,*) "Physiq: initializing day_ini to pday !" 554 554 day_ini=pday 555 555 endif
Note: See TracChangeset
for help on using the changeset viewer.