Ignore:
Timestamp:
Jan 28, 2026, 3:06:52 PM (4 weeks ago)
Author:
mmaurice
Message:

Generic PCM

Introduce molecular viscosity module. Add callconduc and callmolvis
flags to call conduction and molecular viscosity, respectively. Change
phitop in conduction to phitop_conduc (there is also phitop_molvis now).
Move thermal conductivity lambda to conc_mod.F90.

MM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/libf/phystd/physiq_mod.F90

    r3990 r4033  
    7171                              ok_slab_ocean, photochem, rings_shadow, rmean, &
    7272                              season, sedimentation,generic_condensation, &
    73                               specOLR, callthermos, callvolcano, &
     73                              specOLR, callvolcano, &
     74                              callthermos, callconduc, callmolvis, &
    7475                              startphy_file, testradtimes, tlocked, &
    7576                              tracer, UseTurbDiff, water, watercond, &
     
    8384      use callcorrk_mod, only: callcorrk
    8485      use conduction_mod, only: conduction
     86      use molvis_mod, only: molvis
    8587      use volcano_mod, only: volcano
    8688      use pindex_mod, only: pindex
     
    382384      real zdhdif(ngrid,nlayer)                             ! Turbdiff/vdifc routines.
    383385      real zdhadj(ngrid,nlayer)                             ! Convadj routine.
     386      real zdumolvis(ngrid,nlayer)                          ! Molecular viscosity (thermosphere)
     387      real zdvmolvis(ngrid,nlayer)                          ! Molecular viscosity (thermosphere)
    384388
    385389      ! For Pressure and Mass :
     
    541545         zdtlw(:,:) = 0.0
    542546         zdtconduc(:,:) = 0.0
     547         zdumolvis(:,:) = 0.0
     548         zdvmolvis(:,:) = 0.0
    543549
    544550!        Initialize fixed variable mu
     
    23842390! -------------------------
    23852391      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
    23892410      endif ! of if (callthermos)
    23902411
Note: See TracChangeset for help on using the changeset viewer.