Ignore:
Timestamp:
Feb 24, 2014, 4:05:47 PM (11 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

Location:
LMDZ5/trunk/libf/dyn3dmem
Files:
10 edited

Legend:

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

    r1907 r1987  
    5555c    -----------
    5656c
    57       REAL pdt
    58 c
    59       REAL pvcov(ijb_v:ije_v,llm),pucov(ijb_u:ije_u,llm)
    60       REAL pteta(ijb_u:ije_u,llm),pq(ijb_u:ije_u,llm,nqtot)
    61       REAL pps(ijb_u:ije_u)
    62 c
    63       REAL pdvfi(ijb_v:ije_v,llm),pdufi(ijb_u:ije_u,llm)
    64       REAL pdqfi(ijb_u:ije_u,llm,nqtot),pdhfi(ijb_u:ije_u,llm)
    65       REAL pdpfi(ijb_u:ije_u)
    66 c
    67       LOGICAL leapf,forward
     57      REAL,INTENT(IN) :: pdt ! time step for the integration (s)
     58c
     59      REAL,INTENT(INOUT) :: pvcov(ijb_v:ije_v,llm) ! covariant meridional wind
     60      REAL,INTENT(INOUT) :: pucov(ijb_u:ije_u,llm) ! covariant zonal wind
     61      REAL,INTENT(INOUT) :: pteta(ijb_u:ije_u,llm) ! potential temperature
     62      REAL,INTENT(INOUT) :: pq(ijb_u:ije_u,llm,nqtot) ! tracers
     63      REAL,INTENT(INOUT) :: pps(ijb_u:ije_u) ! surface pressure (Pa)
     64c respective tendencies (.../s) to add
     65      REAL,INTENT(IN) :: pdvfi(ijb_v:ije_v,llm)
     66      REAL,INTENT(IN) :: pdufi(ijb_u:ije_u,llm)
     67      REAL,INTENT(IN) :: pdqfi(ijb_u:ije_u,llm,nqtot)
     68      REAL,INTENT(IN) :: pdhfi(ijb_u:ije_u,llm)
     69      REAL,INTENT(IN) :: pdpfi(ijb_u:ije_u)
     70c
     71      LOGICAL,INTENT(IN) :: leapf,forward ! not used
    6872c
    6973c
     
    7377      REAL xpn(iim),xps(iim),tpn,tps
    7478      INTEGER j,k,iq,ij
    75       REAL qtestw, qtestt
    76       PARAMETER ( qtestw = 1.0e-15 )
    77       PARAMETER ( qtestt = 1.0e-40 )
     79      REAL,PARAMETER :: qtestw = 1.0e-15
     80      REAL,PARAMETER :: qtestt = 1.0e-40
    7881
    7982      REAL SSUM
  • LMDZ5/trunk/libf/dyn3dmem/advtrac_loc.F

    r1907 r1987  
    2424      USE Vampir
    2525      USE times
    26       USE infotrac
    27       USE control_mod
    28       USE advtrac_mod
     26      USE infotrac, ONLY: nqtot, iadv
     27      USE control_mod, ONLY: iapp_tracvl, day_step, planet_type
     28      USE advtrac_mod, ONLY: finmasse
    2929      IMPLICIT NONE
    3030c
  • LMDZ5/trunk/libf/dyn3dmem/caldyn_loc.F

    r1907 r1987  
    11!
    2 ! $Header$
     2! $Id: $
    33!
    4 c
    5 c
    64#undef DEBUG_IO
    75!#define DEBUG_IO
     
    1210      USE parallel_lmdz
    1311      USE Write_Field_loc
    14       USE caldyn_mod
     12      USE caldyn_mod, ONLY: vcont, ucont, ang, p, massebx, masseby,
     13     &                      vorpot, ecin, bern, massebxy, convm
    1514     
    1615      IMPLICIT NONE
    1716
    18 c=======================================================================
    19 c
    20 c  Auteur :  P. Le Van
    21 c
    22 c   Objet:
    23 c   ------
    24 c
    25 c   Calcul des tendances dynamiques.
    26 c
    27 c Modif 04/93 F.Forget
    28 c=======================================================================
     17!=======================================================================
     18!
     19!  Auteur :  P. Le Van
     20!
     21!   Objet:
     22!   ------
     23!
     24!   Calcul des tendances dynamiques.
     25!
     26! Modif 04/93 F.Forget
     27!=======================================================================
    2928
    30 c-----------------------------------------------------------------------
    31 c   0. Declarations:
    32 c   ----------------
     29!-----------------------------------------------------------------------
     30!   0. Declarations:
     31!   ----------------
    3332
    3433#include "dimensions.h"
     
    3837#include "comgeom.h"
    3938
    40 c   Arguments:
    41 c   ----------
     39!   Arguments:
     40!   ----------
    4241
    43       LOGICAL conser
     42      LOGICAL,INTENT(IN) :: conser ! triggers printing some diagnostics ! not used
     43      INTEGER,INTENT(IN) :: itau ! time step index ! not used
     44      REAL,INTENT(IN) :: vcov(ijb_v:ije_v,llm) ! covariant meridional wind
     45      REAL,INTENT(IN) :: ucov(ijb_u:ije_u,llm) ! covariant zonal wind
     46      REAL,INTENT(IN) :: teta(ijb_u:ije_u,llm) ! potential temperature
     47      REAL,INTENT(IN) :: ps(ijb_u:ije_u) ! surface pressure
     48      REAL,INTENT(IN) :: phis(ijb_u:ije_u) ! geopotential at the surface
     49      REAL,INTENT(IN) :: pk(iip1,jjb_u:jje_u,llm) ! Exner at mid-layer
     50      REAL,INTENT(IN) :: pkf(ijb_u:ije_u,llm) ! filtered Exner
     51      REAL,INTENT(IN) :: phi(ijb_u:ije_u,llm) ! geopotential
     52      REAL,INTENT(OUT) :: masse(ijb_u:ije_u,llm) ! air mass
     53      REAL,INTENT(OUT) :: dv(ijb_v:ije_v,llm) ! tendency on vcov
     54      REAL,INTENT(OUT) :: du(ijb_u:ije_u,llm) ! tendency on ucov
     55      REAL,INTENT(OUT) :: dteta(ijb_u:ije_u,llm) ! tenddency on teta
     56      REAL,INTENT(OUT) :: dp(ijb_u:ije_u) ! tendency on ps
     57      REAL,INTENT(OUT) :: w(ijb_u:ije_u,llm) ! vertical velocity
     58      REAL,INTENT(OUT) :: pbaru(ijb_u:ije_u,llm) ! mass flux in the zonal direction
     59      REAL,INTENT(OUT) :: pbarv(ijb_v:ije_v,llm) ! mass flux in the meridional direction
     60      REAL,INTENT(IN) :: time ! current time
    4461
    45       INTEGER itau
    46       REAL vcov(ijb_v:ije_v,llm),ucov(ijb_u:ije_u,llm)
    47       REAL teta(ijb_u:ije_u,llm)
    48       REAL ps(ijb_u:ije_u),phis(ijb_u:ije_u)
    49       REAL pk(iip1,jjb_u:jje_u,llm),pkf(ijb_u:ije_u,llm)
    50       REAL phi(ijb_u:ije_u,llm),masse(ijb_u:ije_u,llm)
    51       REAL dv(ijb_v:ije_v,llm),du(ijb_u:ije_u,llm)
    52       REAL dteta(ijb_u:ije_u,llm),dp(ijb_u:ije_u)
    53       REAL w(ijb_u:ije_u,llm)
    54       REAL pbaru(ijb_u:ije_u,llm),pbarv(ijb_v:ije_v,llm)
    55       REAL time
    56 
    57 c   Local:
    58 c   ------
     62!   Local:
     63!   ------
    5964
    6065      INTEGER   ij,l,ijb,ije,ierr
    6166
    6267
    63 c-----------------------------------------------------------------------
    64 c   Calcul des tendances dynamiques:
    65 c   --------------------------------
     68!-----------------------------------------------------------------------
     69!   Compute dynamical tendencies:
     70!--------------------------------
     71
     72      ! compute contravariant winds ucont() and vcont
    6673      CALL covcont_loc  ( llm    , ucov    , vcov , ucont, vcont     )
     74      ! compute pressure p()
    6775      CALL pression_loc ( ip1jmp1, ap      , bp   ,  ps  , p         )
    6876cym      CALL psextbar (   ps   , psexbarxy                          )
    6977c$OMP BARRIER
     78      ! compute mass in each atmospheric mesh: masse()
    7079      CALL massdair_loc (    p   , masse                             )
     80      ! compute X and Y-averages of mass, massebx() and masseby()
    7181      CALL massbar_loc  (   masse, massebx , masseby                 )
     82      ! compute XY-average of mass, massebxy()
    7283      call massbarxy_loc(   masse, massebxy                          )
     84      ! compute mass fluxes pbaru() and pbarv()
    7385      CALL flumass_loc  ( massebx, masseby,vcont,ucont,pbaru,pbarv   )
     86      ! compute dteta() , horizontal converging flux of theta
    7487      CALL dteta1_loc   (   teta , pbaru   , pbarv, dteta            )
     88      ! compute convm(), horizontal converging flux of mass
    7589      CALL convmas1_loc  (   pbaru, pbarv   , convm                  )
    7690c$OMP BARRIER     
     
    95109      ijb=ij_begin
    96110      ije=ij_end
    97            
     111      ! compute pressure variation due to mass convergence
    98112      DO ij =ijb, ije
    99113         dp( ij ) = convm( ij,1 ) / airesurg( ij )
     
    101115c$OMP END MASTER
    102116c$OMP BARRIER
     117     
     118      ! compute vertical velocity w()
    103119      CALL vitvert_loc ( convm  , w                                )
     120      ! compute potential vorticity vorpot()
    104121      CALL tourpot_loc ( vcov   , ucov  , massebxy  , vorpot       )
     122      ! compute rotation induced du() and dv()
    105123      CALL dudv1_loc   ( vorpot , pbaru , pbarv     , du     , dv  )
    106124
     
    111129      call WriteField_v('dv',dv)
    112130#endif     
     131     
     132      ! compute kinetic energy ecin()
    113133      CALL enercin_loc ( vcov   , ucov  , vcont   , ucont  , ecin  )
     134      ! compute Bernouilli function bern()
    114135      CALL bernoui_loc ( ip1jmp1, llm   , phi       , ecin   , bern)
     136      ! compute and add du() and dv() contributions from Bernouilli and pressure
    115137      CALL dudv2_loc   ( teta   , pkf   , bern      , du     , dv  )
    116138
     
    137159c$OMP END DO
    138160
     161      ! compute vertical advection contributions to du(), dv() and dteta()
    139162      CALL advect_new_loc(ang,vcov,teta,w,massebx,masseby,du,dv,dteta)
    140163
     
    158181c$OMP END DO NOWAIT     
    159182
     183! Ehouarn: NB: output of control variables not implemented...
    160184
    161185      RETURN
  • 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     
  • LMDZ5/trunk/libf/dyn3dmem/call_calfis_mod.F90

    r1907 r1987  
    9191    INCLUDE "iniprint.h"
    9292
    93     REAL    :: clesphy0( : )   
    94     INTEGER :: itau
    95     LOGICAL :: lafin
    96     REAL :: ucov_dyn(ijb_u:ije_u,llm)
    97     REAL :: vcov_dyn(ijb_v:ije_v,llm)
    98     REAL :: teta_dyn(ijb_u:ije_u,llm)
    99     REAL :: masse_dyn(ijb_u:ije_u,llm)
    100     REAL :: ps_dyn(ijb_u:ije_u)
    101     REAL :: phis_dyn(ijb_u:ije_u)
    102     REAL :: q_dyn(ijb_u:ije_u,llm,nqtot)
    103     REAL :: flxw_dyn(ijb_u:ije_u,llm)
     93    INTEGER,INTENT(IN) :: itau ! (time) iteration step number
     94    LOGICAL,INTENT(IN) :: lafin ! .true. if final time step
     95    REAL,INTENT(IN) :: clesphy0( : ) ! not used   
     96    REAL,INTENT(INOUT) :: ucov_dyn(ijb_u:ije_u,llm) ! covariant zonal wind
     97    REAL,INTENT(INOUT) :: vcov_dyn(ijb_v:ije_v,llm) ! covariant meridional wind
     98    REAL,INTENT(INOUT) :: teta_dyn(ijb_u:ije_u,llm) ! potential temperature
     99    REAL,INTENT(INOUT) :: masse_dyn(ijb_u:ije_u,llm) ! air mass
     100    REAL,INTENT(INOUT) :: ps_dyn(ijb_u:ije_u) ! surface pressure
     101    REAL,INTENT(INOUT) :: phis_dyn(ijb_u:ije_u) ! surface geopotential
     102    REAL,INTENT(INOUT) :: q_dyn(ijb_u:ije_u,llm,nqtot) ! advected tracers
     103    REAL,INTENT(INOUT) :: flxw_dyn(ijb_u:ije_u,llm) ! vertical mass flux
    104104
    105105    REAL :: dufi_tmp(iip1,llm)   
     
    134134  !$OMP MASTER
    135135    CALL suspend_timer(timer_caldyn)
    136     WRITE(lunout,*) 'leapfrog_p: Entree dans la physique : Iteration No ',itau
     136    IF (prt_level >= 10) THEN
     137      WRITE(lunout,*) 'leapfrog_p: Entree dans la physique : Iteration No ',itau
     138    ENDIF
    137139  !$OMP END MASTER
    138140   
     
    335337                    ucov, vcov, teta , q   ,ps ,            &
    336338                    dufi, dvfi, dtetafi , dqfi ,dpfi  )
     339    ! since addfi updates ps(), also update p(), masse() and pk()
     340    CALL pression_loc(ip1jmp1,ap,bp,ps,p)
     341!$OMP BARRIER
     342    CALL massdair_loc(p,masse)
     343!$OMP BARRIER
     344    if (pressure_exner) then
     345      CALL exner_hyb_loc(ijnb_u,ps,p,alpha,beta,pks,pk,pkf)
     346    else
     347      CALL exner_milieu_loc(ijnb_u,ps,p,beta,pks,pk,pkf)
     348    endif
     349!$OMP BARRIER
    337350
    338351#ifdef DEBUG_IO   
  • LMDZ5/trunk/libf/dyn3dmem/call_dissip_mod.F90

    r1907 r1987  
    8787  IMPLICIT NONE
    8888    INCLUDE 'comgeom.h'
    89     REAL :: ucov_dyn(ijb_u:ije_u,llm)
    90     REAL :: vcov_dyn(ijb_v:ije_v,llm)
    91     REAL :: teta_dyn(ijb_u:ije_u,llm)
    92     REAL :: p_dyn(ijb_u:ije_u,llmp1 )
    93     REAL :: pk_dyn(ijb_u:ije_u,llm)
    94     REAL :: ps_dyn(ijb_u:ije_u)
     89    REAL,INTENT(INOUT) :: ucov_dyn(ijb_u:ije_u,llm) ! covariant zonal wind
     90    REAL,INTENT(INOUT) :: vcov_dyn(ijb_v:ije_v,llm) ! covariant meridional wind
     91    REAL,INTENT(INOUT) :: teta_dyn(ijb_u:ije_u,llm) ! covariant meridional wind
     92    REAL,INTENT(INOUT) :: p_dyn(ijb_u:ije_u,llmp1 ) ! pressure at interlayer
     93    REAL,INTENT(INOUT) :: pk_dyn(ijb_u:ije_u,llm) ! Exner at midlayer
     94    REAL,INTENT(INOUT) :: ps_dyn(ijb_u:ije_u) ! surface pressure
    9595    REAL :: tppn(iim),tpps(iim)
    9696    REAL :: tpn,tps
  • LMDZ5/trunk/libf/dyn3dmem/dissip_loc.F

    r1907 r1987  
     1!
     2! $Id: $
     3!
    14      SUBROUTINE dissip_loc( vcov,ucov,teta,p, dv,du,dh )
    25c
    36      USE parallel_lmdz
    47      USE write_field_loc
    5       USE dissip_mod
     8      USE dissip_mod, ONLY: dissip_allocate
    69      IMPLICIT NONE
    710
     
    3538c   ----------
    3639
    37       REAL vcov(ijb_v:ije_v,llm),ucov(ijb_u:ije_u,llm)
    38       REAL teta(ijb_u:ije_u,llm)
    39       REAL  p( ijb_u:ije_u,llmp1 )
    40       REAL dv(ijb_v:ije_v,llm),du(ijb_u:ije_u,llm),dh(ijb_u:ije_u,llm)
     40      REAL,INTENT(IN) :: vcov(ijb_v:ije_v,llm) ! covariant meridional wind
     41      REAL,INTENT(IN) :: ucov(ijb_u:ije_u,llm) ! covariant zonal wind
     42      REAL,INTENT(IN) :: teta(ijb_u:ije_u,llm) ! potential temperature
     43      REAL,INTENT(IN) :: p(ijb_u:ije_u,llmp1) ! interlayer pressure
     44      ! tendencies (.../s) on covariant winds and potential temperature
     45      REAL,INTENT(OUT) :: dv(ijb_v:ije_v,llm)
     46      REAL,INTENT(OUT) :: du(ijb_u:ije_u,llm)
     47      REAL,INTENT(OUT) :: dh(ijb_u:ije_u,llm)
    4148
    4249c   Local:
  • LMDZ5/trunk/libf/dyn3dmem/leapfrog_loc.F

    r1907 r1987  
    8080!      include "mpif.h"
    8181     
    82       INTEGER         longcles
    83       PARAMETER     ( longcles = 20 )
    84       REAL  clesphy0( longcles )
     82      INTEGER,PARAMETER :: longcles = 20
     83      REAL,INTENT(IN) :: clesphy0( longcles ) ! not used
     84      REAL,INTENT(IN) :: time_0 ! not used
     85
     86c   dynamical variables:
     87      REAL,INTENT(IN) :: ucov0(ijb_u:ije_u,llm)    ! zonal covariant wind
     88      REAL,INTENT(IN) :: vcov0(ijb_v:ije_v,llm)    ! meridional covariant wind
     89      REAL,INTENT(IN) :: teta0(ijb_u:ije_u,llm)    ! potential temperature
     90      REAL,INTENT(IN) :: q0(ijb_u:ije_u,llm,nqtot) ! advected tracers
     91      REAL,INTENT(IN) :: ps0(ijb_u:ije_u)          ! surface pressure (Pa)
     92      REAL,INTENT(IN) :: masse0(ijb_u:ije_u,llm)   ! air mass
     93      REAL,INTENT(IN) :: phis0(ijb_u:ije_u)        ! geopotentiat at the surface
    8594
    8695      real zqmin,zqmax
    87 
    88 c   variables dynamiques
    89       REAL :: vcov0(ijb_v:ije_v,llm),ucov0(ijb_u:ije_u,llm) ! vents covariants
    90       REAL :: teta0(ijb_u:ije_u,llm)                 ! temperature potentielle
    91       REAL :: q0(ijb_u:ije_u,llm,nqtot)              ! champs advectes
    92       REAL :: ps0(ijb_u:ije_u)                       ! pression  au sol
    93       REAL :: masse0(ijb_u:ije_u,llm)                ! masse d'air
    94       REAL :: phis0(ijb_u:ije_u)                     ! geopotentiel au sol
    9596
    9697!      REAL,SAVE,ALLOCATABLE :: p (:,:  )               ! pression aux interfac.des couches
     
    133134      REAL       time
    134135
    135       REAL  SSUM
    136       REAL time_0
     136      REAL  SSUM
    137137!      REAL,SAVE,ALLOCATABLE :: finvmaold(:,:)
    138138
     
    670670     
    671671      IF( forward. OR . leapf )  THEN
    672  
    673  
     672! Ehouarn: NB: fields sent to advtrac are those at the beginning of the time step
    674673         CALL caladvtrac_loc(q,pbaru,pbarv,
    675674     *        p, masse, dq,  teta,
     
    680679!      enddo
    681680
    682 c
     681! Ehouarn: Storage of mass flux for off-line tracers... not implemented...
     682
    683683      ENDIF ! of IF( forward. OR . leapf )
    684684
     
    11401140        endif
    11411141c$OMP BARRIER
     1142        CALL massdair_loc(p,masse)
     1143c$OMP BARRIER
    11421144
    11431145cc$OMP END PARALLEL
  • LMDZ5/trunk/libf/dyn3dmem/leapfrog_mod.F90

    r1907 r1987  
    11MODULE leapfrog_mod
    22
    3   REAL,POINTER,SAVE :: ucov(:,:)
    4   REAL,POINTER,SAVE :: vcov(:,:)
    5   REAL,POINTER,SAVE :: teta(:,:)
    6   REAL,POINTER,SAVE :: ps(:)
    7   REAL,POINTER,SAVE :: masse(:,:)
    8   REAL,POINTER,SAVE :: phis(:)
    9   REAL,POINTER,SAVE :: q(:,:,:)
    10   REAL,POINTER,SAVE :: p(:,:)
    11   REAL,POINTER,SAVE :: pks(:)
    12   REAL,POINTER,SAVE :: pk(:,:)
    13   REAL,POINTER,SAVE :: pkf(:,:)
    14   REAL,POINTER,SAVE :: phi(:,:)
    15   REAL,POINTER,SAVE :: w(:,:)
     3  REAL,POINTER,SAVE :: ucov(:,:) ! zonal covariant wind
     4  REAL,POINTER,SAVE :: vcov(:,:) ! meridional covariant wind
     5  REAL,POINTER,SAVE :: teta(:,:) ! potential temperature
     6  REAL,POINTER,SAVE :: ps(:) ! surface pressure
     7  REAL,POINTER,SAVE :: masse(:,:) ! air mass
     8  REAL,POINTER,SAVE :: phis(:) ! geopotential at the surface
     9  REAL,POINTER,SAVE :: q(:,:,:) ! advected tracers
     10  REAL,POINTER,SAVE :: p(:,:) ! interlayer pressure
     11  REAL,POINTER,SAVE :: pks(:) ! Exner at the surface
     12  REAL,POINTER,SAVE :: pk(:,:) ! Exner at mid-layer
     13  REAL,POINTER,SAVE :: pkf(:,:) ! filtered Exner
     14  REAL,POINTER,SAVE :: phi(:,:) ! geopotential
     15  REAL,POINTER,SAVE :: w(:,:) ! vertical velocity
    1616  REAL,POINTER,SAVE :: pbaru(:,:)
    1717  REAL,POINTER,SAVE :: pbarv(:,:)
  • LMDZ5/trunk/libf/dyn3dmem/pression_loc.F

    r1907 r1987  
    11      SUBROUTINE pression_loc( ngrid, ap, bp, ps, p )
    2       USE parallel_lmdz
     2      USE parallel_lmdz, ONLY: ij_begin, ij_end, ijb_u, ije_u,
     3     &                         pole_nord, pole_sud, omp_chunk
    34c
    45
     
    1617#include "paramet.h"
    1718c
    18       INTEGER ngrid
     19      INTEGER,INTENT(IN) :: ngrid ! not used
    1920      INTEGER l,ij
    2021 
    21       REAL ap( llmp1 ), bp( llmp1 ), ps( ijb_u:ije_u )
    22       REAL p( ijb_u:ije_u,llmp1 )
     22      REAL,INTENT(IN) :: ap( llmp1 ), bp( llmp1 ), ps( ijb_u:ije_u )
     23      REAL,INTENT(OUT) :: p( ijb_u:ije_u,llmp1 )
    2324     
    2425      INTEGER ijb,ije
Note: See TracChangeset for help on using the changeset viewer.