Changeset 3228 for trunk/LMDZ.PLUTO/libf/phypluto
- Timestamp:
- Feb 20, 2024, 4:46:35 PM (9 months ago)
- Location:
- trunk/LMDZ.PLUTO/libf/phypluto
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.PLUTO/libf/phypluto/comsoil_h.F90
r3184 r3228 5 5 !integer, parameter :: nsoilmx = 18 ! for z1=0.0002 m, depth = 18 m => mars case 6 6 !integer, parameter :: nsoilmx = 13 ! for z1=0.03 m, depth = 104.8 m => earth case 7 integer,save :: nsoilmx = 18! default, but may be set in callphys.def7 integer,save :: nsoilmx = 24 ! default, but may be set in callphys.def 8 8 ! Full soil layer depths are set as: layer(k)=lay1_soil*alpha_soil**(k-1) , k=1,nsoil 9 9 ! Mid soil layer depths are set as: mlayer(k)=lay1_soil*alpha_soil**(k-1/2) , k=0,nsoil-1 -
trunk/LMDZ.PLUTO/libf/phypluto/condense_n2.F90
r3195 r3228 130 130 REAL globzplevnew 131 131 132 REAL vmrn2(klon)132 ! REAL vmrn2(klon) 133 133 ! SAVE vmrn2 134 134 REAL stephan … … 172 172 ! calculate global mean surface pressure for the fast mode 173 173 IF (fast) THEN 174 IF (.not. ALLOCATED(kp)) ALLOCATE(kp(klon)) 174 175 DO ig=1,klon 175 176 kp(ig) = exp(-phisfi(ig)/(r*38.)) … … 178 179 ENDIF 179 180 180 vmrn2(:) = 1.181 IF (ch4lag) then182 DO ig=1,klon183 if (latitude(ig)*180./pi.ge.latlag) then184 vmrn2(ig) = vmrlag185 endif186 ENDDO187 ENDIF188 IF (no_n2frost) then189 DO ig=1,klon190 if (picen2(ig).eq.0.) then191 vmrn2(ig) = 1.e-15192 endif193 ENDDO194 ENDIF181 !vmrn2(:) = 1. 182 !IF (ch4lag) then 183 ! DO ig=1,klon 184 ! if (latitude(ig)*180./pi.ge.latlag) then 185 ! vmrn2(ig) = vmrlag 186 ! endif 187 ! ENDDO 188 !ENDIF 189 !IF (no_n2frost) then 190 ! DO ig=1,klon 191 ! if (picen2(ig).eq.0.) then 192 ! vmrn2(ig) = 1.e-15 193 ! endif 194 ! ENDDO 195 !ENDIF 195 196 firstcall=.false. 196 197 ENDIF … … 343 344 DO ig=1,klon 344 345 ! forecast of frost temperature ztcondsol 345 !ztcondsol(ig) = tcond_n2(zplev(ig),zqn2(ig,1))346 ztcondsol(ig) = tcond_n2(zplev(ig),vmrn2(ig))346 ztcondsol(ig) = tcond_n2(zplev(ig),zqn2(ig,1)) 347 !ztcondsol(ig) = tcond_n2(zplev(ig),vmrn2(ig)) 347 348 348 349 ! Loop over where we have condensation / sublimation … … 633 634 if((pq(ig,l,iq) +(pdqc(ig,l,iq)+ pdq(ig,l,iq))*ptimestep) & 634 635 .lt.0.01) then ! if n2 < 1 % ! 635 pdqc(ig,l,iq)=(0.01-pq(ig,l,iq))/ptimestep-pdq(ig,l,iq) 636 write(*,*) 'Warning: n2 < 1%' 637 pdqc(ig,l,iq)=(0.01-pq(ig,l,iq))/ptimestep-pdq(ig,l,iq) 636 638 end if 637 639 end if -
trunk/LMDZ.PLUTO/libf/phypluto/inifis_mod.F90
r3197 r3228 176 176 if (is_master) write(*,*) trim(rname)//": season = ",season 177 177 178 if (is_master) then 179 write(*,*) trim(rname)//": Fast mode (nogcm) ?" 180 endif 181 fast=.false. ! default value 182 call getin_p("fast",fast) 183 if (is_master) write(*,*) trim(rname)//": fast = ",fast 184 178 185 if (is_master) write(*,*) trim(rname)//& 179 186 ": No seasonal cycle: initial day to lock the run during restart" -
trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90
r3198 r3228 45 45 use comcstfi_mod, only: pi, g, rcp, r, rad, mugaz, cpp 46 46 use time_phylmdz_mod, only: daysec 47 use callkeys_mod, only: albedo_spectral_mode, calladj, calldifv, &47 use callkeys_mod, only: fast,albedo_spectral_mode, calladj, calldifv, & 48 48 callrad, callsoil, nosurf, & 49 49 aerohaze, corrk, diagdtau,& … … 293 293 ! For Surface Tracers : (kg/m2/s) 294 294 real dqsurf(ngrid,nq) ! Cumulated tendencies. 295 real zdqsurfc(ngrid) ! Condense_n2 routine.295 !real zdqsurfc(ngrid) ! Condense_n2 routine. 296 296 REAL zdqsc(ngrid,nq) ! Condense_n2 routine. 297 297 real zdqsdif(ngrid,nq) ! Turbdiff/vdifc routines. … … 768 768 ! w = F / (rho*area) and rho = P/(r*T) 769 769 ! But first linearly interpolate mass flux to mid-layers 770 do l=1,nlayer-1 770 if (.not.fast) then 771 do l=1,nlayer-1 771 772 pw(1:ngrid,l)=0.5*(flxw(1:ngrid,l)+flxw(1:ngrid,l+1)) 772 enddo773 pw(1:ngrid,nlayer)=0.5*flxw(1:ngrid,nlayer) ! since flxw(nlayer+1)=0774 do l=1,nlayer773 enddo 774 pw(1:ngrid,nlayer)=0.5*flxw(1:ngrid,nlayer) ! since flxw(nlayer+1)=0 775 do l=1,nlayer 775 776 pw(1:ngrid,l)=(pw(1:ngrid,l)*r*pt(1:ngrid,l)) / & 776 777 (pplay(1:ngrid,l)*cell_area(1:ngrid)) 777 enddo778 ! omega in Pa/s779 do l=1,nlayer-1778 enddo 779 ! omega in Pa/s 780 do l=1,nlayer-1 780 781 omega(1:ngrid,l)=0.5*(flxw(1:ngrid,l)+flxw(1:ngrid,l+1)) 781 enddo782 omega(1:ngrid,nlayer)=0.5*flxw(1:ngrid,nlayer) ! since flxw(nlayer+1)=0783 do l=1,nlayer782 enddo 783 omega(1:ngrid,nlayer)=0.5*flxw(1:ngrid,nlayer) ! since flxw(nlayer+1)=0 784 do l=1,nlayer 784 785 omega(1:ngrid,l)=g*omega(1:ngrid,l)/cell_area(1:ngrid) 785 enddo786 786 enddo 787 endif 787 788 !--------------------------------- 788 789 ! II. Compute radiative tendencies … … 922 923 albedo_equivalent(1:ngrid)=albedo(1:ngrid,1) 923 924 fluxsurfabs_sw(1:ngrid) = fluxtop_dn(1:ngrid)*(1.-albedo(1:ngrid,1)) 924 ! TB24:925 925 fluxabs_sw(1:ngrid)=fluxsurfabs_sw(1:ngrid) 926 926 fluxrad_sky(1:ngrid) = fluxsurfabs_sw(1:ngrid) … … 1138 1138 1139 1139 pdt(1:ngrid,1:nlayer) = pdt(1:ngrid,1:nlayer)+zdtc(1:ngrid,1:nlayer) 1140 pdv(1:ngrid,1:nlayer) = pdv(1:ngrid,1:nlayer)+zdvc(1:ngrid,1:nlayer) 1141 pdu(1:ngrid,1:nlayer) = pdu(1:ngrid,1:nlayer)+zduc(1:ngrid,1:nlayer) 1140 1142 zdtsurf(1:ngrid) = zdtsurf(1:ngrid) + zdtsurfc(1:ngrid) 1141 1143 1142 1144 pdq(1:ngrid,1:nlayer,1:nq) = pdq(1:ngrid,1:nlayer,1:nq)+ zdqc(1:ngrid,1:nlayer,1:nq) 1143 ! dqsurf(1:ngrid,igcm_n2_ice) = dqsurf(1:ngrid,igcm_n2_ice) + zdqsurfc(1:ngrid)1145 dqsurf(1:ngrid,igcm_n2) = dqsurf(1:ngrid,igcm_n2) + zdqsc(1:ngrid,igcm_n2) 1144 1146 1145 1147 !! call writediagfi(ngrid,"condense_n2_post_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_vap)) … … 1324 1326 1325 1327 tsurf(1:ngrid)=tsurf(1:ngrid)+ptimestep*zdtsurf(1:ngrid) 1326 1327 1328 ! Compute soil temperatures and subsurface heat flux. 1328 1329 if (callsoil) then … … 1378 1379 ! Surface pressure. 1379 1380 ps(1:ngrid) = pplev(1:ngrid,1) + pdpsrf(1:ngrid)*ptimestep 1380 1381 1381 1382 1382 … … 1645 1645 call writediagfi(ngrid,"tsurf","Surface temperature","K",2,tsurf) 1646 1646 call writediagfi(ngrid,"ps","Surface pressure","Pa",2,ps) 1647 call writediagfi(ngrid,"temp","temperature","K",3,zt) 1648 call writediagfi(ngrid,"teta","potential temperature","K",3,zh) 1649 call writediagfi(ngrid,"u","Zonal wind","m.s-1",3,zu) 1650 call writediagfi(ngrid,"v","Meridional wind","m.s-1",3,zv) 1651 call writediagfi(ngrid,"w","Vertical wind","m.s-1",3,pw) 1652 call writediagfi(ngrid,"p","Pressure","Pa",3,pplay) 1647 1648 if (.not.fast) then 1649 call writediagfi(ngrid,"temp","temperature","K",3,zt) 1650 call writediagfi(ngrid,"teta","potential temperature","K",3,zh) 1651 call writediagfi(ngrid,"u","Zonal wind","m.s-1",3,zu) 1652 call writediagfi(ngrid,"v","Meridional wind","m.s-1",3,zv) 1653 call writediagfi(ngrid,"w","Vertical wind","m.s-1",3,pw) 1654 call writediagfi(ngrid,"p","Pressure","Pa",3,pplay) 1655 endif 1653 1656 1654 1657 ! Subsurface temperatures -
trunk/LMDZ.PLUTO/libf/phypluto/soil.F
r3184 r3228 69 69 do ik=0,nsoil-1 70 70 mthermdiff(ig,ik)=therm_i(ig,ik+1)*therm_i(ig,ik+1)/volcapa 71 !write(*,*),'soil: ik: ',ik,' mthermdiff:',mthermdiff(ig,ik)71 !write(*,*),'soil: ik: ',ik,' mthermdiff:',mthermdiff(ig,ik) 72 72 enddo 73 73 enddo -
trunk/LMDZ.PLUTO/libf/phypluto/surfini.F
r3198 r3228 44 44 ! Step 2 : We get the bare ground albedo from the start files. 45 45 DO ig=1,ngrid 46 albedo_bareground(ig)=0. 1 ! TB24albedodat(ig)46 albedo_bareground(ig)=0.7 ! albedodat(ig) 47 47 DO nw=1,L_NSPECTV 48 albedo(ig,nw)=0. 1!albedo_bareground(ig)48 albedo(ig,nw)=0.7 !albedo_bareground(ig) 49 49 ENDDO 50 50 ENDDO -
trunk/LMDZ.PLUTO/libf/phypluto/turbdiff_mod.F90
r3198 r3228 138 138 139 139 IF (firstcall) THEN 140 ivap=1 !TB24140 ivap=1 141 141 iliq=0 142 142 iliq_surf=0
Note: See TracChangeset
for help on using the changeset viewer.