Changeset 3235 for trunk


Ignore:
Timestamp:
Feb 26, 2024, 10:53:39 AM (9 months ago)
Author:
gmilcareck
Message:

Add thermal conduction from thermosphere.

Location:
trunk/LMDZ.GENERIC
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/changelog.txt

    r3233 r3235  
    18581858Add the possibility to use a fixed vertical molar fraction profile for the
    18591859collision-induced absorption like the correlated-k.
     1860
     1861== 26/02/2024 == GM
     1862
     1863Add thermal conduction from thermosphere. The conductivity for each gas is
     1864calculated with the interpolated akk*T**skk formula and the total conductivity
     1865of a mix of gases is calculated according to Mason & Saxena (1958) semi-empirical
     1866formulation.
  • trunk/LMDZ.GENERIC/libf/phystd/callkeys_mod.F90

    r3233 r3235  
    1414      logical,save :: strictboundcia                                     
    1515!$OMP THREADPRIVATE(strictboundcia)
     16      logical,save :: callthermos
     17      logical,save :: force_conduction
     18      real,save    :: phitop
     19      real,save    :: zztop
     20      real,save    :: a_coeff
     21      real,save    :: s_coeff
     22!$OMP THREADPRIVATE(callthermos,phitop,zztop,force_conduction,a_coeff,s_coeff)
    1623
    1724      logical,save :: enertest
  • trunk/LMDZ.GENERIC/libf/phystd/inifis_mod.F90

    r3233 r3235  
    260260     if (is_master) write(*,*) trim(rname)//&
    261261       ": strictboundcorrk = ",strictboundcorrk
     262       
     263     if (is_master) write(*,*) trim(rname)//&
     264       ": call thermosphere ?"
     265     callthermos=.false. ! default value
     266     call getin_p("callthermos",callthermos)
     267     if (is_master) write(*,*) trim(rname)//&
     268       ": callthermos = ",callthermos
     269     if(callthermos) then
     270       if (is_master) write(*,*) trim(rname)//&
     271         ": flux from thermosphere ? W/m2"
     272       phitop = 0.0 ! default value
     273       call getin_p("phitop",phitop)
     274       if (is_master) write(*,*) trim(rname)//&
     275         ": phitop = ",phitop
     276       if (is_master) write(*,*) trim(rname)//&
     277         ": Thickness of conduction ? m"
     278       zztop = 1000.
     279       call getin_p("zztop",zztop)
     280       if (is_master) write(*,*) trim(rname)//&
     281         ": zztop = ",zztop
     282       if (is_master) write(*,*) trim(rname)//&
     283         ": Force conduction ? "
     284       force_conduction=.false. ! default value
     285       call getin_p("force_conduction",force_conduction)
     286       if (is_master) write(*,*) trim(rname)//&
     287         ": force_conduction = ",force_conduction
     288       if(force_conduction) then
     289         if (is_master) write(*,*) trim(rname)//&
     290           ": a_coeff ?"
     291         a_coeff = 0.0 ! default value
     292         call getin_p("a_coeff",a_coeff)
     293         if (is_master) write(*,*) trim(rname)//&
     294           ": a_coeff = ",a_coeff
     295         if (is_master) write(*,*) trim(rname)//&
     296           ": s_coeff ?"
     297         s_coeff = 0.0 ! default value
     298         call getin_p("s_coeff",s_coeff)
     299         if (is_master) write(*,*) trim(rname)//&
     300           ": s_coeff = ",s_coeff
     301       endif
     302     endif
    262303
    263304     if (is_master) write(*,*) trim(rname)//&
  • trunk/LMDZ.GENERIC/libf/phystd/physiq_mod.F90

    r3233 r3235  
    6666                              ok_slab_ocean, photochem, rings_shadow, rmean, &
    6767                              season, sedimentation,generic_condensation, &
    68                               specOLR, &
     68                              specOLR, callthermos, &
    6969                              startphy_file, testradtimes, tlocked, &
    7070                              tracer, UseTurbDiff, water, watercond, &
     
    7777      use phys_state_var_mod
    7878      use callcorrk_mod, only: callcorrk
     79      use conduction_mod
    7980      use pindex_mod, only: pindex
    8081      use vdifc_mod, only: vdifc
     
    308309      real zdtsdif(ngrid)     ! Turbdiff/vdifc routines.
    309310      real zdtsurf_hyd(ngrid) ! Hydrol routine.
     311     
     312      ! For Thermosphere : (K/s)
     313      real zdtconduc(ngrid,nlayer)
    310314
    311315      ! For Atmospheric Temperatures : (K/s)
     
    518522         zdtsw(:,:) = 0.0
    519523         zdtlw(:,:) = 0.0
     524         zdtconduc(:,:)= 0.0
    520525         
    521526!        Initialize fixed variable mu
     
    23112316
    23122317
     2318! -------------------------
     2319!   IX. Thermosphere
     2320! -------------------------
     2321      if (callthermos) then
     2322        call conduction(ngrid,nlayer,nq,ptimestep,pplay,pplev,  &
     2323                          pt,tsurf,zzlev,zzlay,muvar,pq,firstcall,zdtconduc)
     2324        pdt(1:ngrid,1:nlayer)=pdt(1:ngrid,1:nlayer)+zdtconduc(1:ngrid,1:nlayer)
     2325      endif ! of if (callthermos)
     2326
     2327
    23132328!----------------------------------------------------------------------
    23142329!        Writing NetCDF file  "RESTARTFI" at the end of the run
Note: See TracChangeset for help on using the changeset viewer.