Changeset 3390 for trunk/LMDZ.PLUTO/libf/phypluto
- Timestamp:
- Jun 25, 2024, 1:54:02 PM (7 months ago)
- Location:
- trunk/LMDZ.PLUTO/libf/phypluto
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.PLUTO/libf/phypluto/check_fields.F90
r3184 r3390 8 8 !$OMP THREADPRIVATE(default_wind_max) 9 9 10 real,save :: default_ps_min= 80.! minimum reasonable surface pressure (Pa)10 real,save :: default_ps_min=1.e-5 ! minimum reasonable surface pressure (Pa) 11 11 real,save :: default_ps_max=3000000. ! maximum reasonable surface pressure (Pa) 12 12 !$OMP THREADPRIVATE(default_ps_min,default_ps_max) -
trunk/LMDZ.PLUTO/libf/phypluto/condense_n2.F90
r3232 r3390 130 130 REAL globzplevnew 131 131 132 !REAL vmrn2(klon)132 REAL vmrn2(klon) 133 133 ! SAVE vmrn2 134 134 REAL stephan … … 179 179 ENDIF 180 180 181 !vmrn2(:) = 1.181 vmrn2(:) = 1. 182 182 !IF (ch4lag) then 183 183 ! DO ig=1,klon … … 545 545 endif 546 546 end do 547 end if 548 549 550 !!! Source haze: 0.02 pourcent when n2 sublimes 547 end if 548 549 ! Value transfert at the surface interface when condensation sublimation: 550 if (zmflux(1).lt.0) then 551 ! Surface condensation 552 zum(1)= zu(1) 553 zvm(1)= zv(1) 554 ztm(1) = ztc(1) 555 else 556 ! Surface sublimation: 557 ztm(1) = ztsrf(ig) + pdtsrfc(ig)*ptimestep 558 zum(1) = 0 559 zvm(1) = 0 560 end if 561 do iq=1,nq 562 zqm(1,iq)=0. ! most tracer do not condense ! 563 enddo 564 ! Special case if the tracer is n2 gas 565 if (igcm_n2.ne.0) zqm(1,igcm_n2)=1. 566 567 !!! Source haze: 0.02 pourcent when n2 sublimes 551 568 IF (source_haze) THEN 552 IF (pdicen2(ig).lt.0) THEN553 DO iq=1,nq554 tname=noms(iq)555 if (tname(1:4).eq."haze") then556 !zqm(1,iq)=0.02557 !zqm(1,iq)=-pdicen2(ig)*0.02558 zqm(1,iq)=-pdicen2(ig)*ptimestep*0.02559 !zqm(10,iq)=-pdicen2(ig)*ptimestep*100.560 !zqm(1,iq)=-pdicen2(ig)*1000000.561 562 endif563 ENDDO564 ENDIF565 ENDIF 569 IF (pdicen2(ig).lt.0) THEN 570 DO iq=1,nq 571 tname=noms(iq) 572 if (tname(1:4).eq."haze") then 573 !zqm(1,iq)=0.02 574 !zqm(1,iq)=-pdicen2(ig)*0.02 575 zqm(1,iq)=-pdicen2(ig)*ptimestep*0.02 576 !zqm(10,iq)=-pdicen2(ig)*ptimestep*100. 577 !zqm(1,iq)=-pdicen2(ig)*1000000. 578 579 endif 580 ENDDO 581 ENDIF 582 ENDIF 566 583 ztm(klev+1)= ztc(klev) ! should not be used, but... 567 584 zum(klev+1)= zu(klev) ! should not be used, but... 568 585 zvm(klev+1)= zv(klev) ! should not be used, but... 569 586 do iq=1,nq 570 zqm(klev+1,iq)= zq(klev,iq)587 zqm(klev+1,iq)= zq(klev,iq) 571 588 enddo 572 589 573 ! 574 ! 590 ! Tendencies on T, U, V, Q 591 ! """"""""""""""""""""""" 575 592 DO l=1,klev 576 593 -
trunk/LMDZ.PLUTO/libf/phypluto/hazecloud.F90
r3247 r3390 10 10 use tracer_h, only: igcm_haze, igcm_ch4_gas, igcm_prec_haze, noms, mmol 11 11 use geometry_mod, only: longitude, latitude ! in radians 12 use callkeys_mod, only: hazeconservch4 12 use callkeys_mod, only: hazeconservch4, diurnal 13 13 14 14 implicit none … … 119 119 mu_ipm(1) = 0.5 !max(mu0(1), 0.5) 120 120 mu_sol(1)=0.25 121 ELSE IF (.not.diurnal) THEN 122 flym_ipm(:)= mu0(:)*75.e10 123 mu_sol(:) = mu0(:) 124 mu_ipm(:) = max(mu_sol(:), 0.5) 121 125 ELSE 122 123 126 ! 1) get longitude/latitude (rad) of anti-subsolar point (max de mu0 - 180) 124 127 longit=longitude((MAXLOC(mu0,DIM=1,MASK=mu0.GT.0.9))) ! rad -
trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90
r3377 r3390 1290 1290 endif 1291 1291 1292 zdqc(:,:,:)=0. 1293 zdqsc(:,:)=0. 1292 1294 call condense_n2(ngrid,nlayer,nq,ptimestep, & 1293 1295 capcal,pplay,pplev,tsurf,pt, & … … 2239 2241 call writediagfi(ngrid,"zdtlw","LW heating","T s-1",3,zdtlw) 2240 2242 call writediagfi(ngrid,"dtrad","radiative heating","K s-1",3,dtrad) 2241 2243 ! call writediagfi(ngrid,"zdtdyn","Dyn. heating","T s-1",3,zdtdyn) 2242 2244 2243 2245 !Pluto specific 2244 call writediagfi(ngrid,"zdtc","tendancy T cond N2","K",3,zdtc)2246 ! call writediagfi(ngrid,"zdtc","tendancy T cond N2","K",3,zdtc) 2245 2247 ! call writediagfi(ngrid,"zdtch4cloud","tendancy T ch4cloud","K",3,zdtch4cloud) 2246 2248 ! call writediagfi(ngrid,"zdtcocloud","tendancy T cocloud","K",3,zdtcocloud) … … 2268 2270 2269 2271 do iq=1,nq 2270 2271 call writediagfi(ngrid,trim(noms(iq))//'_surf',trim(noms(iq))//'_surf', &2272 'kg m^-2',2,qsurf_hist(1,iq) )2273 call writediagfi(ngrid,trim(noms(iq))//'_col',trim(noms(iq))//'_col', &2274 'kg m^-2',2,qcol(1,iq) )2272 ! call writediagfi(ngrid,noms(iq),noms(iq),'kg/kg',3,zq(1,1,iq)) 2273 ! call writediagfi(ngrid,trim(noms(iq))//'_surf',trim(noms(iq))//'_surf', & 2274 ! 'kg m^-2',2,qsurf_hist(1,iq) ) 2275 ! call writediagfi(ngrid,trim(noms(iq))//'_col',trim(noms(iq))//'_col', & 2276 ! 'kg m^-2',2,qcol(1,iq) ) 2275 2277 ! call writediagfi(ngrid,trim(noms(iq))//'_surf',trim(noms(iq))//'_surf', & 2276 2278 ! 'kg m^-2',2,qsurf(1,iq) ) … … 2287 2289 ! if((hydrology).and.(.not.ok_slab_ocean))then !AF24: removed 2288 2290 2289 call writediagfi(ngrid,"tau_col","Total aerosol optical depth","[]",2,tau_col)2291 ! call writediagfi(ngrid,"tau_col","Total aerosol optical depth","[]",2,tau_col) 2290 2292 2291 2293 enddo ! end of 'nq' loop 2292 2294 2293 2295 !Pluto specific 2294 call writediagfi(ngrid,'n2_iceflux','n2_iceflux',"kg m^-2 s^-1",2,flusurf(1,igcm_n2) )2296 !call writediagfi(ngrid,'n2_iceflux','n2_iceflux',"kg m^-2 s^-1",2,flusurf(1,igcm_n2) ) 2295 2297 ! call writediagfi(ngrid,'haze_reff','haze_reff','m',3,reffrad(1,1,1)) 2296 2298 if (methane) then … … 2302 2304 endif 2303 2305 2304 2305 2306 3,zdqch4cloud(1,1,igcm_ch4_gas))2307 call writediagfi(ngrid,"zdqcn2_ch4","zdq condn2 ch4","",&2308 3,zdqc(:,:,igcm_ch4_gas))2309 call writediagfi(ngrid,"zdqdif_ch4","zdqdif ch4","",&2310 3,zdqdif(:,:,igcm_ch4_gas))2311 call writediagfi(ngrid,"zdqsdif_ch4_ice","zdqsdif ch4","",&2312 2,zdqsdif(:,igcm_ch4_ice))2313 call writediagfi(ngrid,"zdqadj_ch4","zdqadj ch4","",&2314 3,zdqadj(:,:,igcm_ch4_gas))2306 ! Tendancies 2307 !call writediagfi(ngrid,"zdqch4cloud","ch4 cloud","T s-1",& 2308 ! 3,zdqch4cloud(1,1,igcm_ch4_gas)) 2309 ! call writediagfi(ngrid,"zdqcn2_ch4","zdq condn2 ch4","",& 2310 ! 3,zdqc(:,:,igcm_ch4_gas)) 2311 ! call writediagfi(ngrid,"zdqdif_ch4","zdqdif ch4","",& 2312 ! 3,zdqdif(:,:,igcm_ch4_gas)) 2313 ! call writediagfi(ngrid,"zdqsdif_ch4_ice","zdqsdif ch4","",& 2314 ! 2,zdqsdif(:,igcm_ch4_ice)) 2315 ! call writediagfi(ngrid,"zdqadj_ch4","zdqadj ch4","",& 2316 ! 3,zdqadj(:,:,igcm_ch4_gas)) 2315 2317 if (sedimentation) then 2316 2318 call writediagfi(ngrid,"zdqsed_ch4","zdqsed ch4","",& -
trunk/LMDZ.PLUTO/libf/phypluto/sfluxi_pluto_mod.F
r3361 r3390 14 14 use radcommon_h, only: planckir, tlimit,sigma, gweight 15 15 use comcstfi_mod, only: pi 16 use gfluxi_old_mod, only: gfluxi_old 16 !use gfluxi_old_mod, only: gfluxi_old 17 use gfluxi_mod, only: gfluxi 17 18 18 19 … … 136 137 C WITHIN EACH INTERVAL AT THE MIDPOINT WAVENUMBER 137 138 138 CALL GFLUXI _OLD(NLEVRAD,TLEV,NW,DWNI(NW),DTAUI(1,NW,NG),139 CALL GFLUXI(NLEVRAD,TLEV,NW,DWNI(NW),DTAUI(1,NW,NG), 139 140 * TAUCUMI(1,NW,NG), 140 141 * WBARI(1,NW,NG),COSBI(1,NW,NG),UBARI,RSFI,BTOP, … … 193 194 194 195 195 CALL GFLUXI _OLD(NLEVRAD,TLEV,NW,DWNI(NW),DTAUI(1,NW,NG),196 CALL GFLUXI(NLEVRAD,TLEV,NW,DWNI(NW),DTAUI(1,NW,NG), 196 197 * TAUCUMI(1,NW,NG), 197 198 * WBARI(1,NW,NG),COSBI(1,NW,NG),UBARI,RSFI,BTOP, -
trunk/LMDZ.PLUTO/libf/phypluto/sfluxv_pluto_mod.F
r3361 r3390 12 12 use radinc_h, only: L_NLAYRAD, L_NLEVRAD 13 13 use radcommon_h, only: tlimit, gweight 14 use gfluxv_old_mod, only: gfluxv_old 14 !use gfluxv_old_mod, only: gfluxv_old 15 use gfluxv_mod, only: gfluxv 15 16 16 17 implicit none … … 100 101 101 102 102 CALL GFLUXV _OLD(DTAUV(1,NW,NG),TAUV(1,NW,NG),TAUCUMV(1,NW,NG),103 CALL GFLUXV(DTAUV(1,NW,NG),TAUV(1,NW,NG),TAUCUMV(1,NW,NG), 103 104 * WBARV(1,NW,NG),COSBV(1,NW,NG),UBAR0,F0PI,RSFV, 104 105 * BTOP,BSURF,FMUPV,FMDV,DIFFV,FLUXUP,FLUXDN) … … 155 156 C RETURN FLUXES FOR A GIVEN NT 156 157 157 CALL GFLUXV _OLD(DTAUV(1,NW,NG),TAUV(1,NW,NG),TAUCUMV(1,NW,NG),158 CALL GFLUXV(DTAUV(1,NW,NG),TAUV(1,NW,NG),TAUCUMV(1,NW,NG), 158 159 * WBARV(1,NW,NG),COSBV(1,NW,NG),UBAR0,F0PI,RSFV, 159 160 * BTOP,BSURF,FMUPV,FMDV,DIFFV,FLUXUP,FLUXDN)
Note: See TracChangeset
for help on using the changeset viewer.