Changeset 4033
- Timestamp:
- Jan 28, 2026, 3:06:52 PM (4 weeks ago)
- Location:
- trunk/LMDZ.GENERIC/libf/phystd
- Files:
-
- 1 added
- 5 edited
-
callkeys_mod.F90 (modified) (1 diff)
-
conc_mod.F90 (modified) (3 diffs)
-
conduction.F90 (modified) (4 diffs)
-
inifis_mod.F90 (modified) (1 diff)
-
molvis.F90 (added)
-
physiq_mod.F90 (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.GENERIC/libf/phystd/callkeys_mod.F90
r3942 r4033 22 22 !$OMP THREADPRIVATE(strictboundrayleigh) 23 23 logical,save :: callthermos 24 logical,save :: callconduc 25 logical,save :: callmolvis 24 26 logical,save :: force_conduction 25 real,save :: phitop 27 real,save :: phitop_conduc 28 real,save :: phitop_molvis 26 29 real,save :: zztop 27 30 real,save :: a_coeff 28 31 real,save :: s_coeff 29 !$OMP THREADPRIVATE(callthermos, phitop,zztop,force_conduction,a_coeff,s_coeff)32 !$OMP THREADPRIVATE(callthermos,callconduc,callmolvis,phitop_conduc,phitop_molvis,zztop,force_conduction,a_coeff,s_coeff) 30 33 31 34 logical,save :: enertest -
trunk/LMDZ.GENERIC/libf/phystd/conc_mod.F90
r1798 r4033 5 5 real,save,allocatable :: mmean(:,:) ! mean molecular mass of the atmosphere 6 6 real,save,allocatable :: Akknew(:,:) ! thermal conductivity cofficient 7 real,save,allocatable :: lambda(:,:) ! effective thermal conductivity 7 8 real,save,allocatable :: cpnew(:,:) ! specicic heat 8 9 real,save,allocatable :: rnew(:,:) ! specific gas constant … … 18 19 allocate(mmean(ngrid,nlayer)) 19 20 allocate(Akknew(ngrid,nlayer)) 21 allocate(lambda(ngrid,nlayer)) 20 22 allocate(cpnew(ngrid,nlayer)) 21 23 allocate(rnew(ngrid,nlayer)) … … 29 31 if (allocated(mmean)) deallocate(mmean) 30 32 if (allocated(Akknew)) deallocate(Akknew) 33 if (allocated(lambda)) deallocate(lambda) 31 34 if (allocated(cpnew)) deallocate(cpnew) 32 35 if (allocated(rnew)) deallocate(rnew) -
trunk/LMDZ.GENERIC/libf/phystd/conduction.F90
r3235 r4033 9 9 10 10 use comcstfi_mod, only: r, cpp, mugaz 11 use callkeys_mod, only: phitop,zztop,a_coeff,s_coeff,force_conduction 11 use callkeys_mod, only: phitop_conduc,zztop,a_coeff,s_coeff,force_conduction 12 use conc_mod, only: lambda 12 13 use gases_h 13 14 … … 48 49 INTEGER :: i,ig,l,igas,kgas 49 50 REAL :: alpha(ngrid,nlayer) 50 REAL :: lambda(ngrid,nlayer)51 51 REAL :: muvol(ngrid,nlayer) ! kg.m-3 52 52 REAL :: C(ngrid,nlayer) … … 111 111 molar_frac(:,:,igas) = gfrac(igas) 112 112 here(igas) = .true. 113 elseif(igas.eq.igas_CO2) then 114 !Interpolated from Hurly et al., (2007) 115 !valid between 20 and 1000 K (max 3 percent of error) 116 akk(igas) = 3.072e-4 117 skk(igas) = 0.69 118 molar_mass(igas) = 44.010e-3 119 akk_visc(igas) = 4.5054e-7 120 skk_visc(igas) = 0.6658 121 molar_frac(:,:,igas) = gfrac(igas) 122 here(igas) = .true. 113 123 ! Add more molecules here and the reference PLEASE! 114 124 else … … 205 215 * (1-D(:,nlayer-1)) 206 216 C(:,nlayer) =C(:,nlayer-1)+zt(:,nlayer-1)-zt(:,nlayer) 207 C(:,nlayer) =(C(:,nlayer)*lambda(:,nlayer)+phitop ) &217 C(:,nlayer) =(C(:,nlayer)*lambda(:,nlayer)+phitop_conduc) & 208 218 / den(:,nlayer) 209 219 -
trunk/LMDZ.GENERIC/libf/phystd/inifis_mod.F90
r3942 r4033 292 292 if(callthermos) then 293 293 if (is_master) write(*,*) trim(rname)//& 294 ": call thermospheric conduction ?" 295 callconduc=.true. ! default value 296 call getin_p("conduction",callconduc) 297 if (is_master) write(*,*) trim(rname)//& 298 ": conduction = ",callconduc 299 if (is_master) write(*,*) trim(rname)//& 300 ": call thermospheric viscosity ?" 301 callmolvis=.true. ! default value 302 call getin_p("molvis",callmolvis) 303 if (is_master) write(*,*) trim(rname)//& 304 ": molvis = ",callmolvis 305 if (is_master) write(*,*) trim(rname)//& 294 306 ": flux from thermosphere ? W/m2" 295 phitop = 0.0 ! default value296 call getin_p("phitop ",phitop)307 phitop_conduc = 0.0 ! default value 308 call getin_p("phitop_conduc",phitop_conduc) 297 309 if (is_master) write(*,*) trim(rname)//& 298 ": phitop = ",phitop 310 ": phitop_conduc = ",phitop_conduc 311 if (is_master) write(*,*) trim(rname)//& 312 ": momentum flux from thermosphere ?" 313 phitop_molvis = 0.0 ! default value 314 call getin_p("phitop_molvis",phitop_molvis) 315 if (is_master) write(*,*) trim(rname)//& 316 ": phitop_molvis = ",phitop_molvis 299 317 if (is_master) write(*,*) trim(rname)//& 300 318 ": Thickness of conduction ? m" -
trunk/LMDZ.GENERIC/libf/phystd/physiq_mod.F90
r3990 r4033 71 71 ok_slab_ocean, photochem, rings_shadow, rmean, & 72 72 season, sedimentation,generic_condensation, & 73 specOLR, callthermos, callvolcano, & 73 specOLR, callvolcano, & 74 callthermos, callconduc, callmolvis, & 74 75 startphy_file, testradtimes, tlocked, & 75 76 tracer, UseTurbDiff, water, watercond, & … … 83 84 use callcorrk_mod, only: callcorrk 84 85 use conduction_mod, only: conduction 86 use molvis_mod, only: molvis 85 87 use volcano_mod, only: volcano 86 88 use pindex_mod, only: pindex … … 382 384 real zdhdif(ngrid,nlayer) ! Turbdiff/vdifc routines. 383 385 real zdhadj(ngrid,nlayer) ! Convadj routine. 386 real zdumolvis(ngrid,nlayer) ! Molecular viscosity (thermosphere) 387 real zdvmolvis(ngrid,nlayer) ! Molecular viscosity (thermosphere) 384 388 385 389 ! For Pressure and Mass : … … 541 545 zdtlw(:,:) = 0.0 542 546 zdtconduc(:,:) = 0.0 547 zdumolvis(:,:) = 0.0 548 zdvmolvis(:,:) = 0.0 543 549 544 550 ! Initialize fixed variable mu … … 2384 2390 ! ------------------------- 2385 2391 if (callthermos) then 2386 call conduction(ngrid,nlayer,nq,ptimestep,pplay,pplev, & 2387 pt,tsurf,zzlev,zzlay,muvar,pq,firstcall,zdtconduc) 2388 pdt(1:ngrid,1:nlayer)=pdt(1:ngrid,1:nlayer)+zdtconduc(1:ngrid,1:nlayer) 2392 2393 if (callconduc) then 2394 call conduction(ngrid,nlayer,nq,ptimestep,pplay,pplev, & 2395 pt,tsurf,zzlev,zzlay,muvar,pq,firstcall,zdtconduc) 2396 pdt(1:ngrid,1:nlayer)=pdt(1:ngrid,1:nlayer)+zdtconduc(1:ngrid,1:nlayer) 2397 endif 2398 2399 if (callmolvis) then 2400 ! u 2401 call molvis(ngrid,nlayer,ptimestep,pplay,pplev,pt,pdt, & 2402 pu,zzlev,zzlay,zdumolvis) 2403 pdu(1:ngrid,1:nlayer) = pdu(1:ngrid,1:nlayer) + zdumolvis(1:ngrid,1:nlayer) 2404 ! v 2405 call molvis(ngrid,nlayer,ptimestep,pplay,pplev,pt,pdt, & 2406 pv,zzlev,zzlay,zdvmolvis) 2407 pdv(1:ngrid,1:nlayer) = pdv(1:ngrid,1:nlayer) + zdvmolvis(1:ngrid,1:nlayer) 2408 endif 2409 2389 2410 endif ! of if (callthermos) 2390 2411
Note: See TracChangeset
for help on using the changeset viewer.
