Ignore:
Timestamp:
May 3, 2019, 1:10:27 PM (6 years ago)
Author:
slebonnois
Message:

SL, Venus: new keys for flexibility cp0/cp(T) and Held-Suarez type physics

Location:
trunk/LMDZ.COMMON/libf
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.COMMON/libf/dyn3d/conf_gcm.F90

    r2126 r2135  
    1717                         output_grads_dyn, periodav, planet_type, &
    1818                         raz_date, resetvarc, starttime, timestart, &
    19                          ecritstart,force_conserv_tracer
     19                         ecritstart, cpofT,force_conserv_tracer
    2020  USE infotrac, ONLY : type_trac
    2121  use assert_m, only: assert
     
    476476  iphysiq = 5
    477477  CALL getin('iphysiq', iphysiq)
     478
     479!Config  Key  =  cpofT
     480!Config  Desc = dependence of Cp on T
     481!Config  Def  = False
     482!Config  Help = dependence of Cp on T (true or false)
     483  cpofT = .False.
     484  if (planet_type.eq."venus") then
     485   cpofT = .True.
     486  endif
     487  CALL getin('cpofT', cpofT)
    478488
    479489!Config  Key  = iflag_trac
     
    952962 write(lunout,*)' iflag_phys = ', iflag_phys
    953963 write(lunout,*)' iphysiq = ', iphysiq
     964 write(lunout,*)' cpofT = ', cpofT
    954965 write(lunout,*)' iflag_trac = ', iflag_trac
    955966 write(lunout,*)' iapp_tracvl = ', iapp_tracvl
  • trunk/LMDZ.COMMON/libf/dyn3d_common/control_mod.F90

    r2126 r2135  
    2929  integer,save :: ip_ebil_dyn
    3030  logical,save :: offline
     31  logical,save :: cpofT
    3132  logical,save :: force_conserv_tracer ! enforce conservation of tracer mass
    3233  character(len=4),save :: config_inca
  • trunk/LMDZ.COMMON/libf/dyn3d_common/cpdet_mod.F90

    r1659 r2135  
    2121      SUBROUTINE ini_cpdet
    2222     
    23       USE control_mod, ONLY: planet_type
     23      USE control_mod, ONLY: cpofT
    2424      USE comconst_mod, ONLY: nu_venus,t0_venus
    2525      IMPLICIT none
     
    2828!======================================================================
    2929
    30       if (planet_type.eq."venus") then
     30      if (cpofT) then
    3131          nu_venus=0.35
    3232          t0_venus=460.
     
    4444      FUNCTION cpdet(t)
    4545
    46       USE control_mod, ONLY: planet_type
     46      USE control_mod, ONLY: cpofT
    4747      USE comconst_mod, ONLY: cpp,t0_venus,nu_venus
    4848      IMPLICIT none
     
    5353      real cpdet
    5454
    55       if (planet_type.eq."venus") then
     55      if (cpofT) then
    5656          cpdet = cpp*(t/t0_venus)**nu_venus
    5757      else
     
    7575!======================================================================
    7676
    77       USE control_mod, ONLY: planet_type
     77      USE control_mod, ONLY: cpofT
    7878      USE comconst_mod, ONLY: cpp,t0_venus,nu_venus
    7979
     
    107107!----------------------
    108108
    109       if (planet_type.eq."venus") then
     109      if (cpofT) then
    110110          yteta = yt**nu_venus                                          &
    111111     &            - nu_venus * t0_venus**nu_venus * log(ypk/cpp)
     
    136136!======================================================================
    137137
    138       USE control_mod, ONLY: planet_type
     138      USE control_mod, ONLY: cpofT
    139139      USE comconst_mod, ONLY: cpp,nu_venus,t0_venus
    140140
     
    168168!----------------------
    169169
    170       if (planet_type.eq."venus") then
     170      if (cpofT) then
    171171
    172172!----------------------
     
    193193      SUBROUTINE t2tpot_p(nlon,nlev, yt, yteta, ypk)
    194194! Parallel version of t2tpot, for an arbitrary number of columns
    195       USE control_mod, only : planet_type
     195      USE control_mod, only : cpofT
    196196      USE parallel_lmdz, only : OMP_CHUNK
    197197      USE comconst_mod, ONLY: cpp,nu_venus,t0_venus
     
    231231!----------------------
    232232
    233       if (planet_type.eq."venus") then
     233      if (cpofT) then
    234234!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    235235        do l=1,nlev
     
    250250        enddo
    251251!$OMP END DO
    252       endif ! of if (planet_type.eq."venus")
     252      endif ! of if (cpofT)
    253253
    254254      end subroutine t2tpot_p
     
    261261! (more efficient than multiple calls to t2tpot_p() with slices of data)
    262262      USE parallel_lmdz, only : jj_begin,jj_end,OMP_CHUNK
    263       USE control_mod, only : planet_type
     263      USE control_mod, only : cpofT
    264264      USE comconst_mod, ONLY: cpp,nu_venus,t0_venus
    265265
     
    306306      jje=jj_end
    307307
    308       if (planet_type.eq."venus") then
     308      if (cpofT) then
    309309!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    310310        do l=1,llm
     
    325325        enddo
    326326!$OMP END DO
    327       endif ! of if (planet_type.eq."venus")
     327      endif ! of if (cpofT)
    328328
    329329      end subroutine t2tpot_glo_p
     
    334334      SUBROUTINE tpot2t_p(nlon,nlev,yteta,yt,ypk)
    335335! Parallel version of tpot2t, for an arbitrary number of columns
    336       USE control_mod, only : planet_type
     336      USE control_mod, only : cpofT
    337337      USE parallel_lmdz, only : OMP_CHUNK
    338338      USE comconst_mod, ONLY: cpp,nu_venus,t0_venus
     
    373373!----------------------
    374374
    375       if (planet_type.eq."venus") then
     375      if (cpofT) then
    376376!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    377377        do l=1,nlev
     
    391391        enddo
    392392!$OMP END DO
    393       endif ! of if (planet_type.eq."venus")
     393      endif ! of if (cpofT)
    394394      end subroutine tpot2t_p
    395395
     
    401401! (more efficient than multiple calls to tpot2t_p() with slices of data)
    402402      USE parallel_lmdz, only : jj_begin,jj_end,OMP_CHUNK
    403       USE control_mod, only : planet_type
     403      USE control_mod, only : cpofT
    404404      USE comconst_mod, ONLY: cpp,nu_venus,t0_venus
    405405
     
    446446      jje=jj_end
    447447
    448       if (planet_type.eq."venus") then
     448      if (cpofT) then
    449449!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    450450        do l=1,llm
     
    465465        enddo
    466466!$OMP END DO
    467       endif ! of if (planet_type.eq."venus")
     467      endif ! of if (cpofT)
    468468      end subroutine tpot2t_glo_p
    469469
  • trunk/LMDZ.COMMON/libf/dyn3dpar/conf_gcm.F90

    r2126 r2135  
    498498  iphysiq = 5
    499499  CALL getin('iphysiq', iphysiq)
     500
     501!Config  Key  =  cpofT
     502!Config  Desc = dependence of Cp on T
     503!Config  Def  = False
     504!Config  Help = dependence of Cp on T (true or false)
     505  cpofT = .False.
     506  if (planet_type.eq."venus") then
     507   cpofT = .True.
     508  endif
     509  CALL getin('cpofT', cpofT)
    500510
    501511!Config  Key  = iflag_trac
     
    9901000      write(lunout,*)' iflag_phys = ', iflag_phys
    9911001      write(lunout,*)' iphysiq = ', iphysiq
     1002      write(lunout,*)' cpofT = ', cpofT
    9921003      write(lunout,*)' iflag_trac = ', iflag_trac
    9931004      write(lunout,*)' iapp_tracvl = ', iapp_tracvl
  • trunk/LMDZ.COMMON/libf/dynphy_lonlat/phyvenus/iniphysiq_mod.F90

    r1682 r2135  
    7676
    7777  ! Initialize some physical constants
    78   call suphec
     78  call suphec(pcpp)
    7979
    8080  ! Initialize cpdet_phy module
  • trunk/LMDZ.COMMON/libf/dynphy_lonlat/phyvenus/newstart.F

    r2049 r2135  
    10411041c-----------------------------------------------------------------------
    10421042
     1043       IF ( notopo ) THEN
     1044        ps=9.2e6
     1045       ELSE
    10431046c  Extrapolation la pression dans la nouvelle grille
    10441047      call interp_horiz(psold,ps,imold,jmold,iim,jjm,1,
    10451048     &                   rlonuold,rlatvold,rlonu,rlatv)
     1049       ENDIF
    10461050
    10471051c       On assure la conservation de la masse de l'atmosphere
Note: See TracChangeset for help on using the changeset viewer.