Ignore:
Timestamp:
Feb 24, 2014, 4:05:47 PM (10 years ago)
Author:
Ehouarn Millour
Message:

Add updating pressure, mass and Exner function (ie: all variables which depend on surface pressure) after adding physics tendencies (which include a surface pressure tendency).
Note that this change induces slight changes in GCM results with respect to previous svn version of the code, even if surface pressure tendency is zero (because of recomputation of polar values as an average over polar points on the dynamics grid).
EM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/dyn3dmem/calfis_loc.F

    r1907 r1987  
    4141      Use Write_field_p
    4242      USE Times
    43       USE infotrac
    44       USE control_mod
     43      USE infotrac, ONLY: nqtot, niadv, tname
     44      USE control_mod, ONLY: planet_type, nsplit_phys
    4545
    4646      IMPLICIT NONE
     
    115115c    Arguments :
    116116c    -----------
    117       LOGICAL  lafin
    118 !      REAL heure
    119       REAL, intent(in):: jD_cur, jH_cur
    120       REAL pvcov(iip1,jjb_v:jje_v,llm)
    121       REAL pucov(iip1,jjb_u:jje_u,llm)
    122       REAL pteta(iip1,jjb_u:jje_u,llm)
    123       REAL pmasse(iip1,jjb_u:jje_u,llm)
    124       REAL pq(iip1,jjb_u:jje_u,llm,nqtot)
    125       REAL pphis(iip1,jjb_u:jje_u)
    126       REAL pphi(iip1,jjb_u:jje_u,llm)
    127 c
    128       REAL pdvcov(iip1,jjb_v:jje_v,llm)
    129       REAL pducov(iip1,jjb_u:jje_u,llm)
    130       REAL pdteta(iip1,jjb_u:jje_u,llm)
    131       REAL pdq(iip1,jjb_u:jje_u,llm,nqtot)
    132       REAL flxw(iip1,jjb_u:jje_u,llm)  ! Flux de masse verticale sur la grille dynamique
    133 c
    134       REAL pps(iip1,jjb_u:jje_u)
    135       REAL pp(iip1,jjb_u:jje_u,llmp1)
    136       REAL ppk(iip1,jjb_u:jje_u,llm)
    137 c
    138       REAL pdvfi(iip1,jjb_v:jje_v,llm)
    139       REAL pdufi(iip1,jjb_u:jje_u,llm)
    140       REAL pdhfi(iip1,jjb_u:jje_u,llm)
    141       REAL pdqfi(iip1,jjb_u:jje_u,llm,nqtot)
    142       REAL pdpsfi(iip1,jjb_u:jje_u)
    143 
    144       INTEGER        longcles
    145       PARAMETER    ( longcles = 20 )
    146       REAL clesphy0( longcles )
     117      LOGICAL,INTENT(IN) ::  lafin ! .true. for the very last call to physics
     118      REAL,INTENT(IN):: jD_cur, jH_cur
     119      REAL,INTENT(IN):: pvcov(iip1,jjb_v:jje_v,llm) ! covariant meridional velocity
     120      REAL,INTENT(IN):: pucov(iip1,jjb_u:jje_u,llm) ! covariant zonal velocity
     121      REAL,INTENT(IN):: pteta(iip1,jjb_u:jje_u,llm) ! potential temperature
     122      REAL,INTENT(IN):: pmasse(iip1,jjb_u:jje_u,llm) ! mass in each cell ! not used
     123      REAL,INTENT(IN):: pq(iip1,jjb_u:jje_u,llm,nqtot) ! tracers
     124      REAL,INTENT(IN):: pphis(iip1,jjb_u:jje_u) ! surface geopotential
     125      REAL,INTENT(IN):: pphi(iip1,jjb_u:jje_u,llm) ! geopotential
     126
     127      REAL,INTENT(IN) :: pdvcov(iip1,jjb_v:jje_v,llm) ! dynamical tendency on vcov ! not used
     128      REAL,INTENT(IN) :: pducov(iip1,jjb_u:jje_u,llm) ! dynamical tendency on ucov
     129      REAL,INTENT(IN) :: pdteta(iip1,jjb_u:jje_u,llm) ! dynamical tendency on teta ! not used
     130      REAL,INTENT(IN) :: pdq(iip1,jjb_u:jje_u,llm,nqtot) ! dynamical tendency on tracers ! not used
     131
     132      REAL,INTENT(IN) :: pps(iip1,jjb_u:jje_u) ! surface pressure (Pa)
     133      REAL,INTENT(IN) :: pp(iip1,jjb_u:jje_u,llmp1) ! pressure at mesh interfaces (Pa)
     134      REAL,INTENT(IN) :: ppk(iip1,jjb_u:jje_u,llm) ! Exner at mid-layer
     135      REAL,INTENT(IN) :: flxw(iip1,jjb_u:jje_u,llm)  ! Vertical mass flux on dynamics grid
     136
     137      ! tendencies (in */s) from the physics
     138      REAL,INTENT(OUT) :: pdvfi(iip1,jjb_v:jje_v,llm) ! tendency on covariant meridional wind
     139      REAL,INTENT(OUT) :: pdufi(iip1,jjb_u:jje_u,llm) ! tendency on covariant zonal wind
     140      REAL,INTENT(OUT) :: pdhfi(iip1,jjb_u:jje_u,llm) ! tendency on potential temperature (K/s)
     141      REAL,INTENT(OUT) :: pdqfi(iip1,jjb_u:jje_u,llm,nqtot) ! tendency on tracers
     142      REAL,INTENT(OUT) :: pdpsfi(iip1,jjb_u:jje_u) ! tendency on surface pressure (Pa/s)
     143
     144      INTEGER,PARAMETER :: longcles = 20
     145      REAL,INTENT(IN) :: clesphy0( longcles ) ! unused
    147146
    148147
     
    221220c
    222221cIM diagnostique PVteta, Amip2
    223       INTEGER ntetaSTD
    224       PARAMETER(ntetaSTD=3)
    225       REAL rtetaSTD(ntetaSTD)
    226       DATA rtetaSTD/350., 380., 405./ ! Earth-specific values, beware !!
     222      INTEGER,PARAMETER :: ntetaSTD=3
     223      REAL,SAVE :: rtetaSTD(ntetaSTD)=(/350.,380.,405./) ! Earth-specific, beware !!
    227224      REAL PVteta(klon,ntetaSTD)
    228225     
     
    230227      REAL SSUM
    231228
    232       LOGICAL firstcal, debut
    233       DATA firstcal/.true./
    234       SAVE firstcal,debut
     229      LOGICAL,SAVE :: firstcal=.true., debut=.true.
    235230c$OMP THREADPRIVATE(firstcal,debut)
    236231     
Note: See TracChangeset for help on using the changeset viewer.