Changeset 3936 for trunk/LMDZ.PLUTO/libf
- Timestamp:
- Oct 25, 2025, 3:21:13 PM (7 weeks ago)
- Location:
- trunk/LMDZ.PLUTO/libf/phypluto
- Files:
-
- 1 deleted
- 7 edited
- 1 moved
-
hazecloud.F90 (modified) (3 diffs)
-
initracer.F90 (modified) (6 diffs)
-
interpolateN2CH4.F90 (moved) (moved from trunk/LMDZ.PLUTO/libf/phypluto/interpolateCO2CH4.F90)
-
physiq_mod.F90 (modified) (4 diffs)
-
stelang.F (modified) (3 diffs)
-
surface_nature.F (deleted)
-
tabfi_mod.F90 (modified) (1 diff)
-
testconserv.F90 (modified) (2 diffs)
-
tracer_h.F90 (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.PLUTO/libf/phypluto/hazecloud.F90
r3934 r3936 164 164 flym_ipm(1)=flym_ipm(1)*pfluxuv/5. 165 165 ELSE IF (.not.diurnal) THEN 166 mu_sol(:) = m u0(:)166 mu_sol(:) = max(mu0(:),0.) 167 167 mu_ipm(:) = max(mu_sol(:), 0.5) 168 flym_ipm(:)= mu 0(:)*72.5e10168 flym_ipm(:)= mu_sol(:)*72.5e10 169 169 ELSE ! case with full fit to Gladstone et al. results 170 170 ! 1) get longitude/latitude (in radian) of anti-subsolar point (max de mu0 - 180) … … 182 182 DO ig=1,ngrid 183 183 ! calculation of cosinus of incident angle for IPM flux 184 mu_sol(ig) = m u0(ig)184 mu_sol(ig) = max(mu0(ig),0.) 185 185 mu_ipm(ig) = max(mu_sol(ig), 0.5) 186 IF (mu 0(ig).LT.1.e-4) THEN ! Daytime186 IF (mu_sol(ig).LE.0.) THEN ! Nighttime 187 187 ! Distance to subsolar point 188 188 dist=acos(sin(latitude(ig))*sin(latit)+cos(latitude(ig))* & … … 191 191 flym_ipm(ig)=(valmin_dl-valmin)/(90.**puis)*(dist)**puis & 192 192 +valmin 193 ELSE ! Nightime194 flym_ipm(ig)= mu 0(ig)*(valmax-valmin_dl)+valmin_dl193 ELSE ! Daytime 194 flym_ipm(ig)= mu_sol(ig)*(valmax-valmin_dl)+valmin_dl 195 195 ENDIF 196 196 ! Proportional to lyman alpha solar flux (reference 2015 : 5e11 ph/cm2/s) ? -
trunk/LMDZ.PLUTO/libf/phypluto/initracer.F90
r3585 r3936 43 43 ! rho_q(nq) ! tracer densities (kg.m-3) 44 44 ! qext(nq) ! Single Scat. Extinction coeff at 0.67 um 45 ! alpha_lift(nq) ! saltation vertical flux/horiz flux ratio (m-1)46 ! alpha_devil(nq) ! lifting coeeficient by dust devil47 45 ! rho_dust ! Mars dust density 48 46 ! rho_ice ! Water ice density … … 110 108 IF (.NOT.ALLOCATED(rho_q)) ALLOCATE(rho_q(nq)) 111 109 IF (.NOT.ALLOCATED(qext)) ALLOCATE(qext(nq)) 112 IF (.NOT.ALLOCATED(alpha_lift)) ALLOCATE(alpha_lift(nq))113 IF (.NOT.ALLOCATED(alpha_devil)) ALLOCATE(alpha_devil(nq))114 110 IF (.NOT.ALLOCATED(qextrhor)) ALLOCATE(qextrhor(nq)) 115 111 ! IF (.NOT.ALLOCATED(igcm_dustbin)) ALLOCATE(igcm_dustbin(nq)) 116 IF (.NOT.ALLOCATED(is_chim)) ALLOCATE(is_chim(nqtot))117 112 IF (.NOT.ALLOCATED(is_rad)) ALLOCATE(is_rad(nqtot)) 118 113 IF (.NOT.ALLOCATED(is_recomb)) ALLOCATE(is_recomb(nqtot)) … … 125 120 126 121 !! initialization 127 alpha_lift(:) = 0.128 alpha_devil(:) = 0.129 122 mmol(:) = 0. 130 123 aki(:) = 0. 131 124 cpi(:) = 0. 132 is_chim(:) = 0133 125 is_rad(:) = 0 134 126 is_recomb(:) = 0 … … 383 375 384 376 if (is_master) close(407) 385 386 ! Calculate number of species in the chemistry387 nesp = sum(is_chim)388 write(*,*) 'Number of species in the chemistry nesp = ',nesp389 377 390 378 ! Calculate number of microphysical tracer … … 451 439 write(*,*) 452 440 Write(*,*) '******** initracer : dust transport parameters :' 453 write(*,*) 'alpha_lift = ', alpha_lift454 write(*,*) 'alpha_devil = ', alpha_devil455 441 write(*,*) 'radius = ', radius 456 442 write(*,*) 'Qext = ', qext … … 504 490 cpi(iq) 505 491 end if 506 ! option is_chim507 if (index(tracline,'is_chim=' ) /= 0) then508 read(tracline(index(tracline,'is_chim=')+len('is_chim='):),*) &509 is_chim(iq)510 write(*,*) ' Parameter value (traceur.def) : is_chim=', &511 is_chim(iq)512 else513 write(*,*) ' Parameter value (default) : is_chim=', &514 is_chim(iq)515 end if516 492 ! option is_rad 517 493 if (index(tracline,'is_rad=') /= 0) then -
trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90
r3935 r3936 33 33 igcm_n2,igcm_ch4_gas,igcm_ch4_ice,igcm_haze,& 34 34 igcm_co_gas,igcm_co_ice,igcm_prec_haze,lw_n2,lw_ch4,lw_co,& 35 alpha_lift, alpha_devil, qextrhor, & 36 nesp, is_chim 35 qextrhor 37 36 use time_phylmdz_mod, only: diagfi_output_rate, startfi_output_rate, nday 38 37 use phyetat0_mod, only: phyetat0 … … 535 534 zdtsw(:,:) = 0.0 536 535 zdtlw(:,:) = 0.0 537 zdqc(:,:,:)=0.538 zdqsc(:,:)=0.539 536 540 537 ! Initialize tracer names, indexes and properties. … … 1447 1444 endif 1448 1445 1446 zdqc(:,:,:)=0.0 1447 zdqsc(:,:)=0.0 1448 1449 1449 call condense_n2(ngrid,nlayer,nq,ptimestep, & 1450 1450 capcal,pplay,pplev,tsurf,pt, & … … 2276 2276 call write_output("ASR","absorbed stellar rad.","W m-2",fluxabs_sw) 2277 2277 call write_output("ISR","incoming stellar rad.","W m-2",fluxtop_dn) 2278 call write_output("mu0","cos zenith anlge","",mu0) 2278 2279 call write_output("OLR","outgoing longwave rad.","W m-2",fluxtop_lw) 2279 2280 call write_output("GND","heat flux from ground","W m-2",fluxgrd) -
trunk/LMDZ.PLUTO/libf/phypluto/stelang.F
r3184 r3936 85 85 c----- AF24: replaced flat param by 0 86 86 87 rap = 1./((1.-0)**2)87 c rap = 1./((1.-0)**2) 88 88 89 89 100 CONTINUE … … 98 98 C 99 99 DO jl=1,kgrid 100 ztim1=psilat(jl)*ptim1 *rap100 ztim1=psilat(jl)*ptim1 !*rap 101 101 ztim2=pcolat(jl)*ptim2 102 102 ztim3=pcolat(jl)*ptim3 103 103 pmu0(jl)=ztim1+ztim2*pcolon(jl)+ztim3*psilon(jl) 104 pmu0(jl)=pmu0(jl)/SQRT(pcolat(jl)**2+(rap**2)*(psilat(jl)**2))104 c pmu0(jl)=pmu0(jl)/SQRT(pcolat(jl)**2+(rap**2)*(psilat(jl)**2)) 105 105 106 106 ENDDO … … 112 112 IF (pmu0(jl).gt.0.) THEN 113 113 pfract(jl)=1. 114 c pmu0(jl)=sqrt(1224.*pmu0(jl)*pmu0(jl)+1.)/35.115 ELSE116 c pmu0(jl)=0.117 pfract(jl)=0.114 c pmu0(jl)=sqrt(1224.*pmu0(jl)*pmu0(jl)+1.)/35. 115 ELSE 116 c pmu0(jl)=0. 117 pfract(jl)=0. 118 118 ENDIF 119 119 ENDDO -
trunk/LMDZ.PLUTO/libf/phypluto/tabfi_mod.F90
r3772 r3936 153 153 dtemisice(:)=0 !time scale for snow metamorphism 154 154 volcapa=1000000 ! volumetric heat capacity of subsurface 155 tpal=0. 156 adjust=0. 155 157 156 158 ELSE -
trunk/LMDZ.PLUTO/libf/phypluto/testconserv.F90
r3627 r3936 12 12 ! Purpose 13 13 ! ------- 14 ! Test conservation of tracers14 ! Test conservation of gas trace tracers (CO and CH4 for now) 15 15 ! 16 16 ! Inputs … … 96 96 enddo 97 97 98 iq = igcm199 dWtots = dWtots + zdqs(ig,iq)*ptimestep*cell_area(ig)100 Wtots = Wtots + pqcs(ig,iq)*cell_area(ig)101 ncons(ig)=ncons(ig)+zdqs(ig,iq)102 103 98 IF ((igcm2.eq.igcm_co_ice).or.(igcm2.eq.igcm_ch4_ice)) THEN 104 99 iq = igcm2 -
trunk/LMDZ.PLUTO/libf/phypluto/tracer_h.F90
r3585 r3936 12 12 13 13 integer, save :: nqtot ! total number of tracers 14 integer, save :: nesp ! number of species in the chemistry 15 !$OMP THREADPRIVATE(nqtot,nesp) 14 !$OMP THREADPRIVATE(nqtot) 16 15 17 16 logical :: moderntracdef=.false. ! Standard or modern traceur.def … … 25 24 real, save, allocatable :: rho_q(:) ! tracer densities (kg.m-3) 26 25 real, save, allocatable :: qext(:) ! Single Scat. Extinction coeff at 0.67 um 27 real, save, allocatable :: alpha_lift(:) ! saltation vertical flux/horiz flux ratio (m-1)28 real, save, allocatable :: alpha_devil(:) ! lifting coeeficient by dust devil29 26 real, save, allocatable :: qextrhor(:) ! Intermediate for computing opt. depth from q 30 27 … … 41 38 integer,save :: nmono 42 39 real,save :: ref_r0 ! for computing reff=ref_r0*r0 (in log.n. distribution) 43 !$OMP THREADPRIVATE(noms,mmol,aki,cpi,radius,rho_q,qext, alpha_lift,alpha_devil,qextrhor, &40 !$OMP THREADPRIVATE(noms,mmol,aki,cpi,radius,rho_q,qext,qextrhor, & 44 41 !$OMP varian,r3n_q,rho_dust,rho_ice,rho_n2,lw_n2,ref_r0) 45 42 46 integer, save, allocatable :: is_chim(:) ! 1 if tracer used in chemistry, else 047 43 integer, save, allocatable :: is_rad(:) ! 1 if "" "" in radiative transfer, else 0 48 !$OMP THREADPRIVATE(is_ chim,is_rad)44 !$OMP THREADPRIVATE(is_rad) 49 45 50 46 integer, save, allocatable :: is_recomb(:) ! 1 if tracer used in recombining scheme, else 0 (if 1, must have is_rad=1)
Note: See TracChangeset
for help on using the changeset viewer.
