Changeset 2641 for LMDZ5/branches


Ignore:
Timestamp:
Sep 29, 2016, 11:26:46 PM (8 years ago)
Author:
Laurent Fairhead
Message:

Merged trunk changes r2593:2640 into testing branch

Location:
LMDZ5/branches/testing
Files:
17 deleted
222 edited
63 copied

Legend:

Unmodified
Added
Removed
  • LMDZ5/branches/testing

  • LMDZ5/branches/testing/DefLists/field_def_lmdz.xml

    r2594 r2641  
    214214        <field id="n2"    long_name="Nombre de panaches de type 2"    unit="-" />
    215215        <field id="s2"    long_name="Surface moyenne des panaches de type 2"    unit="m2" />
    216         <field id="proba_notrig"    long_name="Probabilité de non-déclenchement"    unit="-" />
    217         <field id="random_notrig"    long_name="Tirage aléatoire de non-déclenchement"    unit="-" />
     216        <field id="proba_notrig"    long_name="Probabilite de non-declenchement"    unit="-" />
     217        <field id="random_notrig"    long_name="Tirage aleatoire de non-declenchement"    unit="-" />
    218218        <field id="ale_bl_stat"    long_name="ALE_BL_STAT"    unit="m2/s2" />
    219219        <field id="ale_bl_trig"    long_name="ALE_BL_STAT + Condition P>Pseuil"    unit="m2/s2" />
  • LMDZ5/branches/testing/bld.cfg

    r2408 r2641  
    2828src::sisvat  %SISVAT
    2929src::rrtm    %RRTM
     30src::dust    %DUST
    3031src::grid    %SRC_PATH/grid
    3132src::filtrez %FILTRE
  • LMDZ5/branches/testing/libf/dyn3d/addfi.F

    r1999 r2641  
    4646c    ------------------
    4747c
    48 #include "dimensions.h"
    49 #include "paramet.h"
    50 #include "comconst.h"
    51 #include "comgeom.h"
    52 #include "serre.h"
     48      include "dimensions.h"
     49      include "paramet.h"
     50      include "comgeom.h"
    5351c
    5452c    Arguments :
  • LMDZ5/branches/testing/libf/dyn3d/advect.F

    r1910 r2641  
    44      SUBROUTINE advect(ucov,vcov,teta,w,massebx,masseby,du,dv,dteta)
    55
     6      USE comconst_mod, ONLY: daysec
     7      USE logic_mod, ONLY: conser
     8      USE ener_mod, ONLY: gtot
     9     
    610      IMPLICIT NONE
    711c=======================================================================
     
    2428c   -------------
    2529
    26 #include "dimensions.h"
    27 #include "paramet.h"
    28 #include "comconst.h"
    29 #include "comvert.h"
    30 #include "comgeom.h"
    31 #include "logic.h"
    32 #include "ener.h"
     30      include "dimensions.h"
     31      include "paramet.h"
     32      include "comgeom.h"
    3333
    3434c   Arguments:
  • LMDZ5/branches/testing/libf/dyn3d/advtrac.F90

    r2298 r2641  
    1111  USE infotrac, ONLY: nqtot, iadv,nqperes,ok_iso_verif
    1212  USE control_mod, ONLY: iapp_tracvl, day_step
    13 
     13  USE comconst_mod, ONLY: dtvr
    1414
    1515  IMPLICIT NONE
     
    1717  include "dimensions.h"
    1818  include "paramet.h"
    19   include "comconst.h"
    20   include "comvert.h"
    2119  include "comdissip.h"
    2220  include "comgeom2.h"
    23   include "logic.h"
    24   include "temps.h"
    25   include "ener.h"
    2621  include "description.h"
    2722  include "iniprint.h"
  • LMDZ5/branches/testing/libf/dyn3d/bilan_dyn.F

    r1910 r2641  
    1313      USE IOIPSL
    1414#endif
     15      USE comconst_mod, ONLY: pi, cpp
     16      USE comvert_mod, ONLY: presnivs
     17      USE temps_mod, ONLY: annee_ref, day_ref, itau_dyn
    1518
    1619      IMPLICIT NONE
    1720
    18 #include "dimensions.h"
    19 #include "paramet.h"
    20 #include "comconst.h"
    21 #include "comvert.h"
    22 #include "comgeom2.h"
    23 #include "temps.h"
    24 #include "iniprint.h"
     21      include "dimensions.h"
     22      include "paramet.h"
     23      include "comgeom2.h"
     24      include "iniprint.h"
    2525
    2626c====================================================================
  • LMDZ5/branches/testing/libf/dyn3d/caladvtrac.F

    r2298 r2641  
    1010      USE infotrac, ONLY : nqtot
    1111      USE control_mod, ONLY : iapp_tracvl,planet_type
     12      USE comconst_mod, ONLY: dtvr
    1213 
    1314      IMPLICIT NONE
     
    2324
    2425
    25 #include "dimensions.h"
    26 #include "paramet.h"
    27 #include "comconst.h"
     26      include "dimensions.h"
     27      include "paramet.h"
    2828
    2929c   Arguments:
  • LMDZ5/branches/testing/libf/dyn3d/caldyn.F

    r1999 r2641  
    66     $  phi,conser,du,dv,dteta,dp,w,pbaru,pbarv,time )
    77
     8     
     9      USE comvert_mod, ONLY: ap, bp
     10     
    811      IMPLICIT NONE
    912
     
    2427!   ----------------
    2528
    26 #include "dimensions.h"
    27 #include "paramet.h"
    28 #include "comconst.h"
    29 #include "comvert.h"
    30 #include "comgeom.h"
     29      include "dimensions.h"
     30      include "paramet.h"
     31      include "comgeom.h"
    3132
    3233!   Arguments:
  • LMDZ5/branches/testing/libf/dyn3d/conf_gcm.F90

    r2471 r2641  
    1313  USE infotrac, ONLY : type_trac
    1414  use assert_m, only: assert
     15  USE comconst_mod, ONLY: dissip_deltaz, dissip_factz, dissip_zref, &
     16                          iflag_top_bound, mode_top_bound, tau_top_bound, &
     17                          ngroup
     18  USE logic_mod, ONLY: fxyhypb, iflag_phys, ok_etat0, ok_gradsfile, &
     19                       ok_guide, ok_limit, ok_strato, purmats, read_start, &
     20                       ysinus
     21  USE serre_mod, ONLY: clon,clat,grossismx,grossismy,dzoomx,dzoomy, &
     22                       alphax,alphay,taux,tauy
     23  USE temps_mod, ONLY: calend
    1524
    1625  IMPLICIT NONE
     
    3140  include "dimensions.h"
    3241  include "paramet.h"
    33   include "logic.h"
    34   include "serre.h"
    3542  include "comdissnew.h"
    36   include "temps.h"
    37   include "comconst.h"
    3843  include "iniprint.h"
    3944
     
    4146  !   ------
    4247
    43   CHARACTER ch1*72,ch2*72,ch3*72,ch4*12
    4448  REAL clonn,clatt,grossismxx,grossismyy
    4549  REAL dzoomxx,dzoomyy, tauxx,tauyy
    4650  LOGICAL  fxyhypbb, ysinuss
    47   INTEGER i
    4851
    4952  !  -------------------------------------------------------------------
  • LMDZ5/branches/testing/libf/dyn3d/dissip.F

    r1999 r2641  
    44      SUBROUTINE dissip( vcov,ucov,teta,p, dv,du,dh )
    55c
     6      USE comconst_mod, ONLY: dtdiss
     7     
    68      IMPLICIT NONE
    79
     
    2527c   -------------
    2628
    27 #include "dimensions.h"
    28 #include "paramet.h"
    29 #include "comconst.h"
    30 #include "comgeom.h"
    31 #include "comdissnew.h"
    32 #include "comdissipn.h"
     29      include "dimensions.h"
     30      include "paramet.h"
     31      include "comgeom.h"
     32      include "comdissnew.h"
     33      include "comdissipn.h"
    3334
    3435c   Arguments:
  • LMDZ5/branches/testing/libf/dyn3d/dteta1.F

    r1910 r2641  
    2121
    2222
    23 #include "dimensions.h"
    24 #include "paramet.h"
    25 #include "logic.h"
     23      include "dimensions.h"
     24      include "paramet.h"
    2625
    2726      REAL teta( ip1jmp1,llm ),pbaru( ip1jmp1,llm ),pbarv( ip1jm,llm)
  • LMDZ5/branches/testing/libf/dyn3d/dudv2.F

    r1910 r2641  
    2626c=======================================================================
    2727c
    28 #include "dimensions.h"
    29 #include "paramet.h"
    30 #include "comvert.h"
     28      include "dimensions.h"
     29      include "paramet.h"
    3130
    3231      REAL teta( ip1jmp1,llm ),pkf( ip1jmp1,llm ) ,bern( ip1jmp1,llm ),
  • LMDZ5/branches/testing/libf/dyn3d/dynetat0.f90

    r2408 r2641  
    1111  USE control_mod, ONLY: planet_type
    1212  USE assert_eq_m, ONLY: assert_eq
     13  USE comvert_mod, ONLY: pa,preff
     14  USE comconst_mod, ONLY: cpp, daysec, dtvr, g, im, jm, kappa, lllm, omeg, rad
     15  USE logic_mod, ONLY: fxyhypb, ysinus
     16  USE serre_mod, ONLY: clon, clat, grossismx, grossismy
     17  USE temps_mod, ONLY: annee_ref, day_ini, day_ref, itau_dyn, start_time
     18  USE ener_mod, ONLY: etot0,ptot0,ztot0,stot0,ang0
     19
    1320  IMPLICIT NONE
    1421  include "dimensions.h"
    1522  include "paramet.h"
    16   include "temps.h"
    17   include "comconst.h"
    18   include "comvert.h"
    1923  include "comgeom2.h"
    20   include "ener.h"
    2124  include "description.h"
    22   include "serre.h"
    23   include "logic.h"
    2425  include "iniprint.h"
    2526!===============================================================================
  • LMDZ5/branches/testing/libf/dyn3d/dynredem.F90

    r2408 r2641  
    1111                    NF90_CLOSE,  NF90_PUT_ATT, NF90_UNLIMITED, NF90_CLOBBER
    1212  USE dynredem_mod, ONLY: cre_var, put_var1, put_var2, err, modname, fil
     13  USE comvert_mod, ONLY: ap,bp,aps,bps,presnivs,pseudoalt,pa,preff, &
     14                              nivsig,nivsigs
     15  USE comconst_mod, ONLY: cpp, daysec, dtvr, g, kappa, omeg, rad
     16  USE logic_mod, ONLY: fxyhypb, ysinus
     17  USE serre_mod, ONLY: clon,clat,grossismx,grossismy,dzoomx,dzoomy, &
     18                              taux,tauy
     19  USE temps_mod, ONLY: annee_ref, day_ref, itau_dyn, itaufin, start_time
     20  USE ener_mod, ONLY: etot0,ptot0,ztot0,stot0,ang0
     21 
    1322  IMPLICIT NONE
    1423  include "dimensions.h"
    1524  include "paramet.h"
    16   include "comconst.h"
    17   include "comvert.h"
    1825  include "comgeom2.h"
    19   include "temps.h"
    20   include "ener.h"
    21   include "logic.h"
    2226  include "description.h"
    23   include "serre.h"
    2427  include "iniprint.h"
    2528!===============================================================================
     
    168171  USE dynredem_mod, ONLY: dynredem_write_u, dynredem_write_v, dynredem_read_u, &
    169172                          err, modname, fil, msg
     173  USE temps_mod, ONLY: itau_dyn, itaufin
     174 
    170175  IMPLICIT NONE
    171176  include "dimensions.h"
    172177  include "paramet.h"
    173178  include "description.h"
    174   include "comvert.h"
    175179  include "comgeom.h"
    176   include "temps.h"
    177180  include "iniprint.h"
    178181!===============================================================================
  • LMDZ5/branches/testing/libf/dyn3d/fluxstokenc.F

    r2298 r2641  
    1616      IMPLICIT NONE
    1717c
    18 #include "dimensions.h"
    19 #include "paramet.h"
    20 #include "comconst.h"
    21 #include "comvert.h"
    22 #include "comgeom.h"
    23 #include "tracstoke.h"
    24 #include "temps.h"
    25 #include "iniprint.h"
     18      include "dimensions.h"
     19      include "paramet.h"
     20      include "comgeom.h"
     21      include "tracstoke.h"
     22      include "iniprint.h"
    2623
    2724      REAL time_step,t_wrt, t_ops
     
    3633
    3734      REAL pbarvst(iip1,jjp1,llm),zistdyn
    38         real dtcum
     35        real dtcum
    3936
    4037      INTEGER iadvtr,ndex(1)
     
    6057      if(first) then
    6158
    62         CALL initfluxsto( 'fluxstoke',
     59        CALL initfluxsto( 'fluxstoke',
    6360     .  time_step,istdyn* time_step,istdyn* time_step,
    6461     .  fluxid,fluxvid,fluxdid)
    65        
    66         ndex(1) = 0
     62       
     63        ndex(1) = 0
    6764        call histwrite(fluxid, 'phis', 1, phis, iip1*jjp1, ndex)
    6865        call histwrite(fluxid, 'aire', 1, aire, iip1*jjp1, ndex)
    69        
    70         ndex(1) = 0
     66       
     67        ndex(1) = 0
    7168        nscal = 1
    7269        tst(1) = time_step
     
    7673        istp(1)= istphy
    7774        call histwrite(fluxdid, 'istphy', 1, istp, nscal, ndex)
    78        
    79         first = .false.
     75       
     76        first = .false.
    8077
    8178      endif
     
    141138
    142139         iadvtr=0
    143         write(lunout,*)'ITAU auquel on stoke les fluxmasses',itau
    144        
    145         call histwrite(fluxid, 'masse', itau, massem,
     140        write(lunout,*)'ITAU auquel on stoke les fluxmasses',itau
     141       
     142        call histwrite(fluxid, 'masse', itau, massem,
    146143     .               iip1*jjp1*llm, ndex)
    147        
    148         call histwrite(fluxid, 'pbaru', itau, pbarug,
     144       
     145        call histwrite(fluxid, 'pbaru', itau, pbarug,
    149146     .               iip1*jjp1*llm, ndex)
    150        
    151         call histwrite(fluxvid, 'pbarv', itau, pbarvg,
     147       
     148        call histwrite(fluxvid, 'pbarv', itau, pbarvg,
    152149     .               iip1*jjm*llm, ndex)
    153        
     150       
    154151        call histwrite(fluxid, 'w' ,itau, wg,
    155152     .             iip1*jjp1*llm, ndex)
    156        
    157         call histwrite(fluxid, 'teta' ,itau, tetac,
     153       
     154        call histwrite(fluxid, 'teta' ,itau, tetac,
    158155     .             iip1*jjp1*llm, ndex)
    159        
    160         call histwrite(fluxid, 'phi' ,itau, phic,
     156       
     157        call histwrite(fluxid, 'phi' ,itau, phic,
    161158     .             iip1*jjp1*llm, ndex)
    162        
     159       
    163160C
    164161
  • LMDZ5/branches/testing/libf/dyn3d/friction.F

    r1910 r2641  
    1212      USE ioipsl_getincom
    1313#endif
    14      
     14      USE comconst_mod, ONLY: pi
    1515      IMPLICIT NONE
    1616
     
    2727!=======================================================================
    2828
    29 #include "dimensions.h"
    30 #include "paramet.h"
    31 #include "comgeom2.h"
    32 #include "comconst.h"
    33 #include "iniprint.h"
    34 #include "academic.h"
     29      include "dimensions.h"
     30      include "paramet.h"
     31      include "comgeom2.h"
     32      include "iniprint.h"
     33      include "academic.h"
    3534
    3635! arguments:
  • LMDZ5/branches/testing/libf/dyn3d/gcm.F90

    r2471 r2641  
    2323  USE control_mod
    2424  USE mod_const_mpi, ONLY: COMM_LMDZ
    25 
     25  USE temps_mod, ONLY: calend,start_time,annee_ref,day_ref, &
     26                     itau_dyn,itau_phy,day_ini,jD_ref,jH_ref,day_end
     27  USE comconst_mod, ONLY: cpp, daysec, dtphys, dtvr, g, r, rad
     28  USE logic_mod, ONLY: ecripar, iflag_phys, read_start
    2629
    2730!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    6871  include "dimensions.h"
    6972  include "paramet.h"
    70   include "comconst.h"
    7173  include "comdissnew.h"
    72   include "comvert.h"
    7374  include "comgeom.h"
    74   include "logic.h"
    75   include "temps.h"
    76 !!!!!!!!!!!include "control.h"
    77   include "ener.h"
    7875  include "description.h"
    79   include "serre.h"
    80   !include "com_io_dyn.h"
    8176  include "iniprint.h"
    8277  include "tracstoke.h"
     
    8984  REAL, ALLOCATABLE, DIMENSION(:,:,:):: q! champs advectes
    9085  REAL ps(ip1jmp1)                       ! pression  au sol
    91   REAL p (ip1jmp1,llmp1  )               ! pression aux interfac.des couches
     86!  REAL p (ip1jmp1,llmp1  )               ! pression aux interfac.des couches
    9287  REAL masse(ip1jmp1,llm)                ! masse d'air
    9388  REAL phis(ip1jmp1)                     ! geopotentiel au sol
    94   REAL phi(ip1jmp1,llm)                  ! geopotentiel
    95   REAL w(ip1jmp1,llm)                    ! vitesse verticale
     89!  REAL phi(ip1jmp1,llm)                  ! geopotentiel
     90!  REAL w(ip1jmp1,llm)                    ! vitesse verticale
    9691
    9792  ! variables dynamiques intermediaire pour le transport
     
    10398
    10499  LOGICAL lafin
    105   INTEGER ij,iq,l,i,j
    106100
    107101
    108102  real time_step, t_wrt, t_ops
    109 
    110   LOGICAL first
    111103
    112104  !      LOGICAL call_iniphys
     
    118110  !     tansformation d'energie cinetique en energie thermique
    119111  !     cree par la dissipation
    120   REAL dhecdt(ip1jmp1,llm)
     112!  REAL dhecdt(ip1jmp1,llm)
    121113  !      REAL vcont(ip1jm,llm),ucont(ip1jmp1,llm)
    122114  !      REAL      d_h_vcol, d_qt, d_qw, d_ql, d_ec
    123   CHARACTER (len=15) :: ztit
     115!  CHARACTER (len=15) :: ztit
    124116  !-jld
    125117
  • LMDZ5/branches/testing/libf/dyn3d/groupe.F

    r2471 r2641  
    33!
    44      subroutine groupe(pext,pbaru,pbarv,pbarum,pbarvm,wm)
     5     
     6      use comconst_mod, only: ngroup
     7     
    58      implicit none
    69
     
    1619c   pas besoin de w en entree.
    1720
    18 #include "dimensions.h"
    19 #include "paramet.h"
    20 #include "comconst.h"
    21 #include "comgeom2.h"
    22 #include "comvert.h"
     21      include "dimensions.h"
     22      include "paramet.h"
     23      include "comgeom2.h"
    2324
    2425!     integer ngroup
  • LMDZ5/branches/testing/libf/dyn3d/groupeun.F

    r2471 r2641  
    33!
    44      SUBROUTINE groupeun(jjmax,llmax,q)
     5     
     6      USE comconst_mod, ONLY: ngroup
     7     
    58      IMPLICIT NONE
    69
    7 #include "dimensions.h"
    8 #include "paramet.h"
    9 #include "comconst.h"
    10 #include "comgeom2.h"
     10      include "dimensions.h"
     11      include "paramet.h"
     12      include "comgeom2.h"
    1113
    1214      INTEGER jjmax,llmax
     
    135137     
    136138      SUBROUTINE INIT_GROUPEUN(airen_tab, aires_tab)
     139     
     140      USE comconst_mod, ONLY: ngroup
     141     
    137142      IMPLICIT NONE
    138143
    139 #include "dimensions.h"
    140 #include "paramet.h"
    141 #include "comconst.h"
    142 #include "comgeom2.h"
     144      include "dimensions.h"
     145      include "paramet.h"
     146      include "comgeom2.h"
    143147
    144148!     INTEGER ngroup
  • LMDZ5/branches/testing/libf/dyn3d/guide_mod.F90

    r2298 r2641  
    6363  SUBROUTINE guide_init
    6464
    65     USE control_mod
     65    USE control_mod, ONLY: day_step
     66    USE serre_mod, ONLY: grossismx
    6667
    6768    IMPLICIT NONE
     
    7071    INCLUDE "paramet.h"
    7172    INCLUDE "netcdf.inc"
    72 
    73     ! For grossismx:
    74     include "serre.h"
    7573
    7674    INTEGER                :: error,ncidpl,rid,rcod
     
    314312  SUBROUTINE guide_main(itau,ucov,vcov,teta,q,masse,ps)
    315313
    316     USE control_mod
     314    USE control_mod, ONLY: day_step, iperiod
     315    USE comconst_mod, ONLY: dtvr, daysec
     316    USE comvert_mod, ONLY: ap, bp, preff, presnivs
    317317 
    318318    IMPLICIT NONE
     
    320320    INCLUDE "dimensions.h"
    321321    INCLUDE "paramet.h"
    322     INCLUDE "comconst.h"
    323     INCLUDE "comvert.h"
    324322
    325323    ! Variables entree
     
    542540  SUBROUTINE guide_zonave(typ,hsize,vsize,field)
    543541
     542    USE comconst_mod, ONLY: pi
     543   
    544544    IMPLICIT NONE
    545545
     
    547547    INCLUDE "paramet.h"
    548548    INCLUDE "comgeom.h"
    549     INCLUDE "comconst.h"
    550549   
    551550    ! input/output variables
     
    607606  use exner_hyb_m, only: exner_hyb
    608607  use exner_milieu_m, only: exner_milieu
     608  use comconst_mod, only: kappa, cpp
     609  use comvert_mod, only: preff, pressure_exner, bp, ap
    609610  IMPLICIT NONE
    610611
    611612  include "dimensions.h"
    612613  include "paramet.h"
    613   include "comvert.h"
    614614  include "comgeom2.h"
    615   include "comconst.h"
    616615
    617616  REAL, DIMENSION (iip1,jjp1),     INTENT(IN) :: psi ! Psol gcm
     
    777776            do j=1,jjp1
    778777                IF (guide_teta) THEN
    779                     do i=1,iim
    780                         ij=(j-1)*iip1+i
    781                         tgui1(ij,l)=zu1(i,j,l)
    782                         tgui2(ij,l)=zu2(i,j,l)
    783                     enddo
     778                    do i=1,iim
     779                        ij=(j-1)*iip1+i
     780                        tgui1(ij,l)=zu1(i,j,l)
     781                        tgui2(ij,l)=zu2(i,j,l)
     782                    enddo
    784783                ELSE
    785                     do i=1,iim
    786                         ij=(j-1)*iip1+i
    787                         tgui1(ij,l)=zu1(i,j,l)*cpp/pk(i,j,l)
    788                         tgui2(ij,l)=zu2(i,j,l)*cpp/pk(i,j,l)
    789                     enddo
     784                    do i=1,iim
     785                        ij=(j-1)*iip1+i
     786                        tgui1(ij,l)=zu1(i,j,l)*cpp/pk(i,j,l)
     787                        tgui2(ij,l)=zu2(i,j,l)*cpp/pk(i,j,l)
     788                    enddo
    790789                ENDIF
    791790                tgui1(j*iip1,l)=tgui1((j-1)*iip1+1,l)   
     
    855854! Calcul des constantes de rappel alpha (=1/tau)
    856855
     856    use comconst_mod, only: pi
     857    use serre_mod, only: clon, clat, grossismx, grossismy
     858   
    857859    implicit none
    858860
    859861    include "dimensions.h"
    860862    include "paramet.h"
    861     include "comconst.h"
    862863    include "comgeom2.h"
    863     include "serre.h"
    864864
    865865! input arguments :
     
    15161516  SUBROUTINE guide_out(varname,hsize,vsize,field)
    15171517
     1518    USE comconst_mod, ONLY: pi
     1519    USE comvert_mod, ONLY: presnivs
     1520   
    15181521    IMPLICIT NONE
    15191522
     
    15221525    INCLUDE "netcdf.inc"
    15231526    INCLUDE "comgeom2.h"
    1524     INCLUDE "comconst.h"
    1525     INCLUDE "comvert.h"
    15261527   
    15271528    ! Variables entree
  • LMDZ5/branches/testing/libf/dyn3d/iniacademic.F90

    r2298 r2641  
    1616  use exner_hyb_m, only: exner_hyb
    1717  use exner_milieu_m, only: exner_milieu
     18  USE comconst_mod, ONLY: cpp, kappa, g, daysec, dtvr, pi, im, jm
     19  USE logic_mod, ONLY: iflag_phys, read_start
     20  USE comvert_mod, ONLY: ap, bp, preff, presnivs, pressure_exner
     21  USE temps_mod, ONLY: annee_ref, day_ini, day_ref
     22  USE ener_mod, ONLY: etot0,ptot0,ztot0,stot0,ang0
    1823
    1924  !   Author:    Frederic Hourdin      original: 15/01/93
     
    2833  include "dimensions.h"
    2934  include "paramet.h"
    30   include "comvert.h"
    31   include "comconst.h"
    3235  include "comgeom.h"
    3336  include "academic.h"
    34   include "ener.h"
    35   include "temps.h"
    3637  include "iniprint.h"
    37   include "logic.h"
    3838
    3939  !   Arguments:
  • LMDZ5/branches/testing/libf/dyn3d/integrd.F

    r2160 r2641  
    88
    99      use control_mod, only : planet_type
     10      use comconst_mod, only: pi
     11      USE logic_mod, ONLY: leapf
     12      use comvert_mod, only: ap, bp
     13      USE temps_mod, ONLY: dt
    1014
    1115      IMPLICIT NONE
     
    2731c   -------------
    2832
    29 #include "dimensions.h"
    30 #include "paramet.h"
    31 #include "comconst.h"
    32 #include "comgeom.h"
    33 #include "comvert.h"
    34 #include "logic.h"
    35 #include "temps.h"
    36 #include "serre.h"
    37 #include "iniprint.h"
     33      include "dimensions.h"
     34      include "paramet.h"
     35      include "comgeom.h"
     36      include "iniprint.h"
    3837
    3938c   Arguments:
  • LMDZ5/branches/testing/libf/dyn3d/leapfrog.F

    r2488 r2641  
    2020      use exner_hyb_m, only: exner_hyb
    2121      use exner_milieu_m, only: exner_milieu
     22      USE comvert_mod, ONLY: ap,bp,pressure_exner,presnivs
     23      USE comconst_mod, ONLY: cpp, dtphys, dtvr, pi, ihf
     24      USE logic_mod, ONLY: iflag_phys,ok_guide,forward,leapf,apphys,
     25     &                     statcl,conser,apdiss,purmats,ok_strato
     26      USE temps_mod, ONLY: jD_ref,jH_ref,itaufin,day_ini,day_ref,
     27     &                        start_time,dt
    2228
    2329      IMPLICIT NONE
     
    5460c   -------------
    5561
    56 #include "dimensions.h"
    57 #include "paramet.h"
    58 #include "comconst.h"
    59 #include "comdissnew.h"
    60 #include "comvert.h"
    61 #include "comgeom.h"
    62 #include "logic.h"
    63 #include "temps.h"
    64 #include "ener.h"
    65 #include "description.h"
    66 #include "serre.h"
    67 !#include "com_io_dyn.h"
    68 #include "iniprint.h"
    69 #include "academic.h"
     62      include "dimensions.h"
     63      include "paramet.h"
     64      include "comdissnew.h"
     65      include "comgeom.h"
     66      include "description.h"
     67      include "iniprint.h"
     68      include "academic.h"
    7069
    7170      REAL,INTENT(IN) :: time_0 ! not used
     
    714713            IF( MOD(itau,iecri).EQ.0) THEN
    715714             ! Ehouarn: output only during LF or Backward Matsuno
    716              if (leapf.or.(.not.leapf.and.(.not.forward))) then
     715             if (leapf.or.(.not.leapf.and.(.not.forward))) then
    717716              CALL geopot(ip1jmp1,teta,pk,pks,phis,phi)
    718717              unat=0.
     
    724723              if (ok_dyn_ins) then
    725724!               write(lunout,*) "leapfrog: call writehist, itau=",itau
    726                CALL writehist(itau,vcov,ucov,teta,phi,q,masse,ps,phis)
     725               CALL writehist(itau,vcov,ucov,teta,phi,q,masse,ps,phis)
    727726!               call WriteField('ucov',reshape(ucov,(/iip1,jmp1,llm/)))
    728727!               call WriteField('vcov',reshape(vcov,(/iip1,jjm,llm/)))
     
    854853!                write(lunout,*) "leapfrog: call writehist (b)",
    855854!     &                        itau,iecri
    856                 CALL writehist(itau,vcov,ucov,teta,phi,q,masse,ps,phis)
     855                CALL writehist(itau,vcov,ucov,teta,phi,q,masse,ps,phis)
    857856              endif ! of if (ok_dyn_ins)
    858857#endif
  • LMDZ5/branches/testing/libf/dyn3d/qminimum.F

    r2298 r2641  
    1010c             pour l'eau vapeur et l'eau liquide
    1111c
    12 #include "dimensions.h"
    13 #include "paramet.h"
    14 #include "comvert.h"
     12      include "dimensions.h"
     13      include "paramet.h"
    1514c
    1615      INTEGER nqtot
  • LMDZ5/branches/testing/libf/dyn3d/sw_case_williamson91_6.F

    r1910 r2641  
    2626c
    2727c=======================================================================
     28      USE comconst_mod, ONLY: cpp, omeg, rad
     29      USE comvert_mod, ONLY: ap, bp, preff
     30     
    2831      IMPLICIT NONE
    2932c-----------------------------------------------------------------------
     
    3134c   ---------------
    3235
    33 #include "dimensions.h"
    34 #include "paramet.h"
    35 #include "comvert.h"
    36 #include "comconst.h"
    37 #include "comgeom.h"
    38 #include "iniprint.h"
     36      include "dimensions.h"
     37      include "paramet.h"
     38      include "comgeom.h"
     39      include "iniprint.h"
    3940
    4041c   Arguments:
  • LMDZ5/branches/testing/libf/dyn3d/top_bound.F

    r1910 r2641  
    33!
    44      SUBROUTINE top_bound(vcov,ucov,teta,masse,dt)
     5     
     6      USE comconst_mod, ONLY: iflag_top_bound, mode_top_bound,
     7     &                        tau_top_bound
     8      USE comvert_mod, ONLY: presnivs, preff, scaleheight
     9     
    510      IMPLICIT NONE
    611c
    7 #include "dimensions.h"
    8 #include "paramet.h"
    9 #include "comconst.h"
    10 #include "comvert.h"
    11 #include "comgeom2.h"
     12      include "dimensions.h"
     13      include "paramet.h"
     14      include "comgeom2.h"
    1215
    1316
     
    3942! NB: top_bound sponge is only called from leapfrog if ok_strato=.true.
    4043
    41 ! sponge parameters: (loaded/set in conf_gcm.F ; stored in comconst.h)
     44! sponge parameters: (loaded/set in conf_gcm.F ; stored in comconst_mod)
    4245!    iflag_top_bound=0 for no sponge
    4346!    iflag_top_bound=1 for sponge over 4 topmost layers
  • LMDZ5/branches/testing/libf/dyn3d/vlsplt.F

    r2298 r2641  
    2121      IMPLICIT NONE
    2222c
    23 #include "dimensions.h"
    24 #include "paramet.h"
    25 #include "logic.h"
    26 #include "comvert.h"
    27 #include "comconst.h"
     23      include "dimensions.h"
     24      include "paramet.h"
    2825
    2926c
     
    157154      include "dimensions.h"
    158155      include "paramet.h"
    159       include "logic.h"
    160       include "comvert.h"
    161       include "comconst.h"
    162156      include "iniprint.h"
    163157c
     
    528522c
    529523c   --------------------------------------------------------------------
     524      USE comconst_mod, ONLY: pi
    530525      IMPLICIT NONE
    531526c
    532 #include "dimensions.h"
    533 #include "paramet.h"
    534 #include "logic.h"
    535 #include "comvert.h"
    536 #include "comconst.h"
    537 #include "comgeom.h"
     527      include "dimensions.h"
     528      include "paramet.h"
     529      include "comgeom.h"
    538530c
    539531c
     
    893885      IMPLICIT NONE
    894886c
    895 #include "dimensions.h"
    896 #include "paramet.h"
    897 #include "logic.h"
    898 #include "comvert.h"
    899 #include "comconst.h"
     887      include "dimensions.h"
     888      include "paramet.h"
    900889c
    901890c
  • LMDZ5/branches/testing/libf/dyn3d/vlspltqs.F

    r2298 r2641  
    2323c     pk exner au milieu des couches necessaire pour calculer Qsat
    2424c   --------------------------------------------------------------------
     25     
     26      USE comconst_mod, ONLY: cpp
     27     
    2528      IMPLICIT NONE
    2629c
    27 #include "dimensions.h"
    28 #include "paramet.h"
    29 #include "logic.h"
    30 #include "comvert.h"
    31 #include "comconst.h"
     30      include "dimensions.h"
     31      include "paramet.h"
    3232
    3333c
     
    192192      IMPLICIT NONE
    193193c
    194 #include "dimensions.h"
    195 #include "paramet.h"
    196 #include "logic.h"
    197 #include "comvert.h"
    198 #include "comconst.h"
     194      include "dimensions.h"
     195      include "paramet.h"
    199196c
    200197c
     
    559556c
    560557c   --------------------------------------------------------------------
     558     
     559      USE comconst_mod, ONLY: pi
     560     
    561561      IMPLICIT NONE
    562562c
    563 #include "dimensions.h"
    564 #include "paramet.h"
    565 #include "logic.h"
    566 #include "comvert.h"
    567 #include "comconst.h"
    568 #include "comgeom.h"
     563      include "dimensions.h"
     564      include "paramet.h"
     565      include "comgeom.h"
    569566c
    570567c
  • LMDZ5/branches/testing/libf/dyn3d_common/adaptdt.F

    r1999 r2641  
    55     c                   masse)
    66
    7       USE control_mod
     7      USE comconst_mod, ONLY: dtvr
    88      IMPLICIT NONE
    99
    10 #include "dimensions.h"
    11 c#include "paramr2.h"
    12 #include "paramet.h"
    13 #include "comconst.h"
    14 #include "comdissip.h"
    15 #include "comvert.h"
    16 #include "comgeom2.h"
    17 #include "logic.h"
    18 #include "temps.h"
    19 #include "ener.h"
    20 #include "description.h"
     10      include "dimensions.h"
     11      include "paramet.h"
     12      include "comdissip.h"
     13      include "comgeom2.h"
     14      include "description.h"
    2115
    2216c----------------------------------------------------------
  • LMDZ5/branches/testing/libf/dyn3d_common/advn.F

    r1999 r2641  
    1717      IMPLICIT NONE
    1818c
    19 #include "dimensions.h"
    20 #include "paramet.h"
    21 #include "logic.h"
    22 #include "comvert.h"
    23 #include "comconst.h"
    24 #include "comgeom.h"
    25 #include "iniprint.h"
     19      include "dimensions.h"
     20      include "paramet.h"
     21      include "comgeom.h"
     22      include "iniprint.h"
    2623
    2724c
     
    484481      IMPLICIT NONE
    485482c
    486 #include "dimensions.h"
    487 #include "paramet.h"
    488 #include "logic.h"
    489 #include "comvert.h"
    490 #include "comconst.h"
    491 #include "iniprint.h"
     483      include "dimensions.h"
     484      include "paramet.h"
     485      include "iniprint.h"
    492486c
    493487c
  • LMDZ5/branches/testing/libf/dyn3d_common/advx.F

    r1999 r2641  
    1818C  sm,s0,sx,sy,sz                                                C
    1919C  sont les arguments de sortie pour le s-pg                     C
    20 C                                                                C
     20C                                                                C
    2121CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
    2222C
    2323C  parametres principaux du modele
    2424C
    25 #include "dimensions.h"
    26 #include "paramet.h"
    27 #include "comconst.h"
    28 #include "comvert.h"
     25      include "dimensions.h"
     26      include "paramet.h"
    2927
    3028C  Arguments :
  • LMDZ5/branches/testing/libf/dyn3d_common/advxp.F

    r1999 r2641  
    1313C  parametres principaux du modele
    1414C
    15 #include "dimensions.h"
    16 #include "paramet.h"
    17 #include "comconst.h"
    18 #include "comvert.h"
     15      include "dimensions.h"
     16      include "paramet.h"
    1917
    2018       INTEGER ntra
     
    103101c         IF (S0(i,j,l,ntra) .lt. 0. ) THEN
    104102c         PRINT*,'S0(',i,j,l,')=',S0(i,j,l,ntra)
    105 c            print*, 'SSX(',i,j,l,')=',SSX(i,j,l,ntra)
     103c             print*, 'SSX(',i,j,l,')=',SSX(i,j,l,ntra)
    106104c         print*, 'SY(',i,j,l,')=',SY(i,j,l,ntra)
    107105c         print*, 'SZ(',i,j,l,')=',SZ(i,j,l,ntra)
     
    120118      DO j = 1, jjp1
    121119      DO i = 1, iim
    122         sqi = sqi + S0(i,j,l,ntra)
     120        sqi = sqi + S0(i,j,l,ntra)
    123121      END DO
    124122      END DO
     
    612610c      DO 9999 j = 1, jjp1
    613611c      DO 9999 i = 1, iip1
    614 c          IF (S0(i,j,l,ntra).lt.0..and.LIMIT) THEN
     612c           IF (S0(i,j,l,ntra).lt.0..and.LIMIT) THEN
    615613c           PRINT*, '-------------------'
    616 c               PRINT*, 'En fin de ADVXP'
     614c                PRINT*, 'En fin de ADVXP'
    617615c           PRINT*,'S0(',i,j,l,')=',S0(i,j,l,ntra)
    618 c               print*, 'SSX(',i,j,l,')=',SSX(i,j,l,ntra)
     616c                print*, 'SSX(',i,j,l,')=',SSX(i,j,l,ntra)
    619617c           print*, 'SY(',i,j,l,')=',SY(i,j,l,ntra)
    620 c               print*, 'SZ(',i,j,l,')=',SZ(i,j,l,ntra)
     618c               print*, 'SZ(',i,j,l,')=',SZ(i,j,l,ntra)
    621619c            WRITE (*,*) 'On arrete !! - pbl en fin de ADVXP'
    622620c            STOP
     
    629627         SM(iip1,j,l) = SM(1,j,l)
    630628         S0(iip1,j,l,ntra) = S0(1,j,l,ntra)
    631          SSX(iip1,j,l,ntra) = SSX(1,j,l,ntra)
    632         SY(iip1,j,l,ntra) = SY(1,j,l,ntra)
    633         SZ(iip1,j,l,ntra) = SZ(1,j,l,ntra)
     629             SSX(iip1,j,l,ntra) = SSX(1,j,l,ntra)
     630            SY(iip1,j,l,ntra) = SY(1,j,l,ntra)
     631            SZ(iip1,j,l,ntra) = SZ(1,j,l,ntra)
    634632      END DO
    635633      END DO
  • LMDZ5/branches/testing/libf/dyn3d_common/advy.F

    r1999 r2641  
    99C  first-order moments (SOM) advection of tracer in Y direction  C
    1010C                                                                C
    11 C  Source : Pascal Simon ( Meteo, CNRM )                        C
    12 C  Adaptation : A.A. (LGGE)                                     C
     11C  Source : Pascal Simon ( Meteo, CNRM )                        C
     12C  Adaptation : A.A. (LGGE)                                     C
    1313C  Derniere Modif : 15/12/94 LAST
    14 C                                                                C
    15 C  sont les arguments d'entree pour le s-pg                      C
    16 C                                                                C
    17 C  argument de sortie du s-pg                                    C
    18 C                                                                C
     14C                                                                C
     15C  sont les arguments d'entree pour le s-pg                      C
     16C                                                                C
     17C  argument de sortie du s-pg                                    C
     18C                                                                C
    1919CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
    2020CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
     
    2626C
    2727C
    28 #include "dimensions.h"
    29 #include "paramet.h"
    30 #include "comconst.h"
    31 #include "comvert.h"
    32 #include "comgeom2.h"
     28      include "dimensions.h"
     29      include "paramet.h"
     30      include "comgeom2.h"
    3331 
    3432C  Arguments :
  • LMDZ5/branches/testing/libf/dyn3d_common/advyp.F

    r1999 r2641  
    1111CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
    1212C                                                                C
    13 C  Source : Pascal Simon ( Meteo, CNRM )                        C
    14 C  Adaptation : A.A. (LGGE)                                     C
     13C  Source : Pascal Simon ( Meteo, CNRM )                        C
     14C  Adaptation : A.A. (LGGE)                                     C
    1515C  Derniere Modif : 19/10/95 LAST
    16 C                                                                C
    17 C  sont les arguments d'entree pour le s-pg                      C
    18 C                                                                C
    19 C  argument de sortie du s-pg                                    C
    20 C                                                                C
     16C                                                                C
     17C  sont les arguments d'entree pour le s-pg                      C
     18C                                                                C
     19C  argument de sortie du s-pg                                    C
     20C                                                                C
    2121CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
    2222CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
     
    2828C
    2929C
    30 #include "dimensions.h"
    31 #include "paramet.h"
    32 #include "comconst.h"
    33 #include "comvert.h"
    34 #include "comgeom.h"
     30      include "dimensions.h"
     31      include "paramet.h"
     32      include "comgeom.h"
    3533 
    3634C  Arguments :
  • LMDZ5/branches/testing/libf/dyn3d_common/advz.F

    r1999 r2641  
    1616C                                                                C
    1717C  dq est l'argument de sortie pour le s-pg                      C
    18 C                                                                C
     18C                                                                C
    1919CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
    2020C
    2121C  parametres principaux du modele
    2222C
    23 #include "dimensions.h"
    24 #include "paramet.h"
    25 #include "comconst.h"
    26 #include "comvert.h"
     23      include "dimensions.h"
     24      include "paramet.h"
    2725
    2826C    #include "traceur.h"
  • LMDZ5/branches/testing/libf/dyn3d_common/advzp.F

    r1999 r2641  
    3131C  parametres principaux du modele
    3232C
    33 #include "dimensions.h"
    34 #include "paramet.h"
    35 #include "comconst.h"
    36 #include "comvert.h"
    37 #include "comgeom.h"
     33      include "dimensions.h"
     34      include "paramet.h"
     35      include "comgeom.h"
    3836C
    3937C  Arguments :
     
    356354      DO j = 1,jjp1
    357355          SM(iip1,j,l) = SM(1,j,l)
    358           S0(iip1,j,l,ntra) = S0(1,j,l,ntra)
     356          S0(iip1,j,l,ntra) = S0(1,j,l,ntra)
    359357          SSX(iip1,j,l,ntra) = SSX(1,j,l,ntra)
    360           SY(iip1,j,l,ntra) = SY(1,j,l,ntra)
     358          SY(iip1,j,l,ntra) = SY(1,j,l,ntra)
    361359          SZ(iip1,j,l,ntra) = SZ(1,j,l,ntra)
    362360      ENDDO
    363361      ENDDO
    364 c                                                                               C-------------------------------------------------------------
     362c                                                                                C-------------------------------------------------------------
    365363C *** Test : diag de la qqtite totale de tarceur
    366364C            dans l'atmosphere avant l'advection en z
  • LMDZ5/branches/testing/libf/dyn3d_common/bernoui.F

    r1999 r2641  
    2525c   -------------
    2626c
    27 #include "dimensions.h"
    28 #include "paramet.h"
    29 #include "logic.h"
     27      include "dimensions.h"
     28      include "paramet.h"
    3029c
    3130c   Arguments:
  • LMDZ5/branches/testing/libf/dyn3d_common/caldyn0.F90

    r2408 r2641  
    77!-------------------------------------------------------------------------------
    88  USE control_mod, ONLY: resetvarc
     9  USE comvert_mod, ONLY: ap, bp
    910  IMPLICIT NONE
    1011  include "dimensions.h"
    1112  include "paramet.h"
    12   include "comconst.h"
    13   include "comvert.h"
    1413  include "comgeom.h"
    1514!===============================================================================
  • LMDZ5/branches/testing/libf/dyn3d_common/conf_planete.F90

    r1999 r2641  
    1010USE ioipsl_getincom
    1111#endif
     12USE comconst_mod, ONLY: pi, g, molmass, kappa, cpp, omeg, rad, &
     13                        year_day, daylen, daysec, ihf
     14USE comvert_mod, ONLY: preff, pa
    1215IMPLICIT NONE
    1316!
     
    1518!   Declarations :
    1619!   --------------
    17 #include "dimensions.h"
    18 #include "comconst.h"
    19 #include "comvert.h"
     20
    2021!
    2122!   local:
  • LMDZ5/branches/testing/libf/dyn3d_common/convmas.F90

    r2408 r2641  
    99  include "paramet.h"
    1010  include "comgeom.h"
    11   include "logic.h"
    1211!===============================================================================
    1312! Arguments:
  • LMDZ5/branches/testing/libf/dyn3d_common/coordij.F

    r1999 r2641  
    1111c=======================================================================
    1212
     13      USE comconst_mod, ONLY: pi
     14     
    1315      IMPLICIT NONE
    1416      REAL lon,lat
     
    1618      INTEGER i,j
    1719
    18 #include "dimensions.h"
    19 #include "paramet.h"
    20 #include "comconst.h"
    21 #include "comgeom.h"
    22 #include "serre.h"
     20      include "dimensions.h"
     21      include "paramet.h"
     22      include "comgeom.h"
    2323
    2424      real zlon,zlat
  • LMDZ5/branches/testing/libf/dyn3d_common/disvert.F90

    r2160 r2641  
    1010  use new_unit_m, only: new_unit
    1111  use assert_m, only: assert
     12  USE comvert_mod, ONLY: ap, bp, nivsigs, nivsig, dpres, presnivs, &
     13                         pa, preff, scaleheight
     14  USE logic_mod, ONLY: ok_strato
    1215
    1316  IMPLICIT NONE
     
    1518  include "dimensions.h"
    1619  include "paramet.h"
    17   include "comvert.h"
    18   include "comconst.h"
    1920  include "iniprint.h"
    20   include "logic.h"
    2121
    2222!-------------------------------------------------------------------------------
     
    2424!          Triggered by the levels number llm.
    2525!-------------------------------------------------------------------------------
    26 ! Read    in "comvert.h":
     26! Read    in "comvert_mod":
    2727
    2828! pa !--- vertical coordinate is close to a PRESSURE COORDINATE FOR P
     
    3030
    3131! preff                      !--- REFERENCE PRESSURE                 (101325 Pa)
    32 ! Written in "comvert.h":
     32! Written in "comvert_mod":
    3333! ap(llm+1), bp(llm+1)       !--- Ap, Bp HYBRID COEFFICIENTS AT INTERFACES
    3434! aps(llm),  bps(llm)        !--- Ap, Bp HYBRID COEFFICIENTS AT MID-LAYERS
  • LMDZ5/branches/testing/libf/dyn3d_common/disvert_noterre.F

    r1999 r2641  
    1212      use ioipsl_getincom
    1313#endif
     14      USE comvert_mod, ONLY: ap,bp,aps,bps,presnivs,pseudoalt,
     15     &                       nivsig,nivsigs,pa,preff,scaleheight
     16      USE comconst_mod, ONLY: kappa
     17      USE logic_mod, ONLY: hybrid
    1418
    1519      IMPLICIT NONE
    1620
    17 #include "dimensions.h"
    18 #include "paramet.h"
    19 #include "comvert.h"
    20 #include "comconst.h"
    21 #include "logic.h"
    22 #include "iniprint.h"
     21      include "dimensions.h"
     22      include "paramet.h"
     23      include "iniprint.h"
    2324c
    2425c=======================================================================
  • LMDZ5/branches/testing/libf/dyn3d_common/divgrad.F

    r1999 r2641  
    2020c   -------------
    2121c
    22 #include "dimensions.h"
    23 #include "paramet.h"
    24 #include "comgeom.h"
    25 #include "comdissipn.h"
    26 #include "logic.h"
     22      include "dimensions.h"
     23      include "paramet.h"
     24      include "comgeom.h"
     25      include "comdissipn.h"
    2726c
    2827      INTEGER klevel
  • LMDZ5/branches/testing/libf/dyn3d_common/exner_hyb_m.F90

    r2056 r2641  
    3333    !
    3434    !
     35    USE comconst_mod, ONLY: jmp1, cpp, kappa, r
     36    USE comvert_mod, ONLY: preff
     37   
     38    IMPLICIT NONE
     39   
    3540    include "dimensions.h"
    3641    include "paramet.h"
    37     include "comconst.h"
    3842    include "comgeom.h"
    39     include "comvert.h"
    40     include "serre.h"
    4143
    4244    INTEGER  ngrid
  • LMDZ5/branches/testing/libf/dyn3d_common/exner_milieu_m.F90

    r2056 r2641  
    3030    !
    3131    !
     32    USE comconst_mod, ONLY: jmp1, cpp, kappa, r
     33    USE comvert_mod, ONLY: preff
     34   
     35    IMPLICIT NONE
     36   
    3237    include "dimensions.h"
    3338    include "paramet.h"
    34     include "comconst.h"
    3539    include "comgeom.h"
    36     include "comvert.h"
    37     include "serre.h"
    3840
    3941    INTEGER  ngrid
  • LMDZ5/branches/testing/libf/dyn3d_common/fxhyp_m.F90

    r2258 r2641  
    2222    use nrtype, only: pi, pi_d, twopi, twopi_d, k8
    2323    use principal_cshift_m, only: principal_cshift
     24    use serre_mod, only: clon, grossismx, dzoomx, taux
    2425
    2526    include "dimensions.h"
    2627    ! for iim
    27 
    28     include "serre.h"
    29     ! for clon, grossismx, dzoomx, taux
    3028
    3129    REAL, intent(out):: xprimm025(:), rlonv(:), xprimv(:) ! (iim + 1)
  • LMDZ5/branches/testing/libf/dyn3d_common/fxy.F

    r1999 r2641  
    55     ,                    rlatu2,yprimu2,
    66     , rlonu,xprimu,rlonv,xprimv,rlonm025,xprimm025,rlonp025,xprimp025)
     7
     8      USE comconst_mod, ONLY: pi
     9      USE serre_mod, ONLY: pxo,pyo,alphax,alphay,transx,transy
    710
    811      IMPLICIT NONE
     
    1417c
    1518c
    16 #include "dimensions.h"
    17 #include "paramet.h"
    18 #include "serre.h"
    19 #include "comconst.h"
     19      include "dimensions.h"
     20      include "paramet.h"
    2021
    2122       INTEGER i,j
  • LMDZ5/branches/testing/libf/dyn3d_common/fxysinus.F

    r1999 r2641  
    77
    88
     9      USE comconst_mod, ONLY: pi
    910      IMPLICIT NONE
    1011c
     
    1718#include "dimensions.h"
    1819#include "paramet.h"
    19 #include "comconst.h"
    2020
    2121       INTEGER i,j
  • LMDZ5/branches/testing/libf/dyn3d_common/fyhyp_m.F90

    r2258 r2641  
    1818    use coefpoly_m, only: coefpoly
    1919    use nrtype, only: k8
     20    use serre_mod, only: clat, grossismy, dzoomy, tauy
    2021
    2122    include "dimensions.h"
    2223    ! for jjm
    23 
    24     include "serre.h"
    25     ! for clat, grossismy, dzoomy, tauy
    2624
    2725    REAL, intent(out):: rlatu(jjm + 1), yyprimu(jjm + 1)
  • LMDZ5/branches/testing/libf/dyn3d_common/geopot.F

    r1999 r2641  
    2727c   -------------
    2828
    29 #include "dimensions.h"
    30 #include "paramet.h"
    31 #include "comvert.h"
     29      include "dimensions.h"
     30      include "paramet.h"
    3231
    3332c   Arguments:
  • LMDZ5/branches/testing/libf/dyn3d_common/gradiv.F

    r1999 r2641  
    1919      IMPLICIT NONE
    2020c
    21 #include "dimensions.h"
    22 #include "paramet.h"
    23 #include "comdissipn.h"
    24 #include "logic.h"
     21      include "dimensions.h"
     22      include "paramet.h"
     23      include "comdissipn.h"
    2524
    2625      INTEGER klevel
  • LMDZ5/branches/testing/libf/dyn3d_common/grilles_gcm_netcdf_sub.F90

    r2258 r2641  
    99SUBROUTINE grilles_gcm_netcdf_sub(masque,phis)
    1010
     11  USE comconst_mod, ONLY: cpp, kappa, g, omeg, daysec, rad, pi
     12  USE comvert_mod, ONLY: presnivs, preff, pa
     13 
    1114  IMPLICIT NONE
    1215
    1316  INCLUDE "dimensions.h"
    1417  INCLUDE "paramet.h"
    15   INCLUDE "comconst.h"
    1618  INCLUDE "comgeom.h"
    17   INCLUDE "comvert.h"
    1819  INCLUDE "netcdf.inc"
    19   INCLUDE "serre.h"
    2020
    2121
  • LMDZ5/branches/testing/libf/dyn3d_common/iniconst.F90

    r2056 r2641  
    1111  use ioipsl_getincom
    1212#endif
    13 
     13  USE comconst_mod, ONLY: im, imp1, jm, jmp1, lllm, lllmm1, lllmp1, &
     14                          unsim, pi, r, kappa, cpp, dtvr, dtphys
     15  USE comvert_mod, ONLY: disvert_type, pressure_exner
     16 
    1417  IMPLICIT NONE
    1518  !
     
    2124  include "dimensions.h"
    2225  include "paramet.h"
    23   include "comconst.h"
    24   include "temps.h"
    25   include "comvert.h"
    2626  include "iniprint.h"
    2727
  • LMDZ5/branches/testing/libf/dyn3d_common/inidissip.F90

    r1999 r2641  
    1212
    1313  USE control_mod, only : dissip_period,iperiod
     14  USE comconst_mod, ONLY: dissip_deltaz, dissip_factz, dissip_zref, &
     15                          dtdiss, dtvr, rad
     16  USE comvert_mod, ONLY: preff, presnivs
    1417
    1518  IMPLICIT NONE
     
    1720  include "paramet.h"
    1821  include "comdissipn.h"
    19   include "comconst.h"
    20   include "comvert.h"
    21   include "logic.h"
    2222  include "iniprint.h"
    2323
  • LMDZ5/branches/testing/libf/dyn3d_common/inigeom.F

    r2258 r2641  
    1818      use fxhyp_m, only: fxhyp
    1919      use fyhyp_m, only: fyhyp
     20      USE comconst_mod, ONLY: pi, g, omeg, rad
     21      USE logic_mod, ONLY: fxyhypb, ysinus
     22      USE serre_mod, ONLY: clon,clat,grossismx,grossismy,dzoomx,dzoomy,
     23     &          alphax,alphay,taux,tauy,transx,transy,pxo,pyo
    2024      IMPLICIT NONE
    2125c
    22 #include "dimensions.h"
    23 #include "paramet.h"
    24 #include "comconst.h"
    25 #include "comgeom2.h"
    26 #include "serre.h"
    27 #include "logic.h"
    28 #include "comdissnew.h"
     26      include "dimensions.h"
     27      include "paramet.h"
     28      include "comgeom2.h"
     29      include "comdissnew.h"
    2930
    3031c-----------------------------------------------------------------------
  • LMDZ5/branches/testing/libf/dyn3d_common/initdynav.F90

    r2298 r2641  
    99  use com_io_dyn_mod, only : histaveid,histvaveid,histuaveid, &
    1010       dynhistave_file,dynhistvave_file,dynhistuave_file
     11  USE comconst_mod, ONLY: pi
     12  USE comvert_mod, ONLY: presnivs
     13  USE temps_mod, ONLY: itau_dyn
     14 
    1115  implicit none
    1216
     
    3438  include "dimensions.h"
    3539  include "paramet.h"
    36   include "comconst.h"
    37   include "comvert.h"
    3840  include "comgeom.h"
    39   include "temps.h"
    40   include "ener.h"
    41   include "logic.h"
    4241  include "description.h"
    43   include "serre.h"
    4442  include "iniprint.h"
    4543
  • LMDZ5/branches/testing/libf/dyn3d_common/initfluxsto.F

    r2298 r2641  
    99       USE IOIPSL
    1010#endif
     11      USE comconst_mod, ONLY: pi
     12      USE comvert_mod, ONLY: nivsigs
     13      USE temps_mod, ONLY: annee_ref, day_ref, itau_dyn
     14     
    1115      implicit none
    1216
     
    3842C
    3943C   Declarations
    40 #include "dimensions.h"
    41 #include "paramet.h"
    42 #include "comconst.h"
    43 #include "comvert.h"
    44 #include "comgeom.h"
    45 #include "temps.h"
    46 #include "ener.h"
    47 #include "logic.h"
    48 #include "description.h"
    49 #include "serre.h"
    50 #include "iniprint.h"
     44      include "dimensions.h"
     45      include "paramet.h"
     46      include "comgeom.h"
     47      include "description.h"
     48      include "iniprint.h"
    5149
    5250C   Arguments
     
    8684      CALL ymds2ju(zan, 1, idayref, 0.0, zjulian)
    8785      tau0 = itau_dyn
    88        
    89         do jj = 1, jjp1
     86       
     87        do jj = 1, jjp1
    9088        do ii = 1, iip1
    9189          rlong(ii,jj) = rlonu(ii) * 180. / pi
     
    113111     .             1, iip1, 1, jjm,
    114112     .             tau0, zjulian, tstep, vhoriid, filevid)
    115        
    116         rl(1,1) = 1.   
     113       
     114        rl(1,1) = 1.
    117115      call histbeg('defstoke.nc', 1, rl, 1, rl,
    118116     .             1, 1, 1, 1,
     
    131129      call histhori(fileid, iip1, rlong, jjp1, rlat, 'scalar',
    132130     .              'Grille points scalaires', thoriid)
    133        
     131       
    134132C
    135133C  Appel a histvert pour la grille verticale
     
    150148C
    151149C  Appels a histdef pour la definition des variables a sauvegarder
    152        
    153         CALL histdef(fileid, "phis", "Surface geop. height", "-",
     150       
     151        CALL histdef(fileid, "phis", "Surface geop. height", "-",
    154152     .                iip1,jjp1,thoriid, 1,1,1, -99, 32,
    155153     .                "once", t_ops, t_wrt)
     
    158156     .                iip1,jjp1,thoriid, 1,1,1, -99, 32,
    159157     .                "once", t_ops, t_wrt)
    160        
    161         CALL histdef(filedid, "dtvr", "tps dyn", "s",
     158       
     159        CALL histdef(filedid, "dtvr", "tps dyn", "s",
    162160     .                1,1,dhoriid, 1,1,1, -99, 32,
    163161     .                "once", t_ops, t_wrt)
     
    223221        call histsync(filedid)
    224222      endif
    225        
     223       
    226224#else
    227225! tell the user this routine should be run with ioipsl
  • LMDZ5/branches/testing/libf/dyn3d_common/inithist.F

    r2298 r2641  
    1010       use com_io_dyn_mod, only : histid,histvid,histuid,               &
    1111     &                        dynhist_file,dynhistv_file,dynhistu_file
    12 
     12       USE comconst_mod, ONLY: pi
     13       USE comvert_mod, ONLY: presnivs
     14       USE temps_mod, ONLY: itau_dyn
     15       
    1316      implicit none
    1417
     
    3841C
    3942C   Declarations
    40 #include "dimensions.h"
    41 #include "paramet.h"
    42 #include "comconst.h"
    43 #include "comvert.h"
    44 #include "comgeom.h"
    45 #include "temps.h"
    46 #include "ener.h"
    47 #include "logic.h"
    48 #include "description.h"
    49 #include "serre.h"
    50 #include "iniprint.h"
     43      include "dimensions.h"
     44      include "paramet.h"
     45      include "comgeom.h"
     46      include "description.h"
     47      include "iniprint.h"
    5148
    5249C   Arguments
  • LMDZ5/branches/testing/libf/dyn3d_common/inter_barxy_m.F90

    r1999 r2641  
    374374
    375375    use assert_eq_m, only: assert_eq
     376    use comconst_mod, only: pi
    376377
    377378    IMPLICIT NONE
    378 
    379     include "comconst.h"
    380     ! (for "pi")
    381379
    382380    REAL, intent(in):: xi(:)
     
    431429    ! order.
    432430
     431    use comconst_mod, only: pi
     432
    433433    IMPLICIT NONE
    434 
    435     include "comconst.h"
    436     ! (for "pi")
    437434
    438435    REAL, intent(in):: xi(:) ! angle, in rad or degrees
  • LMDZ5/branches/testing/libf/dyn3d_common/interpost.F

    r1999 r2641  
    77
    88
    9 #include "dimensions.h"
    10 #include "paramet.h"
    11 #include "comconst.h"
    12 #include "comvert.h"
    13 #include "comgeom2.h"
     9      include "dimensions.h"
     10      include "paramet.h"
     11      include "comgeom2.h"
    1412
    1513c Arguments   
  • LMDZ5/branches/testing/libf/dyn3d_common/interpre.F

    r2160 r2641  
    66     s            unatppm,vnatppm,psppm)
    77
    8       USE control_mod
     8      USE comconst_mod, ONLY: g
     9      USE comvert_mod, ONLY: ap, bp
    910
    1011       implicit none
    1112
    12 #include "dimensions.h"
    13 c#include "paramr2.h"
    14 #include "paramet.h"
    15 #include "comconst.h"
    16 #include "comdissip.h"
    17 #include "comvert.h"
    18 #include "comgeom2.h"
    19 #include "logic.h"
    20 #include "temps.h"
    21 #include "ener.h"
    22 #include "description.h"
     13      include "dimensions.h"
     14      include "paramet.h"
     15      include "comdissip.h"
     16      include "comgeom2.h"
     17      include "description.h"
    2318
    2419c---------------------------------------------------
     
    7772          do j=1,jjm
    7873              do i=1,iip1
    79                   vnat(i,j,l)=-pbarv(i,j,l)/masseby(i,j,l)*cv(i,j)             
     74                  vnat(i,j,l)=-pbarv(i,j,l)/masseby(i,j,l)*cv(i,j)
    8075              enddo
    8176          enddo
     
    119114                 vnatppm(i,j,l)=vnat(i,j,llm-l+1)
    120115                 fluxwppm(i,j,l)=fluxw(i,j,llm-l+1)
    121                  qppm(i,j,l)=q(i,j,llm-l+1)                             
     116                 qppm(i,j,l)=q(i,j,llm-l+1)
    122117             enddo
    123118          enddo                               
  • LMDZ5/branches/testing/libf/dyn3d_common/invert_zoom_x_m.F90

    r2258 r2641  
    1111    use coefpoly_m, only: coefpoly
    1212    use nrtype, only: pi, pi_d, twopi_d, k8
     13    use serre_mod, only: clon
    1314
    1415    include "dimensions.h"
    1516    ! for iim
    16 
    17     include "serre.h"
    18     ! for clon
    1917
    2018    REAL(K8), intent(in):: Xf(0:), xtild(0:), Xprimt(0:) ! (0:2 * nmax)
  • LMDZ5/branches/testing/libf/dyn3d_common/limx.F

    r1999 r2641  
    1515      IMPLICIT NONE
    1616c
    17 #include "dimensions.h"
    18 #include "paramet.h"
    19 #include "logic.h"
    20 #include "comvert.h"
    21 #include "comconst.h"
    22 #include "comgeom.h"
     17      include "dimensions.h"
     18      include "paramet.h"
     19      include "comgeom.h"
    2320c
    2421c
  • LMDZ5/branches/testing/libf/dyn3d_common/limy.F

    r1999 r2641  
    1414c
    1515c   --------------------------------------------------------------------
     16      USE comconst_mod, ONLY: pi
    1617      IMPLICIT NONE
    1718c
    18 #include "dimensions.h"
    19 #include "paramet.h"
    20 #include "logic.h"
    21 #include "comvert.h"
    22 #include "comconst.h"
    23 #include "comgeom.h"
     19      include "dimensions.h"
     20      include "paramet.h"
     21      include "comgeom.h"
    2422c
    2523c
  • LMDZ5/branches/testing/libf/dyn3d_common/limz.F

    r1999 r2641  
    1515      IMPLICIT NONE
    1616c
    17 #include "dimensions.h"
    18 #include "paramet.h"
    19 #include "logic.h"
    20 #include "comvert.h"
    21 #include "comconst.h"
    22 #include "comgeom.h"
     17      include "dimensions.h"
     18      include "paramet.h"
     19      include "comgeom.h"
    2320c
    2421c
  • LMDZ5/branches/testing/libf/dyn3d_common/massbarxy.F90

    r2408 r2641  
    99  include "dimensions.h"
    1010  include "paramet.h"
    11   include "comconst.h"
    1211  include "comgeom.h"
    1312!===============================================================================
  • LMDZ5/branches/testing/libf/dyn3d_common/massdair.F

    r1999 r2641  
    1818      IMPLICIT NONE
    1919c
    20 #include "dimensions.h"
    21 #include "paramet.h"
    22 #include "comconst.h"
    23 #include "comgeom.h"
     20      include "dimensions.h"
     21      include "paramet.h"
     22      include "comgeom.h"
    2423c
    2524c  .....   arguments  ....
  • LMDZ5/branches/testing/libf/dyn3d_common/nxgrarot.F

    r1999 r2641  
    1919c
    2020c
    21 #include "dimensions.h"
    22 #include "paramet.h"
    23 #include "comdissipn.h"
    24 #include "logic.h"
     21      include "dimensions.h"
     22      include "paramet.h"
     23      include "comdissipn.h"
    2524c
    2625      INTEGER klevel
  • LMDZ5/branches/testing/libf/dyn3d_common/pentes_ini.F

    r1999 r2641  
    33!
    44      SUBROUTINE pentes_ini (q,w,masse,pbaru,pbarv,mode)
     5     
     6      USE comconst_mod, ONLY: pi, dtvr
     7     
    58      IMPLICIT NONE
    69
     
    2225
    2326
    24 #include "dimensions.h"
    25 #include "paramet.h"
    26 #include "comconst.h"
    27 #include "comvert.h"
    28 #include "comgeom2.h"
     27      include "dimensions.h"
     28      include "paramet.h"
     29      include "comgeom2.h"
    2930
    3031c   Arguments:
     
    437438
    438439        DO l = 1,llm
    439         DO j = 1,jjp1
    440           DO i = 1,iip1
     440            DO j = 1,jjp1
     441              DO i = 1,iip1
    441442                IF (q(i,j,l,0).lt.0.)  THEN
    442443c                    PRINT*,'------------ BIP-----------'
     
    445446c                    PRINT*,'QY(',i,j,l,')=',q(i,j,l,2)
    446447c                    PRINT*,'QZ(',i,j,l,')=',q(i,j,l,3)
    447 c                            PRINT*,' PBL EN SORTIE DE PENTES'
     448c                            PRINT*,' PBL EN SORTIE DE PENTES'
    448449                     q(i,j,l,0)=0.
    449450c                    STOP
  • LMDZ5/branches/testing/libf/dyn3d_common/prather.F

    r1999 r2641  
    33!
    44      SUBROUTINE prather (q,w,masse,pbaru,pbarv,nt,dt)
     5     
     6      USE comconst_mod, ONLY: pi
     7     
    58      IMPLICIT NONE
    69
     
    1922
    2023
    21 #include "dimensions.h"
    22 #include "paramet.h"
    23 #include "comconst.h"
    24 #include "comvert.h"
    25 #include "comgeom2.h"
     24      include "dimensions.h"
     25      include "paramet.h"
     26      include "comgeom2.h"
    2627
    2728c   Arguments:
  • LMDZ5/branches/testing/libf/dyn3d_common/principal_cshift_m.F90

    r2258 r2641  
    1212
    1313    use nrtype, only: twopi
     14    use serre_mod, only: clon
    1415
    1516    include "dimensions.h"
    1617    ! for iim
    17 
    18     include "serre.h"
    19     ! for clon
    2018
    2119    integer, intent(in):: is2
  • LMDZ5/branches/testing/libf/dyn3d_common/sortvarc.F

    r2160 r2641  
    77
    88      USE control_mod, ONLY: resetvarc
     9      USE comconst_mod, ONLY: dtvr, daysec, g, rad, omeg
     10      USE logic_mod, ONLY: read_start
     11      USE ener_mod, ONLY: etot,ptot,ztot,stot,ang,
     12     &                    etot0,ptot0,ztot0,stot0,ang0,
     13     &                    rmsdpdt,rmsv
    914      IMPLICIT NONE
    1015
     
    2732      INCLUDE "dimensions.h"
    2833      INCLUDE "paramet.h"
    29       INCLUDE "comconst.h"
    30       INCLUDE "comvert.h"
    3134      INCLUDE "comgeom.h"
    32       INCLUDE "ener.h"
    33       INCLUDE "logic.h"
    34       INCLUDE "temps.h"
    3535      INCLUDE "iniprint.h"
    3636
  • LMDZ5/branches/testing/libf/dyn3d_common/tourpot.F90

    r2408 r2641  
    99  include "paramet.h"
    1010  include "comgeom.h"
    11   include "logic.h"
    1211!===============================================================================
    1312! Arguments:
  • LMDZ5/branches/testing/libf/dyn3d_common/traceurpole.F

    r1999 r2641  
    44          subroutine traceurpole(q,masse)
    55
    6       USE control_mod
    7 
    86          implicit none
    97     
    10 #include "dimensions.h"
    11 c#include "paramr2.h"
    12 #include "paramet.h"
    13 #include "comconst.h"
    14 #include "comdissip.h"
    15 #include "comvert.h"
    16 #include "comgeom2.h"
    17 #include "logic.h"
    18 #include "temps.h"
    19 #include "ener.h"
    20 #include "description.h"
     8      include "dimensions.h"
     9      include "paramet.h"
     10      include "comdissip.h"
     11      include "comgeom2.h"
     12      include "description.h"
    2113
    2214
  • LMDZ5/branches/testing/libf/dyn3d_common/ugeostr.F90

    r1999 r2641  
    1111  ! levels are pressure levels.
    1212
     13  use comconst_mod, only: omeg, rad
     14 
    1315  implicit none
    1416
    1517  include "dimensions.h"
    1618  include "paramet.h"
    17   include "comconst.h"
    1819  include "comgeom2.h"
    1920
  • LMDZ5/branches/testing/libf/dyn3d_common/vitvert.F90

    r2408 r2641  
    55!-------------------------------------------------------------------------------
    66! Purpose: Compute vertical speed at sigma levels.
     7  USE comvert_mod, ONLY: bp
    78  IMPLICIT NONE
    89  include "dimensions.h"
    910  include "paramet.h"
    10   include "comvert.h"
    1111!===============================================================================
    1212! Arguments:
  • LMDZ5/branches/testing/libf/dyn3d_common/writedynav.F90

    r2298 r2641  
    88  USE infotrac, ONLY : nqtot, ttext
    99  use com_io_dyn_mod, only : histaveid, histvaveid, histuaveid
     10  USE comconst_mod, ONLY: cpp
     11  USE temps_mod, ONLY: itau_dyn
    1012
    1113  implicit none
     
    3133  include "dimensions.h"
    3234  include "paramet.h"
    33   include "comconst.h"
    34   include "comvert.h"
    3535  include "comgeom.h"
    36   include "temps.h"
    37   include "ener.h"
    38   include "logic.h"
    3936  include "description.h"
    40   include "serre.h"
    4137  include "iniprint.h"
    4238
  • LMDZ5/branches/testing/libf/dyn3d_common/writehist.F

    r2298 r2641  
    99      USE infotrac, ONLY : nqtot, ttext
    1010      use com_io_dyn_mod, only : histid,histvid,histuid
     11      USE temps_mod, ONLY: itau_dyn
     12     
    1113      implicit none
    1214
     
    3335C
    3436C   Declarations
    35 #include "dimensions.h"
    36 #include "paramet.h"
    37 #include "comconst.h"
    38 #include "comvert.h"
    39 #include "comgeom.h"
    40 #include "temps.h"
    41 #include "ener.h"
    42 #include "logic.h"
    43 #include "description.h"
    44 #include "serre.h"
    45 #include "iniprint.h"
     37      include "dimensions.h"
     38      include "paramet.h"
     39      include "comgeom.h"
     40      include "description.h"
     41      include "iniprint.h"
    4642
    4743C
  • LMDZ5/branches/testing/libf/dyn3dmem/addfi_loc.F

    r1999 r2641  
    4646c    ------------------
    4747c
    48 #include "dimensions.h"
    49 #include "paramet.h"
    50 #include "comconst.h"
    51 #include "comgeom.h"
    52 #include "serre.h"
     48      include "dimensions.h"
     49      include "paramet.h"
     50      include "comgeom.h"
    5351c
    5452c    Arguments :
  • LMDZ5/branches/testing/libf/dyn3dmem/advect_new_loc.F

    r1910 r2641  
    77      USE write_field_loc
    88      USE advect_new_mod
     9      USE comconst_mod, ONLY: daysec
     10      USE logic_mod, ONLY: conser
     11     
    912      IMPLICIT NONE
    1013c=======================================================================
     
    2730c   -------------
    2831
    29 #include "dimensions.h"
    30 #include "paramet.h"
    31 #include "comconst.h"
    32 #include "comvert.h"
    33 #include "comgeom.h"
    34 #include "logic.h"
    35 #include "ener.h"
     32      include "dimensions.h"
     33      include "paramet.h"
     34      include "comgeom.h"
    3635
    3736c   Arguments:
     
    6160c   -------------------------
    6261     
    63       IF (conser)  THEN
     62      IF (conser.AND.1==0)  THEN
    6463         deuxjour = 2. * daysec
    6564
     
    122121                 
    123122           uav(ij,l)=0.25*(ucov(ij,l)+ucov(ij-iip1,l))
    124      .               +0.25*(ucov(ij+iip1,l)+ucov(ij,l))
     123     .               +0.25*(ucov(ij+iip1,l)+ucov(ij,l))
    125124         ENDDO
    126125         
  • LMDZ5/branches/testing/libf/dyn3dmem/advtrac_loc.F

    r2298 r2641  
    2727      USE control_mod, ONLY: iapp_tracvl, day_step, planet_type
    2828      USE advtrac_mod, ONLY: finmasse
     29      USE comconst_mod, ONLY: dtvr
    2930      IMPLICIT NONE
    3031c
    31 #include "dimensions.h"
    32 #include "paramet.h"
    33 #include "comconst.h"
    34 #include "comvert.h"
    35 #include "comdissip.h"
    36 #include "comgeom2.h"
    37 #include "logic.h"
    38 #include "temps.h"
    39 #include "ener.h"
    40 #include "description.h"
     32      include "dimensions.h"
     33      include "paramet.h"
     34      include "comdissip.h"
     35      include "comgeom2.h"
     36      include "description.h"
    4137
    4238c-------------------------------------------------------------------
     
    172168#endif
    173169         
    174           GOTO 1234     
     170          GOTO 1234     
    175171c-----------------------------------------------------------
    176172c     Appel des sous programmes d'advection
     
    184180        if(iadv(iq).eq.10) THEN
    185181     
    186 !LF         call vlsplt_p(q(1,1,iq),2.,massem,wg,pbarug,pbarvg,dtvr)
     182!LF            call vlsplt_p(q(1,1,iq),2.,massem,wg,pbarug,pbarvg,dtvr)
    187183
    188184c   ----------------------------------------------------------------
  • LMDZ5/branches/testing/libf/dyn3dmem/bernoui_loc.F

    r1910 r2641  
    2424c   -------------
    2525c
    26 #include "dimensions.h"
    27 #include "paramet.h"
    28 #include "logic.h"
     26      include "dimensions.h"
     27      include "paramet.h"
    2928c
    3029c   Arguments:
  • LMDZ5/branches/testing/libf/dyn3dmem/bilan_dyn_loc.F

    r2488 r2641  
    1717      use misc_mod
    1818      USE write_field_loc
     19      USE comconst_mod, ONLY: cpp, pi
     20      USE comvert_mod, ONLY: presnivs
     21      USE temps_mod, ONLY: annee_ref, day_ref, itau_dyn
     22     
    1923      IMPLICIT NONE
    2024
    21 #include "dimensions.h"
    22 #include "paramet.h"
    23 #include "comconst.h"
    24 #include "comvert.h"
    25 #include "comgeom2.h"
    26 #include "temps.h"
    27 #include "iniprint.h"
     25      include "dimensions.h"
     26      include "paramet.h"
     27      include "comgeom2.h"
     28      include "iniprint.h"
    2829
    2930c====================================================================
     
    598599        do l=1,llm
    599600          Q_cum(:,jjb:jje,l,iQ)=Q_cum(:,jjb:jje,l,iQ)
    600      .                          /masse_cum(:,jjb:jje,l)
     601     .                                /masse_cum(:,jjb:jje,l)
    601602        enddo
    602603!$OMP ENDDO NOWAIT
  • LMDZ5/branches/testing/libf/dyn3dmem/caladvtrac_loc.F

    r2298 r2641  
    2929
    3030
    31 #include "dimensions.h"
    32 #include "paramet.h"
    33 #include "comconst.h"
     31      include "dimensions.h"
     32      include "paramet.h"
    3433
    3534c   Arguments:
     
    210209        call resume_timer(timer_caldyn)
    211210c$OMP END MASTER
    212 c$OMP BARRIER   
     211c$OMP BARRIER
    213212          iadvtr=0
    214213       ENDIF ! if iadvtr.EQ.iapp_tracvl
  • LMDZ5/branches/testing/libf/dyn3dmem/caldyn_loc.F

    r1999 r2641  
    1212      USE caldyn_mod, ONLY: vcont, ucont, ang, p, massebx, masseby,
    1313     &                      vorpot, ecin, bern, massebxy, convm
     14      USE comvert_mod, ONLY: ap, bp
    1415     
    1516      IMPLICIT NONE
     
    3132!   ----------------
    3233
    33 #include "dimensions.h"
    34 #include "paramet.h"
    35 #include "comconst.h"
    36 #include "comvert.h"
    37 #include "comgeom.h"
     34      include "dimensions.h"
     35      include "paramet.h"
     36      include "comgeom.h"
    3837
    3938!   Arguments:
  • LMDZ5/branches/testing/libf/dyn3dmem/call_calfis_mod.F90

    r2408 r2641  
    8282  USE write_field_loc
    8383  USE write_field
     84  USE comconst_mod, ONLY: dtphys
     85  USE logic_mod, ONLY: leapf, forward, ok_strato
     86  USE comvert_mod, ONLY: ap, bp, pressure_exner
     87  USE temps_mod, ONLY: day_ini, day_ref, jd_ref, jh_ref, start_time
     88 
    8489  IMPLICIT NONE
    85     INCLUDE "comconst.h"
    86     INCLUDE "comvert.h"
    87     INCLUDE "logic.h"
    88     INCLUDE "temps.h"
    8990    INCLUDE "iniprint.h"
    9091
  • LMDZ5/branches/testing/libf/dyn3dmem/conf_gcm.F90

    r2471 r2641  
    1717  USE infotrac, ONLY : type_trac
    1818  use assert_m, only: assert
     19  USE comconst_mod, ONLY: dissip_deltaz, dissip_factz, dissip_zref, &
     20                          iflag_top_bound, mode_top_bound, tau_top_bound, &
     21                          ngroup
     22  USE logic_mod, ONLY: fxyhypb, iflag_phys, ok_etat0, ok_gradsfile, &
     23                       ok_guide, ok_limit, ok_strato, purmats, read_start, &
     24                       ysinus
     25  USE serre_mod, ONLY: clon,clat,grossismx,grossismy,dzoomx,dzoomy, &
     26                       alphax,alphay,taux,tauy
     27  USE temps_mod, ONLY: calend
    1928
    2029  IMPLICIT NONE
     
    3544  include "dimensions.h"
    3645  include "paramet.h"
    37   include "logic.h"
    38   include "serre.h"
    3946  include "comdissnew.h"
    40   include "temps.h"
    41   include "comconst.h"
    4247  include "iniprint.h"
    4348
  • LMDZ5/branches/testing/libf/dyn3dmem/convmas1_loc.F90

    r2408 r2641  
    1212  include "paramet.h"
    1313  include "comgeom.h"
    14   include "logic.h"
    1514!===============================================================================
    1615! Arguments:
  • LMDZ5/branches/testing/libf/dyn3dmem/convmas2_loc.F90

    r2408 r2641  
    1111  include "paramet.h"
    1212  include "comgeom.h"
    13   include "logic.h"
    1413!===============================================================================
    1514! Arguments:
  • LMDZ5/branches/testing/libf/dyn3dmem/convmas_loc.F90

    r2408 r2641  
    1111  include "paramet.h"
    1212  include "comgeom.h"
    13   include "logic.h"
    1413!===============================================================================
    1514! Arguments:
  • LMDZ5/branches/testing/libf/dyn3dmem/dissip_loc.F

    r1999 r2641  
    77      USE write_field_loc
    88      USE dissip_mod, ONLY: dissip_allocate
     9      USE comconst_mod, ONLY: dtdiss
    910      IMPLICIT NONE
    1011
     
    2829c   -------------
    2930
    30 #include "dimensions.h"
    31 #include "paramet.h"
    32 #include "comconst.h"
    33 #include "comgeom.h"
    34 #include "comdissnew.h"
    35 #include "comdissipn.h"
     31      include "dimensions.h"
     32      include "paramet.h"
     33      include "comgeom.h"
     34      include "comdissnew.h"
     35      include "comdissipn.h"
    3636
    3737c   Arguments:
  • LMDZ5/branches/testing/libf/dyn3dmem/dteta1_loc.F

    r1910 r2641  
    2121
    2222
    23 #include "dimensions.h"
    24 #include "paramet.h"
    25 #include "logic.h"
     23      include "dimensions.h"
     24      include "paramet.h"
    2625
    2726      REAL teta( ijb_u:ije_u,llm )
  • LMDZ5/branches/testing/libf/dyn3dmem/dudv2_loc.F

    r1910 r2641  
    2323c=======================================================================
    2424c
    25 #include "dimensions.h"
    26 #include "paramet.h"
    27 #include "comvert.h"
     25      include "dimensions.h"
     26      include "paramet.h"
    2827
    2928      REAL teta( ijb_u:ije_u,llm ),pkf( ijb_u:ije_u,llm )
  • LMDZ5/branches/testing/libf/dyn3dmem/dynetat0_loc.f90

    r2408 r2641  
    1212  USE control_mod, ONLY: planet_type
    1313  USE assert_eq_m, ONLY: assert_eq
     14  USE comvert_mod, ONLY: pa,preff
     15  USE comconst_mod, ONLY: cpp, daysec, dtvr, g, im, jm, kappa, lllm, &
     16                          omeg, rad
     17  USE logic_mod, ONLY: fxyhypb, ysinus
     18  USE serre_mod, ONLY: clon, clat, grossismx, grossismy
     19  USE temps_mod, ONLY: annee_ref,day_ref,itau_dyn, &
     20                       start_time,day_ini,hour_ini
     21  USE ener_mod, ONLY: etot0,ptot0,ztot0,stot0,ang0
     22 
    1423  IMPLICIT NONE
    1524  include "dimensions.h"
    1625  include "paramet.h"
    17   include "temps.h"
    18   include "comconst.h"
    19   include "comvert.h"
    2026  include "comgeom.h"
    21   include "ener.h"
    2227  include "description.h"
    23   include "serre.h"
    24   include "logic.h"
    2528  include "iniprint.h"
    2629!===============================================================================
     
    99102  day_ini    = tab_cntrl(30)
    100103  itau_dyn   = tab_cntrl(31)
    101 !  start_time = tab_cntrl(32)   ????
     104  start_time = tab_cntrl(32)
    102105
    103106!-------------------------------------------------------------------------------
  • LMDZ5/branches/testing/libf/dyn3dmem/dynredem_loc.F90

    r2594 r2641  
    1313                    NF90_CLOSE,  NF90_PUT_ATT, NF90_UNLIMITED, NF90_CLOBBER
    1414  USE dynredem_mod, ONLY: cre_var, put_var, err, modname, fil
     15  USE comvert_mod, ONLY: ap,bp,aps,bps,presnivs,pseudoalt,pa,preff, &
     16                         nivsig,nivsigs
     17  USE comconst_mod, ONLY: cpp, daysec, dtvr, g, kappa, omeg, rad
     18  USE logic_mod, ONLY: fxyhypb, ysinus
     19  USE serre_mod, ONLY: clon,clat,grossismx,grossismy,dzoomx,dzoomy, &
     20                       taux,tauy
     21  USE temps_mod, ONLY: annee_ref, day_ref, itau_dyn, itaufin, start_time
     22  USE ener_mod, ONLY: etot0,ptot0,ztot0,stot0,ang0
     23
    1524  IMPLICIT NONE
    1625  include "dimensions.h"
    1726  include "paramet.h"
    18   include "comconst.h"
    19   include "comvert.h"
    2027  include "comgeom.h"
    21   include "temps.h"
    22   include "ener.h"
    23   include "logic.h"
    2428  include "description.h"
    25   include "serre.h"
    2629  include "iniprint.h"
    2730!===============================================================================
     
    176179  USE dynredem_mod, ONLY: dynredem_write_u, dynredem_write_v, dynredem_read_u, &
    177180                          err, modname, fil, msg
     181  USE temps_mod, ONLY: itau_dyn, itaufin
     182 
    178183  IMPLICIT NONE
    179184  include "dimensions.h"
    180185  include "paramet.h"
    181186  include "description.h"
    182   include "comvert.h"
    183187  include "comgeom.h"
    184   include "temps.h"
    185188  include "iniprint.h"
    186189!===============================================================================
  • LMDZ5/branches/testing/libf/dyn3dmem/exner_hyb_loc_m.F90

    r2056 r2641  
    3535    USE mod_filtreg_p
    3636    USE write_field_loc
     37    USE comconst_mod, ONLY: cpp, kappa, r, jmp1
     38    USE comvert_mod, ONLY: preff
     39   
     40    IMPLICIT NONE
    3741    !
    3842    include "dimensions.h"
    3943    include "paramet.h"
    40     include "comconst.h"
    4144    include "comgeom.h"
    42     include "comvert.h"
    43     include "serre.h"
    4445
    4546    INTEGER  ngrid
  • LMDZ5/branches/testing/libf/dyn3dmem/exner_milieu_loc_m.F90

    r2056 r2641  
    3131    USE parallel_lmdz
    3232    USE mod_filtreg_p
     33    USE comconst_mod, ONLY: cpp, kappa, r, jmp1
     34    USE comvert_mod, ONLY: preff
     35   
     36    IMPLICIT NONE
    3337    !
    3438    include "dimensions.h"
    3539    include "paramet.h"
    36     include "comconst.h"
    3740    include "comgeom.h"
    38     include "comvert.h"
    39     include "serre.h"
    4041
    4142    INTEGER  ngrid
  • LMDZ5/branches/testing/libf/dyn3dmem/friction_loc.F

    r1910 r2641  
    1212      USE ioipsl_getincom
    1313#endif
     14      USE comconst_mod, ONLY: pi
    1415      IMPLICIT NONE
    1516
     
    2627!=======================================================================
    2728
    28 #include "dimensions.h"
    29 #include "paramet.h"
    30 #include "comgeom2.h"
    31 #include "comconst.h"
    32 #include "iniprint.h"
    33 #include "academic.h"
     29      include "dimensions.h"
     30      include "paramet.h"
     31      include "comgeom2.h"
     32      include "iniprint.h"
     33      include "academic.h"
    3434
    3535! arguments:
  • LMDZ5/branches/testing/libf/dyn3dmem/gcm.F90

    r2488 r2641  
    2121  USE iniphysiq_mod, ONLY: iniphysiq
    2222#endif
     23  USE comconst_mod, ONLY: cpp, daysec, dtphys, dtvr, g, r, rad
     24  USE logic_mod ! all of it, because of copyin clause when calling leapfrog
     25  USE temps_mod, ONLY: calend,start_time,annee_ref,day_ref, &
     26                       itau_dyn,itau_phy,day_ini,jD_ref,jH_ref,day_end, &
     27                       dt,hour_ini,itaufin
     28
    2329  IMPLICIT NONE
    2430
     
    5460  include "dimensions.h"
    5561  include "paramet.h"
    56   include "comconst.h"
    5762  include "comdissnew.h"
    58   include "comvert.h"
    5963  include "comgeom.h"
    60   include "logic.h"
    61   include "temps.h"
    62   include "ener.h"
    6364  include "description.h"
    64   include "serre.h"
    65   !include "com_io_dyn.h"
    6665  include "iniprint.h"
    6766  include "tracstoke.h"
     
    452451  !       write(78,*) 'q',q
    453452
    454   !$OMP PARALLEL DEFAULT(SHARED) COPYIN(/temps/,/logici/,/logicl/)
     453  !!$OMP PARALLEL DEFAULT(SHARED) COPYIN(/temps/,/logici/,/logicl/)
     454  !$OMP PARALLEL DEFAULT(SHARED) &
     455  !     Copy all threadprivate variables in temps_mod
     456  !$OMP COPYIN(dt,jD_ref,jH_ref,start_time,hour_ini,day_ini,day_end) &
     457  !$OMP COPYIN(annee_ref,day_ref,itau_dyn,itau_phy,itaufin,calend) &
     458  !     Copy all threadprivate variables from logic_mod
     459  !$OMP COPYIN(purmats,forward,leapf,apphys,statcl,conser,apdiss,apdelq) &
     460  !$OMP COPYIN(saison,ecripar,fxyhypb,ysinus,read_start,ok_guide) &
     461  !$OMP COPYIN(ok_strato,ok_gradsfile,ok_limit,ok_etat0) &
     462  !$OMP COPYIN(iflag_phys,iflag_trac)
    455463  CALL leapfrog_loc(ucov,vcov,teta,ps,masse,phis,q,time_0)
    456464  !$OMP END PARALLEL
  • LMDZ5/branches/testing/libf/dyn3dmem/geopot_loc.F

    r1910 r2641  
    2626c   -------------
    2727
    28 #include "dimensions.h"
    29 #include "paramet.h"
    30 #include "comvert.h"
     28      include "dimensions.h"
     29      include "paramet.h"
    3130
    3231c   Arguments:
  • LMDZ5/branches/testing/libf/dyn3dmem/groupe_loc.F

    r2471 r2641  
    33      USE Write_field_loc
    44      USE groupe_mod
     5      USE comconst_mod, ONLY: ngroup
    56      implicit none
    67
     
    1617c   pas besoin de w en entree.
    1718
    18 #include "dimensions.h"
    19 #include "paramet.h"
    20 #include "comconst.h"
    21 #include "comgeom2.h"
    22 #include "comvert.h"
     19      include "dimensions.h"
     20      include "paramet.h"
     21      include "comgeom2.h"
    2322
    2423!     integer ngroup
  • LMDZ5/branches/testing/libf/dyn3dmem/groupeun_loc.F

    r2471 r2641  
    22      USE parallel_lmdz
    33      USE Write_Field_p
     4      USE comconst_mod, ONLY: ngroup
    45      IMPLICIT NONE
    56
    6 #include "dimensions.h"
    7 #include "paramet.h"
    8 #include "comconst.h"
    9 #include "comgeom2.h"
     7      include "dimensions.h"
     8      include "paramet.h"
     9      include "comgeom2.h"
    1010
    1111      INTEGER jjmax,llmax,sb,se,jjb,jje
     
    136136
    137137      USE parallel_lmdz
     138      USE comconst_mod, ONLY: ngroup
    138139      IMPLICIT NONE
    139140
    140 #include "dimensions.h"
    141 #include "paramet.h"
    142 #include "comconst.h"
    143 #include "comgeom2.h"
     141      include "dimensions.h"
     142      include "paramet.h"
     143      include "comgeom2.h"
    144144
    145145!     INTEGER ngroup
  • LMDZ5/branches/testing/libf/dyn3dmem/guide_loc_mod.F90

    r2298 r2641  
    6969  SUBROUTINE guide_init
    7070
    71     USE control_mod
     71    USE control_mod, ONLY: day_step
     72    USE serre_mod, ONLY: grossismx
    7273
    7374    IMPLICIT NONE
     
    7677    INCLUDE "paramet.h"
    7778    INCLUDE "netcdf.inc"
    78 
    79     ! For grossismx:
    80     include "serre.h"
    8179
    8280    INTEGER                :: error,ncidpl,rid,rcod
     
    346344    USE control_mod
    347345    USE write_field_loc
     346    USE comconst_mod, ONLY: cpp, daysec, dtvr, kappa
     347    USE comvert_mod, ONLY: ap, bp, preff, presnivs, pressure_exner
    348348   
    349349    IMPLICIT NONE
     
    351351    INCLUDE "dimensions.h"
    352352    INCLUDE "paramet.h"
    353     INCLUDE "comconst.h"
    354     INCLUDE "comvert.h"
    355353
    356354    ! Variables entree
     
    748746  SUBROUTINE guide_zonave_u(typ,vsize,field)
    749747
     748    USE comconst_mod, ONLY: pi
     749   
    750750    IMPLICIT NONE
    751751
     
    753753    INCLUDE "paramet.h"
    754754    INCLUDE "comgeom.h"
    755     INCLUDE "comconst.h"
    756755   
    757756    ! input/output variables
     
    819818  SUBROUTINE guide_zonave_v(typ,hsize,vsize,field)
    820819
     820    USE comconst_mod, ONLY: pi
     821   
    821822    IMPLICIT NONE
    822823
     
    824825    INCLUDE "paramet.h"
    825826    INCLUDE "comgeom.h"
    826     INCLUDE "comconst.h"
    827827   
    828828    ! input/output variables
     
    890890  USE mod_hallo
    891891  USE Bands
     892  USE comconst_mod, ONLY: cpp, kappa
     893  USE comvert_mod, ONLY: preff, pressure_exner, bp, ap, disvert_type
    892894  IMPLICIT NONE
    893895
    894896  include "dimensions.h"
    895897  include "paramet.h"
    896   include "comvert.h"
    897898  include "comgeom2.h"
    898   include "comconst.h"
    899899
    900900  REAL, DIMENSION (iip1,jjb_u:jje_u),     INTENT(IN) :: psi ! Psol gcm
     
    10121012!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    10131013        DO l=1,llm
    1014             DO j=jjbu,jjeu
    1015                 DO i =1, iip1
     1014            DO j=jjbu,jjeu
     1015                DO i =1, iip1
    10161016                    pls(i,j,l)=(ap(l)+ap(l+1))/2.+psi(i,j)*(bp(l)+bp(l+1))/2.
    10171017                ENDDO
     
    10301030   DO l = 1, llm
    10311031       DO j=jjbu,jjeu
    1032         DO i =1, iip1
    1033             pls(i,j,l) = preff * ( pk(i,j,l)/cpp) ** unskap
    1034         ENDDO
     1032           DO i =1, iip1
     1033               pls(i,j,l) = preff * ( pk(i,j,l)/cpp) ** unskap
     1034           ENDDO
    10351035       ENDDO
    10361036   ENDDO
     
    13021302        ! Calcul des nouvelles valeurs des niveaux de pression du guidage
    13031303        IF (guide_plevs.EQ.1) THEN
    1304         CALL Register_Hallo_u(psnat1,1,1,2,2,1,Req)
    1305         CALL Register_Hallo_u(psnat2,1,1,2,2,1,Req)
    1306         CALL SendRequest(Req)
    1307 !$OMP BARRIER
    1308         CALL WaitRequest(Req)
     1304        CALL Register_Hallo_u(psnat1,1,1,2,2,1,Req)
     1305        CALL Register_Hallo_u(psnat2,1,1,2,2,1,Req)
     1306        CALL SendRequest(Req)
     1307!$OMP BARRIER
     1308        CALL WaitRequest(Req)
    13091309!$OMP BARRIER
    13101310!$OMP DO
     
    13201320            ENDDO
    13211321        ELSE IF (guide_plevs.EQ.2) THEN
    1322         CALL Register_Hallo_u(pnat1,llm,1,2,2,1,Req)
    1323         CALL Register_Hallo_u(pnat2,llm,1,2,2,1,Req)
    1324         CALL SendRequest(Req)
    1325 !$OMP BARRIER
    1326         CALL WaitRequest(Req)
     1322        CALL Register_Hallo_u(pnat1,llm,1,2,2,1,Req)
     1323        CALL Register_Hallo_u(pnat2,llm,1,2,2,1,Req)
     1324        CALL SendRequest(Req)
     1325!$OMP BARRIER
     1326        CALL WaitRequest(Req)
    13271327!$OMP BARRIER
    13281328!$OMP DO
     
    13701370! Calcul des constantes de rappel alpha (=1/tau)
    13711371
     1372    use comconst_mod, only: pi
     1373    use serre_mod, only: clat, clon, grossismx, grossismy
     1374   
    13721375    implicit none
    13731376
    13741377    include "dimensions.h"
    13751378    include "paramet.h"
    1376     include "comconst.h"
    13771379    include "comgeom2.h"
    1378     include "serre.h"
    13791380
    13801381! input arguments :
     
    21272128    USE parallel_lmdz
    21282129    USE mod_hallo, ONLY : gather_field_u, gather_field_v
     2130    USE comconst_mod, ONLY: pi
     2131    USE comvert_mod, ONLY: presnivs
    21292132    IMPLICIT NONE
    21302133
     
    21332136    INCLUDE "netcdf.inc"
    21342137    INCLUDE "comgeom2.h"
    2135     INCLUDE "comconst.h"
    2136     INCLUDE "comvert.h"
    21372138   
    21382139    ! Variables entree
  • LMDZ5/branches/testing/libf/dyn3dmem/iniacademic_loc.F90

    r2298 r2641  
    1818#endif
    1919  USE Write_Field
     20  USE comconst_mod, ONLY: cpp, kappa, g, daysec, dtvr, pi, im, jm
     21  USE logic_mod, ONLY: iflag_phys, read_start
     22  USE comvert_mod, ONLY: ap, bp, preff, presnivs, pressure_exner
     23  USE temps_mod, ONLY: annee_ref, day_ini, day_ref
     24  USE ener_mod, ONLY: etot0,ptot0,ztot0,stot0,ang0
     25
    2026
    2127  !   Author:    Frederic Hourdin      original: 15/01/93
     
    3036  include "dimensions.h"
    3137  include "paramet.h"
    32   include "comvert.h"
    33   include "comconst.h"
    3438  include "comgeom.h"
    3539  include "academic.h"
    36   include "ener.h"
    37   include "temps.h"
    3840  include "iniprint.h"
    39   include "logic.h"
    4041
    4142  !   Arguments:
  • LMDZ5/branches/testing/libf/dyn3dmem/initdynav_loc.F

    r2488 r2641  
    1414       use com_io_dyn_mod, only : histaveid,histvaveid,histuaveid,       &
    1515     &        dynhistave_file,dynhistvave_file,dynhistuave_file
     16       USE comconst_mod, ONLY: pi
     17       USE comvert_mod, ONLY: presnivs
     18       USE temps_mod, ONLY: itau_dyn
     19       
    1620       implicit none
    1721
     
    4145C
    4246C   Declarations
    43 #include "dimensions.h"
    44 #include "paramet.h"
    45 #include "comconst.h"
    46 #include "comvert.h"
    47 #include "comgeom.h"
    48 #include "temps.h"
    49 #include "ener.h"
    50 #include "logic.h"
    51 #include "description.h"
    52 #include "serre.h"
    53 #include "iniprint.h"
     47      include "dimensions.h"
     48      include "paramet.h"
     49      include "comgeom.h"
     50      include "description.h"
     51      include "iniprint.h"
    5452
    5553C   Arguments
  • LMDZ5/branches/testing/libf/dyn3dmem/initfluxsto_p.F

    r1910 r2641  
    1313       use Write_field
    1414       use misc_mod
     15       USE comconst_mod, ONLY: pi
     16       USE comvert_mod, ONLY: nivsigs
     17       USE temps_mod, ONLY: annee_ref, day_ref, itau_dyn
    1518       
    1619      implicit none
     
    4346C
    4447C   Declarations
    45 #include "dimensions.h"
    46 #include "paramet.h"
    47 #include "comconst.h"
    48 #include "comvert.h"
    49 #include "comgeom.h"
    50 #include "temps.h"
    51 #include "ener.h"
    52 #include "logic.h"
    53 #include "description.h"
    54 #include "serre.h"
    55 #include "iniprint.h"
     48      include "dimensions.h"
     49      include "paramet.h"
     50      include "comgeom.h"
     51      include "description.h"
     52      include "iniprint.h"
    5653
    5754C   Arguments
     
    106103      CALL ymds2ju(zan, 1, idayref, 0.0, zjulian)
    107104      tau0 = itau_dyn
    108        
    109         do jj = 1, jjp1
     105       
     106        do jj = 1, jjp1
    110107        do ii = 1, iip1
    111108          rlong(ii,jj) = rlonu(ii) * 180. / pi
     
    165162     .             1, iip1, 1, jjn,tau0, zjulian, tstep, vhoriid,
    166163     .             filevid,dynv_domain_id)
    167        
    168       rl(1,1) = 1.     
     164       
     165      rl(1,1) = 1.
    169166     
    170167      if (mpi_rank==0) then
     
    191188      call histhori(fileid, iip1, rlong(:,jjb:jje),jjn,rlat(:,jjb:jje),
    192189     .             'scalar','Grille points scalaires', thoriid)
    193        
     190       
    194191C
    195192C  Appel a histvert pour la grille verticale
     
    211208C
    212209C  Appels a histdef pour la definition des variables a sauvegarder
    213        
    214         CALL histdef(fileid, "phis", "Surface geop. height", "-",
     210       
     211        CALL histdef(fileid, "phis", "Surface geop. height", "-",
    215212     .                iip1,jjn,thoriid, 1,1,1, -99, 32,
    216213     .                "once", t_ops, t_wrt)
     
    219216     .                iip1,jjn,thoriid, 1,1,1, -99, 32,
    220217     .                "once", t_ops, t_wrt)
    221        
     218       
    222219        if (mpi_rank==0) then
    223        
    224         CALL histdef(filedid, "dtvr", "tps dyn", "s",
     220       
     221        CALL histdef(filedid, "dtvr", "tps dyn", "s",
    225222     .                1,1,dhoriid, 1,1,1, -99, 32,
    226223     .                "once", t_ops, t_wrt)
     
    289286        if (mpi_rank==0) call histsync(filedid)
    290287      endif
    291        
     288       
    292289#else
    293290      write(lunout,*)'initfluxsto_p: Needs IOIPSL to function'
  • LMDZ5/branches/testing/libf/dyn3dmem/inithist_loc.F

    r2488 r2641  
    1414       use com_io_dyn_mod, only : histid,histvid,histuid,               &
    1515     &                        dynhist_file,dynhistv_file,dynhistu_file
     16       USE comconst_mod, ONLY: pi
     17       USE comvert_mod, ONLY: presnivs
     18       USE temps_mod, ONLY: itau_dyn
     19       
    1620       implicit none
    1721
     
    4044C
    4145C   Declarations
    42 #include "dimensions.h"
    43 #include "paramet.h"
    44 #include "comconst.h"
    45 #include "comvert.h"
    46 #include "comgeom.h"
    47 #include "temps.h"
    48 #include "ener.h"
    49 #include "logic.h"
    50 #include "description.h"
    51 #include "serre.h"
    52 #include "iniprint.h"
     46      include "dimensions.h"
     47      include "paramet.h"
     48      include "comgeom.h"
     49      include "description.h"
     50      include "iniprint.h"
    5351
    5452C   Arguments
  • LMDZ5/branches/testing/libf/dyn3dmem/integrd_loc.F

    r2488 r2641  
    1212      USE integrd_mod
    1313      USE infotrac, ONLY: ok_iso_verif ! ajout CRisi
     14      USE comconst_mod, ONLY: pi
     15      USE logic_mod, ONLY: leapf
     16      USE comvert_mod, ONLY: ap, bp
     17      USE temps_mod, ONLY: dt
     18     
    1419      IMPLICIT NONE
    1520
     
    3035c   -------------
    3136
    32 #include "dimensions.h"
    33 #include "paramet.h"
    34 #include "comconst.h"
    35 #include "comgeom.h"
    36 #include "comvert.h"
    37 #include "logic.h"
    38 #include "temps.h"
    39 #include "serre.h"
    40 #include "iniprint.h"
    41 !      include 'mpif.h'
     37      include "dimensions.h"
     38      include "paramet.h"
     39      include "comgeom.h"
     40      include "iniprint.h"
    4241
    4342c   Arguments:
     
    335334      ije=ij_end
    336335
    337         if (planet_type.eq."earth") then
     336        if (planet_type.eq."earth") then
    338337! Earth-specific treatment of first 2 tracers (water)
    339338c$OMP BARRIER
     
    452451          DO l = 1, llm
    453452            massem1(ijb:ije,l)=massescr(ijb:ije,l)
    454           ENDDO
    455 c$OMP END DO NOWAIT      
     453          ENDDO
     454c$OMP END DO NOWAIT         
    456455      END IF
    457456c$OMP BARRIER
  • LMDZ5/branches/testing/libf/dyn3dmem/leapfrog_loc.F

    r2488 r2641  
    3232       use exner_hyb_loc_m, only: exner_hyb_loc
    3333       use exner_milieu_loc_m, only: exner_milieu_loc
     34       USE comconst_mod, ONLY: cpp, dtvr, ihf
     35       USE comvert_mod, ONLY: ap, bp, pressure_exner
     36       USE logic_mod, ONLY: iflag_phys,ok_guide,forward,leapf,apphys,
     37     &                      statcl,conser,apdiss,purmats,ok_strato
     38       USE temps_mod, ONLY: itaufin,jD_ref,jH_ref,day_ini,
     39     &                        day_ref,start_time,dt
     40       
    3441      IMPLICIT NONE
    3542
     
    6572c   -------------
    6673
    67 #include "dimensions.h"
    68 #include "paramet.h"
    69 #include "comconst.h"
    70 #include "comdissnew.h"
    71 #include "comvert.h"
    72 #include "comgeom.h"
    73 #include "logic.h"
    74 #include "temps.h"
    75 #include "ener.h"
    76 #include "description.h"
    77 #include "serre.h"
    78 !#include "com_io_dyn.h"
    79 #include "iniprint.h"
    80 #include "academic.h"
    81 !      include "mpif.h"
     74      include "dimensions.h"
     75      include "paramet.h"
     76      include "comdissnew.h"
     77      include "comgeom.h"
     78      include "description.h"
     79      include "iniprint.h"
     80      include "academic.h"
    8281     
    8382      REAL,INTENT(IN) :: time_0 ! not used
     
    472471cym      apphys = .FALSE.
    473472      statcl = .FALSE.
    474       conser = .FALSE. ! ie: no output of control variables to stdout in //
     473!     conser = .FALSE. ! ie: no output of control variables to stdout in //
    475474     
    476475      if (firstCaldyn) then
     
    700699
    701700c$OMP MASTER
     701      if (mpi_rank==0.AND.conser) THEN
     702         WRITE(lunout,*) 'leapfrog_loc, Time step: ',itau,' Day:',time
     703      ENDIF
    702704      call VTe(VTcaldyn)
    703705c$OMP END MASTER     
     
    16351637            IF( MOD(itau,iecri).EQ.0) THEN
    16361638             ! Ehouarn: output only during LF or Backward Matsuno
    1637              if (leapf.or.(.not.leapf.and.(.not.forward))) then
     1639             if (leapf.or.(.not.leapf.and.(.not.forward))) then
    16381640
    16391641c$OMP BARRIER
     
    16451647#ifdef CPP_IOIPSL
    16461648             if (ok_dyn_ins) then
    1647                  CALL writehist_loc(itau,vcov,ucov,teta,pk,phi,q,
     1649                 CALL writehist_loc(itau,vcov,ucov,teta,pk,phi,q,
    16481650     &                              masse,ps,phis)
    16491651             endif
  • LMDZ5/branches/testing/libf/dyn3dmem/massbarxy_loc.F90

    r2408 r2641  
    1010  include "dimensions.h"
    1111  include "paramet.h"
    12   include "comconst.h"
    1312  include "comgeom.h"
    1413!===============================================================================
  • LMDZ5/branches/testing/libf/dyn3dmem/massdair_loc.F

    r1910 r2641  
    1616      IMPLICIT NONE
    1717c
    18 #include "dimensions.h"
    19 #include "paramet.h"
    20 #include "comconst.h"
    21 #include "comgeom.h"
     18      include "dimensions.h"
     19      include "paramet.h"
     20      include "comgeom.h"
    2221c
    2322c  .....   arguments  ....
  • LMDZ5/branches/testing/libf/dyn3dmem/mod_hallo.F90

    r2471 r2641  
    14111411         
    14121412#ifdef CPP_MPI
    1413          call MPI_ISSEND(Buffer(req%Pos),SizeBuffer,MPI_REAL_LMDZ,rank,a_request%tag+1000*omp_rank,     &
     1413         call MPI_ISEND(Buffer(req%Pos),SizeBuffer,MPI_REAL_LMDZ,rank,a_request%tag+1000*omp_rank,     &
    14141414                         COMM_LMDZ,Req%MSG_Request,ierr)
    14151415#endif
  • LMDZ5/branches/testing/libf/dyn3dmem/parallel_lmdz.F90

    r2056 r2641  
    575575!$OMP CRITICAL (MPI)
    576576#ifdef CPP_MPI
    577           call MPI_ISSEND(Buffer_send_up,Buffer_Size,MPI_REAL8,MPI_Rank-1,1,     &
     577          call MPI_ISEND(Buffer_send_up,Buffer_Size,MPI_REAL8,MPI_Rank-1,1,     &
    578578                          COMM_LMDZ,Request(NbRequest),ierr)
    579579#endif
     
    590590!$OMP CRITICAL (MPI)
    591591#ifdef CPP_MPI
    592           call MPI_ISSEND(Buffer_send_down,Buffer_Size,MPI_REAL8,MPI_Rank+1,1,     &
     592          call MPI_ISEND(Buffer_send_down,Buffer_Size,MPI_REAL8,MPI_Rank+1,1,     &
    593593                          COMM_LMDZ,Request(NbRequest),ierr)
    594594#endif
  • LMDZ5/branches/testing/libf/dyn3dmem/qminimum_loc.F

    r2298 r2641  
    77c             pour l'eau vapeur et l'eau liquide
    88c
    9 #include "dimensions.h"
    10 #include "paramet.h"
    11 #include "comvert.h"
     9      include "dimensions.h"
     10      include "paramet.h"
    1211c
    1312      INTEGER nqtot ! CRisi: on remplace nq par nqtot
  • LMDZ5/branches/testing/libf/dyn3dmem/sw_case_williamson91_6_loc.F

    r1910 r2641  
    2727c=======================================================================
    2828      USE parallel_lmdz
     29      USE comconst_mod, ONLY: cpp, omeg, rad
     30      USE comvert_mod, ONLY: ap, bp, preff
    2931
    3032      IMPLICIT NONE
     
    3335c   ---------------
    3436
    35 #include "dimensions.h"
    36 #include "paramet.h"
    37 #include "comvert.h"
    38 #include "comconst.h"
    39 #include "comgeom.h"
    40 #include "iniprint.h"
     37      include "dimensions.h"
     38      include "paramet.h"
     39      include "comgeom.h"
     40      include "iniprint.h"
    4141
    4242c   Arguments:
  • LMDZ5/branches/testing/libf/dyn3dmem/top_bound_loc.F

    r1910 r2641  
    44      SUBROUTINE top_bound_loc(vcov,ucov,teta,masse,dt)
    55      USE parallel_lmdz
     6      USE comconst_mod, ONLY: iflag_top_bound, mode_top_bound,
     7     &                        tau_top_bound
     8      USE comvert_mod, ONLY: presnivs, preff, scaleheight
     9
    610      IMPLICIT NONE
    711c
    8 #include "dimensions.h"
    9 #include "paramet.h"
    10 #include "comconst.h"
    11 #include "comvert.h"
    12 #include "comgeom2.h"
     12      include "dimensions.h"
     13      include "paramet.h"
     14      include "comgeom2.h"
    1315
    1416
     
    4042! NB: top_bound sponge is only called from leapfrog if ok_strato=.true.
    4143
    42 ! sponge parameters: (loaded/set in conf_gcm.F ; stored in comconst.h)
     44! sponge parameters: (loaded/set in conf_gcm.F ; stored in comconst_mod)
    4345!    iflag_top_bound=0 for no sponge
    4446!    iflag_top_bound=1 for sponge over 4 topmost layers
     
    7476      REAL tzon(jjb_u:jje_u,llm)
    7577     
    76       integer i 
     78      integer i
    7779      REAL,SAVE :: rdamp(llm)
    7880      real,save :: lambda(llm) ! inverse or quenching time scale (Hz)
  • LMDZ5/branches/testing/libf/dyn3dmem/tourpot_loc.F90

    r2408 r2641  
    1111  include "paramet.h"
    1212  include "comgeom.h"
    13   include "logic.h"
    1413!===============================================================================
    1514! Arguments:
  • LMDZ5/branches/testing/libf/dyn3dmem/vitvert_loc.F90

    r2408 r2641  
    66! Purpose: Compute vertical speed at sigma levels.
    77  USE parallel_lmdz
     8  USE comvert_mod, ONLY: bp
     9 
    810  IMPLICIT NONE
    911  include "dimensions.h"
    1012  include "paramet.h"
    11   include "comvert.h"
    1213!===============================================================================
    1314! Arguments:
  • LMDZ5/branches/testing/libf/dyn3dmem/vlsplt_loc.F

    r2298 r2641  
    1717      IMPLICIT NONE
    1818c
    19 #include "dimensions.h"
    20 #include "paramet.h"
    21 #include "logic.h"
    22 #include "comvert.h"
    23 #include "comconst.h"
     19      include "dimensions.h"
     20      include "paramet.h"
    2421c
    2522c
     
    417414      USE parallel_lmdz
    418415      USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils ! CRisi
     416      USE comconst_mod, ONLY: pi
    419417      IMPLICIT NONE
    420418c
    421 #include "dimensions.h"
    422 #include "paramet.h"
    423 #include "logic.h"
    424 #include "comvert.h"
    425 #include "comconst.h"
    426 #include "comgeom.h"
     419      include "dimensions.h"
     420      include "paramet.h"
     421      include "comgeom.h"
    427422c
    428423c
     
    875870      IMPLICIT NONE
    876871c
    877 #include "dimensions.h"
    878 #include "paramet.h"
    879 #include "logic.h"
    880 #include "comvert.h"
    881 #include "comconst.h"
     872      include "dimensions.h"
     873      include "paramet.h"
    882874c
    883875c
  • LMDZ5/branches/testing/libf/dyn3dmem/vlspltgen_loc.F

    r2298 r2641  
    3131     &    ok_iso_verif
    3232      USE vlspltgen_mod
     33      USE comconst_mod, ONLY: cpp
    3334      IMPLICIT NONE
    3435
    3536c
    36 #include "dimensions.h"
    37 #include "paramet.h"
    38 #include "logic.h"
    39 #include "comvert.h"
    40 #include "comconst.h"
     37      include "dimensions.h"
     38      include "paramet.h"
    4139
    4240c
     
    10098
    10199       
    102         ijb=ij_begin-iip1
    103         ije=ij_end+iip1
    104         if (pole_nord) ijb=ij_begin
    105         if (pole_sud) ije=ij_end
    106        
     100        ijb=ij_begin-iip1
     101        ije=ij_end+iip1
     102        if (pole_nord) ijb=ij_begin
     103        if (pole_sud) ije=ij_end
     104       
    107105c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    108         DO l = 1, llm
     106        DO l = 1, llm
    109107         DO ij = ijb, ije
    110108          tempe(ij) = teta(ij,l) * pk(ij,l) /cpp
     
    208206#endif
    209207        if(iadv(iq) == 0) then
    210        
    211           cycle
    212        
    213         else if (iadv(iq)==10) then
     208       
     209          cycle
     210       
     211        else if (iadv(iq)==10) then
    214212
    215213#ifdef _ADV_HALO       
    216214! CRisi: on ajoute les nombres de fils et tableaux des fils
    217215! On suppose qu'on ne peut advecter les fils que par le schéma 10. 
    218           call vlx_loc(zq,pente_max,zm,mu,
    219      &               ij_begin,ij_begin+2*iip1-1,iq)
     216          call vlx_loc(zq,pente_max,zm,mu,
     217     &                     ij_begin,ij_begin+2*iip1-1,iq)
    220218          call vlx_loc(zq,pente_max,zm,mu,
    221219     &               ij_end-2*iip1+1,ij_end,iq)
    222220#else
    223           call vlx_loc(zq,pente_max,zm,mu,
    224      &               ij_begin,ij_end,iq)
     221          call vlx_loc(zq,pente_max,zm,mu,
     222     &                     ij_begin,ij_end,iq)
    225223#endif
    226224
     
    240238          call VTe(VTHallo)
    241239c$OMP END MASTER
    242         else if (iadv(iq)==14) then
     240        else if (iadv(iq)==14) then
    243241
    244242#ifdef _ADV_HALO           
     
    268266c$OMP END MASTER
    269267        else
    270        
    271           stop 'vlspltgen_p : schema non parallelise'
     268       
     269          stop 'vlspltgen_p : schema non parallelise'
    272270     
    273271        endif
     
    301299
    302300        if(iadv(iq) == 0) then
    303        
    304           cycle
    305        
    306         else if (iadv(iq)==10) then
     301       
     302          cycle
     303       
     304        else if (iadv(iq)==10) then
    307305
    308306#ifdef _ADV_HALLO
     
    310308     &                 ij_begin+2*iip1,ij_end-2*iip1,iq)
    311309#endif       
    312         else if (iadv(iq)==14) then
     310        else if (iadv(iq)==14) then
    313311#ifdef _ADV_HALLO
    314312          call vlxqs_loc(zq,pente_max,zm,mu,
     
    316314#endif   
    317315        else
    318        
    319           stop 'vlspltgen_p : schema non parallelise'
     316       
     317          stop 'vlspltgen_p : schema non parallelise'
    320318     
    321319        endif
     
    358356
    359357        if(iadv(iq) == 0) then
    360        
    361           cycle
    362        
    363         else if (iadv(iq)==10) then
     358       
     359          cycle
     360       
     361        else if (iadv(iq)==10) then
    364362       
    365363          call vly_loc(zq,pente_max,zm,mv,iq)
    366364 
    367         else if (iadv(iq)==14) then
     365        else if (iadv(iq)==14) then
    368366     
    369367          call vlyqs_loc(zq,pente_max,zm,mv,
     
    371369 
    372370        else
    373        
    374           stop 'vlspltgen_p : schema non parallelise'
     371       
     372          stop 'vlspltgen_p : schema non parallelise'
    375373     
    376374        endif
     
    389387#endif
    390388        if(iadv(iq) == 0) then
    391          
    392           cycle
    393        
    394         else if (iadv(iq)==10 .or. iadv(iq)==14 ) then
     389         
     390          cycle
     391       
     392        else if (iadv(iq)==10 .or. iadv(iq)==14 ) then
    395393
    396394c$OMP BARRIER       
     
    420418c$OMP MASTER
    421419          call VTe(VTHallo)
    422 c$OMP END MASTER       
     420c$OMP END MASTER       
    423421c$OMP BARRIER
    424422        else
    425        
    426           stop 'vlspltgen_p : schema non parallelise'
     423       
     424          stop 'vlspltgen_p : schema non parallelise'
    427425     
    428426        endif
     
    439437c$OMP MASTER
    440438      call VTe(VTHallo)
    441 c$OMP END MASTER       
     439c$OMP END MASTER       
    442440
    443441
     
    451449
    452450        if(iadv(iq) == 0) then
    453          
    454           cycle
    455        
    456         else if (iadv(iq)==10 .or. iadv(iq)==14 ) then
     451         
     452          cycle
     453       
     454        else if (iadv(iq)==10 .or. iadv(iq)==14 ) then
    457455c$OMP BARRIER       
    458456
     
    464462c$OMP BARRIER       
    465463        else
    466        
    467           stop 'vlspltgen_p : schema non parallelise'
     464       
     465          stop 'vlspltgen_p : schema non parallelise'
    468466     
    469467        endif
     
    501499#endif
    502500        if(iadv(iq) == 0) then
    503        
    504           cycle
    505        
    506         else if (iadv(iq)==10) then
     501       
     502          cycle
     503       
     504        else if (iadv(iq)==10) then
    507505       
    508506          call vly_loc(zq,pente_max,zm,mv,iq)
    509507 
    510         else if (iadv(iq)==14) then
     508        else if (iadv(iq)==14) then
    511509     
    512510          call vlyqs_loc(zq,pente_max,zm,mv,
     
    514512 
    515513        else
    516        
    517           stop 'vlspltgen_p : schema non parallelise'
     514       
     515          stop 'vlspltgen_p : schema non parallelise'
    518516     
    519517        endif
     
    532530#endif
    533531        if(iadv(iq) == 0) then
    534          
    535           cycle
    536        
    537         else if (iadv(iq)==10) then
     532         
     533          cycle
     534       
     535        else if (iadv(iq)==10) then
    538536       
    539537          call vlx_loc(zq,pente_max,zm,mu,
    540538     &               ij_begin,ij_end,iq)
    541539 
    542         else if (iadv(iq)==14) then
     540        else if (iadv(iq)==14) then
    543541     
    544542          call vlxqs_loc(zq,pente_max,zm,mu,
     
    546544 
    547545        else
    548        
     546       
    549547          stop 'vlspltgen_p : schema non parallelise'
    550548     
     
    574572           DO ij=ijb,ije
    575573c             print *,'zq-->',ij,l,iq,zq(ij,l,iq)
    576 c            print *,'q-->',ij,l,iq,q(ij,l,iq)
    577              q(ij,l,iq)=zq(ij,l,iq)
     574c             print *,'q-->',ij,l,iq,q(ij,l,iq)
     575             q(ij,l,iq)=zq(ij,l,iq)
    578576           ENDDO
    579577        ENDDO
  • LMDZ5/branches/testing/libf/dyn3dmem/vlspltqs_loc.F

    r2298 r2641  
    1212      IMPLICIT NONE
    1313c
    14 #include "dimensions.h"
    15 #include "paramet.h"
    16 #include "logic.h"
    17 #include "comvert.h"
    18 #include "comconst.h"
     14      include "dimensions.h"
     15      include "paramet.h"
    1916c
    2017c
     
    174171c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    175172        DO l=1,llm
    176           iadvplus(ip1jm+1:ip1jmp1,l)=0
     173          iadvplus(ip1jm+1:ip1jmp1,l)=0
    177174        ENDDO
    178175c$OMP END DO NOWAIT
    179176      endif
    180        
     177             
    181178c   calcul des flux a gauche et a droite
    182179
     
    414411c    ********************************************************************
    415412c     q,masse_adv_v,w sont des arguments d'entree  pour le s-pg ....
    416 c     qsat             est   un argument de sortie pour le s-pg ....
     413c     qsat                est   un argument de sortie pour le s-pg ....
    417414c
    418415c
     
    420417      USE parallel_lmdz
    421418      USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils ! CRisi 
     419      USE comconst_mod, ONLY: pi
    422420      IMPLICIT NONE
    423421c
    424 #include "dimensions.h"
    425 #include "paramet.h"
    426 #include "logic.h"
    427 #include "comvert.h"
    428 #include "comconst.h"
    429 #include "comgeom.h"
     422      include "dimensions.h"
     423      include "paramet.h"
     424      include "comgeom.h"
    430425c
    431426c
     
    582577         dyq(ij,l)=fn*dyq(ij,l)
    583578        ENDDO
    584          
     579         
    585580      ENDIF
    586581     
     
    603598        ENDDO
    604599       
    605 c   calcul des pentes limites aux poles 
     600c   calcul des pentes limites aux poles       
    606601        fs=1.
    607602        DO ij=1,iim
     
    614609         dyq(ip1jm+ij,l)=fs*dyq(ip1jm+ij,l)
    615610        ENDDO
    616        
     611       
    617612      ENDIF
    618613
     
    779774              masse(ij,l,iq)=newmasse
    780775           ENDDO
    781          
    782          ENDIF
    783776         
    784          IF (pole_sud) THEN
    785          
    786            convps  = -SSUM(iim,qbyv(ip1jm-iim,l,iq),iq,1)/apols
     777         ENDIF
     778         
     779         IF (pole_sud) THEN
     780         
     781           convps  = -SSUM(iim,qbyv(ip1jm-iim,l,iq),iq,1)/apols
    787782           convmps = -SSUM(iim,masse_adv_v(ip1jm-iim,l),1)/apols
    788783           DO ij = ip1jm+1,ip1jmp1
     
    792787              masse(ij,l,iq)=newmasse
    793788           ENDDO
    794        
    795         ENDIF
     789       
     790        ENDIF
    796791c.-. fin ancienne version
    797792
  • LMDZ5/branches/testing/libf/dyn3dmem/writedynav_loc.F

    r2488 r2641  
    1313      USE infotrac, ONLY : nqtot, ttext
    1414      use com_io_dyn_mod, only : histaveid,histvaveid,histuaveid
     15      USE comconst_mod, ONLY: cpp
     16      USE temps_mod, ONLY: itau_dyn
     17     
    1518      implicit none
    1619
     
    4144C
    4245C   Declarations
    43 #include "dimensions.h"
    44 #include "paramet.h"
    45 #include "comconst.h"
    46 #include "comvert.h"
    47 #include "comgeom.h"
    48 #include "temps.h"
    49 #include "ener.h"
    50 #include "logic.h"
    51 #include "description.h"
    52 #include "serre.h"
    53 #include "iniprint.h"
     46      include "dimensions.h"
     47      include "paramet.h"
     48      include "comgeom.h"
     49      include "description.h"
     50      include "iniprint.h"
    5451
    5552C
  • LMDZ5/branches/testing/libf/dyn3dmem/writehist_loc.F

    r2488 r2641  
    1313      USE infotrac, ONLY : nqtot, ttext
    1414      use com_io_dyn_mod, only : histid,histvid,histuid
     15      USE comconst_mod, ONLY: cpp
     16      USE temps_mod, ONLY: itau_dyn
     17     
    1518      implicit none
    1619
     
    4144C
    4245C   Declarations
    43 #include "dimensions.h"
    44 #include "paramet.h"
    45 #include "comconst.h"
    46 #include "comvert.h"
    47 #include "comgeom.h"
    48 #include "temps.h"
    49 #include "ener.h"
    50 #include "logic.h"
    51 #include "description.h"
    52 #include "serre.h"
    53 #include "iniprint.h"
     46      include "dimensions.h"
     47      include "paramet.h"
     48      include "comgeom.h"
     49      include "description.h"
     50      include "iniprint.h"
    5451
    5552C
  • LMDZ5/branches/testing/libf/dyn3dpar/addfi_p.F

    r1999 r2641  
    4848#include "dimensions.h"
    4949#include "paramet.h"
    50 #include "comconst.h"
    5150#include "comgeom.h"
    52 #include "serre.h"
    5351c
    5452c    Arguments :
  • LMDZ5/branches/testing/libf/dyn3dpar/advect_new_p.F

    r1910 r2641  
    66      USE parallel_lmdz
    77      USE write_field_p
     8      USE comconst_mod, ONLY: daysec
     9      USE logic_mod, ONLY: conser
     10     
    811      IMPLICIT NONE
    912c=======================================================================
     
    2831#include "dimensions.h"
    2932#include "paramet.h"
    30 #include "comconst.h"
    31 #include "comvert.h"
    3233#include "comgeom.h"
    33 #include "logic.h"
    34 #include "ener.h"
    3534
    3635c   Arguments:
     
    117116                 
    118117           uav(ij,l)=0.25*(ucov(ij,l)+ucov(ij-iip1,l))
    119      .               +0.25*(ucov(ij+iip1,l)+ucov(ij,l))
     118     .                     +0.25*(ucov(ij+iip1,l)+ucov(ij,l))
    120119         ENDDO
    121120         
     
    250249      DO l=1,llm
    251250        DO ij=ijb,ije-1
    252           du(ij,l)=du(ij,l)+du2(ij,l)-du1(ij,l)
    253         ENDDO
     251          du(ij,l)=du(ij,l)+du2(ij,l)-du1(ij,l)
     252        ENDDO
    254253
    255254        DO   ij   = ijb+iip1-1, ije, iip1
     
    266265      DO l=1,llm
    267266        DO ij=ijb,ije
    268           dv(ij,l)=dv(ij,l)+dv2(ij,l)-dv1(ij,l)
    269         ENDDO
     267          dv(ij,l)=dv(ij,l)+dv2(ij,l)-dv1(ij,l)
     268        ENDDO
    270269      ENDDO
    271270c$OMP END DO NOWAIT     
     
    276275      DO l=1,llm
    277276        DO ij=ijb,ije
    278           dteta(ij,l)=dteta(ij,l)+dteta2(ij,l)-dteta1(ij,l)
    279         ENDDO
     277          dteta(ij,l)=dteta(ij,l)+dteta2(ij,l)-dteta1(ij,l)
     278        ENDDO
    280279      ENDDO
    281280c$OMP END DO NOWAIT     
  • LMDZ5/branches/testing/libf/dyn3dpar/advect_p.F

    r1910 r2641  
    55      USE parallel_lmdz
    66      USE write_field_p
     7      USE comconst_mod, ONLY: daysec
     8      USE logic_mod, ONLY: conser
     9     
    710      IMPLICIT NONE
    811c=======================================================================
     
    2730#include "dimensions.h"
    2831#include "paramet.h"
    29 #include "comconst.h"
    30 #include "comvert.h"
    3132#include "comgeom.h"
    32 #include "logic.h"
    33 #include "ener.h"
    3433
    3534c   Arguments:
     
    8685                 
    8786           uav(ij,l)=0.25*(ucov(ij,l)+ucov(ij-iip1,l))
    88      .               +0.25*(ucov(ij+iip1,l)+ucov(ij,l))
     87     .                     +0.25*(ucov(ij+iip1,l)+ucov(ij,l))
    8988         ENDDO
    9089         
  • LMDZ5/branches/testing/libf/dyn3dpar/advtrac_p.F90

    r2298 r2641  
    1919  USE infotrac, ONLY: nqtot, iadv
    2020  USE control_mod, ONLY: iapp_tracvl, day_step, planet_type
     21  USE comconst_mod, ONLY: dtvr
    2122  IMPLICIT NONE
    2223  !
    2324  include "dimensions.h"
    2425  include "paramet.h"
    25   include "comconst.h"
    26   include "comvert.h"
    2726  include "comdissip.h"
    2827  include "comgeom2.h"
    29   include "logic.h"
    30   include "temps.h"
    31   include "ener.h"
    3228  include "description.h"
    3329
  • LMDZ5/branches/testing/libf/dyn3dpar/bernoui_p.F

    r1910 r2641  
    2525#include "dimensions.h"
    2626#include "paramet.h"
    27 #include "logic.h"
    2827c
    2928c   Arguments:
  • LMDZ5/branches/testing/libf/dyn3dpar/bilan_dyn_p.F

    r1910 r2641  
    1717      use misc_mod
    1818      use write_field_p
     19      USE comconst_mod, ONLY: cpp, pi
     20      USE comvert_mod, ONLY: presnivs
     21      USE temps_mod, ONLY: annee_ref, day_ref, itau_dyn
     22     
    1923      IMPLICIT NONE
    2024
    2125#include "dimensions.h"
    2226#include "paramet.h"
    23 #include "comconst.h"
    24 #include "comvert.h"
    2527#include "comgeom2.h"
    26 #include "temps.h"
    2728#include "iniprint.h"
    2829
     
    202203
    203204!        if (i_sortie.eq.1) then
    204 !        file='dynzon'
     205!        file='dynzon'
    205206!         if (mpi_rank==0) then
    206 !        call inigrads(ifile,1
     207!        call inigrads(ifile,1
    207208!     s  ,0.,180./pi,0.,0.,jjm,rlatv,-90.,90.,180./pi
    208209!     s  ,llm,presnivs,1.
     
    568569        do l=1,llm
    569570          Q_cum(:,jjb:jje,l,iQ)=Q_cum(:,jjb:jje,l,iQ)
    570      .                          /masse_cum(:,jjb:jje,l)
     571     .                                /masse_cum(:,jjb:jje,l)
    571572        enddo
    572573!$OMP ENDDO NOWAIT
  • LMDZ5/branches/testing/libf/dyn3dpar/caladvtrac_p.F

    r1910 r2641  
    1010      USE infotrac, ONLY : nqtot
    1111      USE control_mod, ONLY : iapp_tracvl,planet_type
     12      USE comconst_mod, ONLY: dtvr
    1213c
    1314      IMPLICIT NONE
     
    2526#include "dimensions.h"
    2627#include "paramet.h"
    27 #include "comconst.h"
    2828
    2929c   Arguments:
  • LMDZ5/branches/testing/libf/dyn3dpar/caldyn_p.F

    r1999 r2641  
    1010      USE parallel_lmdz
    1111      USE Write_Field_p
     12      USE comvert_mod, ONLY: ap, bp
    1213     
    1314      IMPLICIT NONE
     
    3132#include "dimensions.h"
    3233#include "paramet.h"
    33 #include "comconst.h"
    34 #include "comvert.h"
    3534#include "comgeom.h"
    3635
  • LMDZ5/branches/testing/libf/dyn3dpar/conf_gcm.F90

    r2471 r2641  
    1616  USE infotrac, ONLY : type_trac
    1717  use assert_m, only: assert
     18  USE comconst_mod, ONLY: dissip_deltaz, dissip_factz, dissip_zref, &
     19                          iflag_top_bound, mode_top_bound, tau_top_bound, &
     20                          ngroup
     21  USE logic_mod, ONLY: fxyhypb, iflag_phys, ok_etat0, ok_gradsfile, &
     22                       ok_guide, ok_limit, ok_strato, purmats, read_start, &
     23                       ysinus
     24  USE serre_mod, ONLY: clon,clat,grossismx,grossismy,dzoomx,dzoomy, &
     25                       alphax,alphay,taux,tauy
     26  USE temps_mod, ONLY: calend
    1827
    1928  IMPLICIT NONE
     
    3443  include "dimensions.h"
    3544  include "paramet.h"
    36   include "logic.h"
    37   include "serre.h"
    3845  include "comdissnew.h"
    39   include "temps.h"
    40   include "comconst.h"
    4146  include "iniprint.h"
    4247
  • LMDZ5/branches/testing/libf/dyn3dpar/convmas1_p.F

    r1910 r2641  
    3232#include "dimensions.h"
    3333#include "paramet.h"
    34 #include "comvert.h"
    35 #include "logic.h"
    3634
    3735      REAL pbaru( ip1jmp1,llm ),pbarv( ip1jm,llm )
  • LMDZ5/branches/testing/libf/dyn3dpar/convmas2_p.F

    r1910 r2641  
    3232#include "dimensions.h"
    3333#include "paramet.h"
    34 #include "comvert.h"
    35 #include "logic.h"
    3634
    3735      REAL pbaru( ip1jmp1,llm ),pbarv( ip1jm,llm )
  • LMDZ5/branches/testing/libf/dyn3dpar/convmas_p.F

    r1910 r2641  
    3232#include "dimensions.h"
    3333#include "paramet.h"
    34 #include "comvert.h"
    35 #include "logic.h"
    3634
    3735      REAL pbaru( ip1jmp1,llm ),pbarv( ip1jm,llm )
  • LMDZ5/branches/testing/libf/dyn3dpar/dissip_p.F

    r1999 r2641  
    66      USE parallel_lmdz
    77      USE write_field_p
     8      USE comconst_mod, ONLY: dtdiss
    89      IMPLICIT NONE
    910
     
    2930#include "dimensions.h"
    3031#include "paramet.h"
    31 #include "comconst.h"
    3232#include "comgeom.h"
    3333#include "comdissnew.h"
  • LMDZ5/branches/testing/libf/dyn3dpar/divgrad_p.F

    r1910 r2641  
    2323#include "comgeom.h"
    2424#include "comdissipn.h"
    25 #include "logic.h"
    2625c
    2726      INTEGER klevel
  • LMDZ5/branches/testing/libf/dyn3dpar/dteta1_p.F

    r1910 r2641  
    2222#include "dimensions.h"
    2323#include "paramet.h"
    24 #include "logic.h"
    2524
    2625      REAL teta( ip1jmp1,llm ),pbaru( ip1jmp1,llm ),pbarv( ip1jm,llm)
  • LMDZ5/branches/testing/libf/dyn3dpar/dudv2_p.F

    r1910 r2641  
    2525#include "dimensions.h"
    2626#include "paramet.h"
    27 #include "comvert.h"
    2827
    2928      REAL teta( ip1jmp1,llm ),pkf( ip1jmp1,llm ) ,bern( ip1jmp1,llm ),
  • LMDZ5/branches/testing/libf/dyn3dpar/dynetat0.F

    r1999 r2641  
    99
    1010      use control_mod, only : planet_type
     11      USE comvert_mod, ONLY: pa,preff
     12      USE comconst_mod, ONLY: cpp, daysec, dtvr, g, im, jm, kappa,
     13     &                        lllm, omeg, rad
     14      USE logic_mod, ONLY: fxyhypb, ysinus
     15      USE serre_mod, ONLY: clon,clat,grossismx,grossismy
     16      USE temps_mod, ONLY: annee_ref,day_ref,itau_dyn,
     17     &                     start_time,day_ini,hour_ini
     18      USE ener_mod, ONLY: etot0,ptot0,ztot0,stot0,ang0
    1119
    1220      IMPLICIT NONE
     
    2937#include "dimensions.h"
    3038#include "paramet.h"
    31 #include "temps.h"
    32 #include "comconst.h"
    33 #include "comvert.h"
    3439#include "comgeom2.h"
    35 #include "ener.h"
    3640#include "netcdf.inc"
    3741#include "description.h"
    38 #include "serre.h"
    39 #include "logic.h"
    4042#include "iniprint.h"
    4143
  • LMDZ5/branches/testing/libf/dyn3dpar/dynredem.F

    r1999 r2641  
    99      USE infotrac
    1010      use netcdf95, only: NF95_PUT_VAR
     11      USE comvert_mod, ONLY: ap,bp,aps,bps,presnivs,pseudoalt,pa,preff,
     12     &                        nivsig,nivsigs
     13      USE comconst_mod, ONLY: cpp, daysec, dtvr, g, kappa, omeg, rad
     14      USE logic_mod, ONLY: fxyhypb, ysinus
     15      USE serre_mod, ONLY: clon,clat,grossismx,grossismy,dzoomx,dzoomy,
     16     &                     taux,tauy
     17      USE temps_mod, ONLY: annee_ref,day_ref,itau_dyn,itaufin,
     18     &                        start_time,hour_ini
     19      USE ener_mod, ONLY: etot0,ptot0,ztot0,stot0,ang0
    1120 
    1221      IMPLICIT NONE
     
    1827#include "dimensions.h"
    1928#include "paramet.h"
    20 #include "comconst.h"
    21 #include "comvert.h"
    2229#include "comgeom2.h"
    23 #include "temps.h"
    24 #include "ener.h"
    25 #include "logic.h"
    2630#include "netcdf.inc"
    2731#include "description.h"
    28 #include "serre.h"
    2932#include "iniprint.h"
    3033
     
    471474      use netcdf, only: NF90_get_VAR
    472475      use netcdf95, only: NF95_PUT_VAR
     476      USE temps_mod, ONLY: itau_dyn, itaufin
    473477 
    474478      IMPLICIT NONE
     
    480484#include "description.h"
    481485#include "netcdf.inc"
    482 #include "comvert.h"
    483486#include "comgeom.h"
    484 #include "temps.h"
    485487#include "iniprint.h"
    486488
  • LMDZ5/branches/testing/libf/dyn3dpar/dynredem_p.F

    r1910 r2641  
    1010      USE infotrac
    1111      use netcdf95, only: NF95_PUT_VAR
     12      USE comvert_mod, ONLY: ap,bp,aps,bps,presnivs,pseudoalt,pa,preff,
     13     &                        nivsig,nivsigs
     14      USE comconst_mod, ONLY: cpp, daysec, dtvr, g, kappa, omeg, rad
     15      USE logic_mod, ONLY: fxyhypb, ysinus
     16      USE serre_mod, ONLY: clon,clat,grossismx,grossismy,dzoomx,dzoomy,
     17     &                     taux,tauy
     18      USE temps_mod, ONLY: annee_ref,day_ref,itau_dyn,itaufin,
     19     &                        start_time,hour_ini
     20      USE ener_mod, ONLY: etot0,ptot0,ztot0,stot0,ang0
    1221 
    1322      IMPLICIT NONE
     
    1928#include "dimensions.h"
    2029#include "paramet.h"
    21 #include "comconst.h"
    22 #include "comvert.h"
    2330#include "comgeom2.h"
    24 #include "temps.h"
    25 #include "ener.h"
    26 #include "logic.h"
    2731#include "netcdf.inc"
    2832#include "description.h"
    29 #include "serre.h"
    3033
    3134c   Arguments:
     
    472475      use netcdf, only: NF90_get_VAR
    473476      use netcdf95, only: NF95_PUT_VAR
     477      USE temps_mod, ONLY: itau_dyn, itaufin
    474478 
    475479      IMPLICIT NONE
     
    481485#include "description.h"
    482486#include "netcdf.inc"
    483 #include "comvert.h"
    484487#include "comgeom.h"
    485 #include "temps.h"
    486488
    487489
  • LMDZ5/branches/testing/libf/dyn3dpar/exner_hyb_p_m.F90

    r2056 r2641  
    3333    !
    3434    USE parallel_lmdz
     35    USE comconst_mod, ONLY: cpp, kappa, r, jmp1
     36    USE comvert_mod, ONLY: preff
    3537    !
    3638    include "dimensions.h"
    3739    include "paramet.h"
    38     include "comconst.h"
    3940    include "comgeom.h"
    40     include "comvert.h"
    41     include "serre.h"
    4241
    4342    INTEGER  ngrid
  • LMDZ5/branches/testing/libf/dyn3dpar/exner_milieu_p_m.F90

    r2056 r2641  
    3030    !
    3131    USE parallel_lmdz
     32    USE comconst_mod, ONLY: cpp, kappa, r, jmp1
     33    USE comvert_mod, ONLY: preff
    3234    !
    3335    include "dimensions.h"
    3436    include "paramet.h"
    35     include "comconst.h"
    3637    include "comgeom.h"
    37     include "comvert.h"
    38     include "serre.h"
    3938
    4039    INTEGER  ngrid
  • LMDZ5/branches/testing/libf/dyn3dpar/fluxstokenc_p.F

    r1910 r2641  
    2121#include "dimensions.h"
    2222#include "paramet.h"
    23 #include "comconst.h"
    24 #include "comvert.h"
    2523#include "comgeom.h"
    2624#include "tracstoke.h"
    27 #include "temps.h"
    2825#include "iniprint.h"
    2926
  • LMDZ5/branches/testing/libf/dyn3dpar/friction_p.F

    r1910 r2641  
    1212      USE ioipsl_getincom
    1313#endif
     14      USE comconst_mod, ONLY: pi
    1415      IMPLICIT NONE
    1516
     
    2930#include "paramet.h"
    3031#include "comgeom2.h"
    31 #include "comconst.h"
    3232#include "iniprint.h"
    3333#include "academic.h"
  • LMDZ5/branches/testing/libf/dyn3dpar/gcm.F

    r2435 r2641  
    3232      USE iniphysiq_mod, ONLY: iniphysiq
    3333#endif
     34      USE comconst_mod, ONLY: cpp, daysec, dtphys, dtvr, g, r, rad
     35      USE logic_mod ! all of it, because of copyin clause when calling leapfrog
     36      USE temps_mod, ONLY: calend,start_time,annee_ref,day_ref,
     37     &                itau_dyn,itau_phy,day_ini,jD_ref,jH_ref,day_end,
     38     &                dt,hour_ini,itaufin
     39
    3440      IMPLICIT NONE
    3541
     
    6571#include "dimensions.h"
    6672#include "paramet.h"
    67 #include "comconst.h"
    6873#include "comdissnew.h"
    69 #include "comvert.h"
    7074#include "comgeom.h"
    71 #include "logic.h"
    72 #include "temps.h"
    73 #include "ener.h"
    7475#include "description.h"
    75 #include "serre.h"
    7676!#include "com_io_dyn.h"
    7777#include "iniprint.h"
     
    499499c       write(78,*) 'q',q
    500500
    501 c$OMP PARALLEL DEFAULT(SHARED) COPYIN(/temps/,/logici/,/logicl/)
     501!c$OMP PARALLEL DEFAULT(SHARED) COPYIN(/temps/,/logici/,/logicl/)
     502c$OMP PARALLEL DEFAULT(SHARED)
     503c        Copy all threadprivate variables from temps_mod
     504c$OMP1 COPYIN(dt,jD_ref,jH_ref,start_time,hour_ini,day_ini,day_end)
     505c$OMP1 COPYIN(annee_ref,day_ref,itau_dyn,itau_phy,itaufin,calend)
     506c       Copy all threadprivate variables from logic_mod
     507c$OMP1 COPYIN(purmats,forward,leapf,apphys,statcl,conser,apdiss,apdelq)
     508c$OMP1 COPYIN(saison,ecripar,fxyhypb,ysinus,read_start,ok_guide)
     509c$OMP1 COPYIN(ok_strato,ok_gradsfile,ok_limit,ok_etat0)
     510c$OMP1 COPYIN(iflag_phys,iflag_trac)
    502511      CALL leapfrog_p(ucov,vcov,teta,ps,masse,phis,q,time_0)
    503512c$OMP END PARALLEL
  • LMDZ5/branches/testing/libf/dyn3dpar/geopot_p.F

    r1910 r2641  
    2828#include "dimensions.h"
    2929#include "paramet.h"
    30 #include "comvert.h"
    3130
    3231c   Arguments:
  • LMDZ5/branches/testing/libf/dyn3dpar/gradiv_p.F

    r1910 r2641  
    2121#include "paramet.h"
    2222#include "comdissipn.h"
    23 #include "logic.h"
    2423
    2524      INTEGER klevel
  • LMDZ5/branches/testing/libf/dyn3dpar/groupe_p.F

    r2471 r2641  
    11      subroutine groupe_p(pext,pbaru,pbarv,pbarum,pbarvm,wm)
    22      USE parallel_lmdz
     3      USE comconst_mod, ONLY: ngroup
    34      implicit none
    45
     
    1617#include "dimensions.h"
    1718#include "paramet.h"
    18 #include "comconst.h"
    1919#include "comgeom2.h"
    20 #include "comvert.h"
    2120
    2221!     integer ngroup
  • LMDZ5/branches/testing/libf/dyn3dpar/groupeun_p.F

    r2471 r2641  
    22      USE parallel_lmdz
    33      USE Write_Field_p
     4      USE comconst_mod, ONLY: ngroup
    45      IMPLICIT NONE
    56
    67#include "dimensions.h"
    78#include "paramet.h"
    8 #include "comconst.h"
    99#include "comgeom2.h"
    1010
     
    136136
    137137      USE parallel_lmdz
     138      USE comconst_mod, ONLY: ngroup
    138139      IMPLICIT NONE
    139140
    140141#include "dimensions.h"
    141142#include "paramet.h"
    142 #include "comconst.h"
    143143#include "comgeom2.h"
    144144
  • LMDZ5/branches/testing/libf/dyn3dpar/guide_p_mod.F90

    r2160 r2641  
    6868  SUBROUTINE guide_init
    6969
    70     USE control_mod
     70    USE control_mod, ONLY: day_step
     71    USE serre_mod, ONLY: grossismx
    7172
    7273    IMPLICIT NONE
     
    7576    INCLUDE "paramet.h"
    7677    INCLUDE "netcdf.inc"
    77 
    78     ! For grossismx:
    79     include "serre.h"
    8078
    8179    INTEGER                :: error,ncidpl,rid,rcod
     
    341339    USE parallel_lmdz
    342340    USE control_mod
     341    USE comconst_mod, ONLY: daysec, dtvr, cpp, kappa
     342    USE comvert_mod, ONLY: ap, bp, preff, presnivs, pressure_exner
    343343   
    344344    IMPLICIT NONE
     
    346346    INCLUDE "dimensions.h"
    347347    INCLUDE "paramet.h"
    348     INCLUDE "comconst.h"
    349     INCLUDE "comvert.h"
    350348
    351349    ! Variables entree
     
    619617  SUBROUTINE guide_zonave(typ,hsize,vsize,field)
    620618
     619    USE comconst_mod, ONLY: pi
     620   
    621621    IMPLICIT NONE
    622622
     
    624624    INCLUDE "paramet.h"
    625625    INCLUDE "comgeom.h"
    626     INCLUDE "comconst.h"
    627626   
    628627    ! input/output variables
     
    707706  USE mod_hallo
    708707  USE Bands
     708  USE comconst_mod, ONLY: cpp, kappa
     709  USE comvert_mod, ONLY: preff, pressure_exner, bp, ap
    709710  IMPLICIT NONE
    710711
    711712  include "dimensions.h"
    712713  include "paramet.h"
    713   include "comvert.h"
    714714  include "comgeom2.h"
    715   include "comconst.h"
    716715
    717716  REAL, DIMENSION (iip1,jjp1),     INTENT(IN) :: psi ! Psol gcm
     
    10991098! Calcul des constantes de rappel alpha (=1/tau)
    11001099
     1100    use comconst_mod, only: pi
     1101    use serre_mod, only: clat, clon, grossismx, grossismy
     1102   
    11011103    implicit none
    11021104
    11031105    include "dimensions.h"
    11041106    include "paramet.h"
    1105     include "comconst.h"
    11061107    include "comgeom2.h"
    1107     include "serre.h"
    11081108
    11091109! input arguments :
     
    18131813  SUBROUTINE guide_out(varname,hsize,vsize,field,factt)
    18141814    USE parallel_lmdz
     1815    USE comconst_mod, ONLY: pi
     1816    USE comvert_mod, ONLY: presnivs
    18151817    IMPLICIT NONE
    18161818
     
    18191821    INCLUDE "netcdf.inc"
    18201822    INCLUDE "comgeom2.h"
    1821     INCLUDE "comconst.h"
    1822     INCLUDE "comvert.h"
    18231823   
    18241824    ! Variables entree
  • LMDZ5/branches/testing/libf/dyn3dpar/iniacademic.F90

    r2160 r2641  
    1616  use exner_hyb_m, only: exner_hyb
    1717  use exner_milieu_m, only: exner_milieu
     18  USE comconst_mod, ONLY: cpp, kappa, g, daysec, dtvr, pi, im, jm
     19  USE logic_mod, ONLY: iflag_phys, read_start
     20  USE comvert_mod, ONLY: ap, bp, preff, presnivs, pressure_exner
     21  USE temps_mod, ONLY: annee_ref, day_ini, day_ref
     22  USE ener_mod, ONLY: etot0,ptot0,ztot0,stot0,ang0
    1823
    1924  !   Author:    Frederic Hourdin      original: 15/01/93
     
    2833  include "dimensions.h"
    2934  include "paramet.h"
    30   include "comvert.h"
    31   include "comconst.h"
    3235  include "comgeom.h"
    3336  include "academic.h"
    34   include "ener.h"
    35   include "temps.h"
    3637  include "iniprint.h"
    37   include "logic.h"
    3838
    3939  !   Arguments:
  • LMDZ5/branches/testing/libf/dyn3dpar/initdynav_p.F

    r1910 r2641  
    1212       use misc_mod
    1313       USE infotrac
     14       USE comconst_mod, ONLY: pi
     15       USE comvert_mod, ONLY: nivsigs
     16       USE temps_mod, ONLY: itau_dyn
    1417
    1518      implicit none
     
    4346#include "dimensions.h"
    4447#include "paramet.h"
    45 #include "comconst.h"
    46 #include "comvert.h"
    4748#include "comgeom.h"
    48 #include "temps.h"
    49 #include "ener.h"
    50 #include "logic.h"
    5149#include "description.h"
    52 #include "serre.h"
    5350#include "iniprint.h"
    5451
  • LMDZ5/branches/testing/libf/dyn3dpar/initfluxsto_p.F

    r1910 r2641  
    1313       use Write_field
    1414       use misc_mod
     15       USE comconst_mod, ONLY: pi
     16       USE comvert_mod, ONLY: nivsigs
     17       USE temps_mod, ONLY: annee_ref, day_ref, itau_dyn
    1518       
    1619      implicit none
     
    4548#include "dimensions.h"
    4649#include "paramet.h"
    47 #include "comconst.h"
    48 #include "comvert.h"
    4950#include "comgeom.h"
    50 #include "temps.h"
    51 #include "ener.h"
    52 #include "logic.h"
    5351#include "description.h"
    54 #include "serre.h"
    5552#include "iniprint.h"
    5653
     
    106103      CALL ymds2ju(zan, 1, idayref, 0.0, zjulian)
    107104      tau0 = itau_dyn
    108        
    109         do jj = 1, jjp1
     105       
     106        do jj = 1, jjp1
    110107        do ii = 1, iip1
    111108          rlong(ii,jj) = rlonu(ii) * 180. / pi
     
    165162     .             1, iip1, 1, jjn,tau0, zjulian, tstep, vhoriid,
    166163     .             filevid,dynv_domain_id)
    167        
    168       rl(1,1) = 1.     
     164       
     165      rl(1,1) = 1.       
    169166     
    170167      if (mpi_rank==0) then
     
    191188      call histhori(fileid, iip1, rlong(:,jjb:jje),jjn,rlat(:,jjb:jje),
    192189     .             'scalar','Grille points scalaires', thoriid)
    193        
     190       
    194191C
    195192C  Appel a histvert pour la grille verticale
     
    211208C
    212209C  Appels a histdef pour la definition des variables a sauvegarder
    213        
    214         CALL histdef(fileid, "phis", "Surface geop. height", "-",
     210       
     211        CALL histdef(fileid, "phis", "Surface geop. height", "-",
    215212     .                iip1,jjn,thoriid, 1,1,1, -99, 32,
    216213     .                "once", t_ops, t_wrt)
     
    219216     .                iip1,jjn,thoriid, 1,1,1, -99, 32,
    220217     .                "once", t_ops, t_wrt)
    221        
     218       
    222219        if (mpi_rank==0) then
    223        
    224         CALL histdef(filedid, "dtvr", "tps dyn", "s",
     220       
     221        CALL histdef(filedid, "dtvr", "tps dyn", "s",
    225222     .                1,1,dhoriid, 1,1,1, -99, 32,
    226223     .                "once", t_ops, t_wrt)
     
    289286        if (mpi_rank==0) call histsync(filedid)
    290287      endif
    291        
     288       
    292289#else
    293290      write(lunout,*)'initfluxsto_p: Needs IOIPSL to function'
  • LMDZ5/branches/testing/libf/dyn3dpar/inithist_p.F

    r1910 r2641  
    1313       use misc_mod
    1414       USE infotrac
     15       USE comconst_mod, ONLY: pi
     16       USE comvert_mod, ONLY: nivsigs
     17       USE temps_mod, ONLY: itau_dyn
    1518
    1619      implicit none
     
    4548#include "dimensions.h"
    4649#include "paramet.h"
    47 #include "comconst.h"
    48 #include "comvert.h"
    4950#include "comgeom.h"
    50 #include "temps.h"
    51 #include "ener.h"
    52 #include "logic.h"
    5351#include "description.h"
    54 #include "serre.h"
    5552#include "iniprint.h"
    5653
  • LMDZ5/branches/testing/libf/dyn3dpar/integrd_p.F

    r2160 r2641  
    77      USE parallel_lmdz
    88      USE control_mod, only : planet_type
     9      USE comconst_mod, ONLY: pi
     10      USE logic_mod, ONLY: leapf
     11      USE comvert_mod, ONLY: ap, bp
     12      USE temps_mod, ONLY: dt
     13     
    914      IMPLICIT NONE
    1015
     
    2732#include "dimensions.h"
    2833#include "paramet.h"
    29 #include "comconst.h"
    3034#include "comgeom.h"
    31 #include "comvert.h"
    32 #include "logic.h"
    33 #include "temps.h"
    34 #include "serre.h"
    3535#include "iniprint.h"
    3636
     
    284284      ije=ij_end
    285285
    286         if (planet_type.eq."earth") then
     286        if (planet_type.eq."earth") then
    287287! Earth-specific treatment of first 2 tracers (water)
    288288c$OMP BARRIER
     
    385385          DO l = 1, llm
    386386            massem1(ijb:ije,l)=massescr(ijb:ije,l)
    387           ENDDO
    388 c$OMP END DO NOWAIT      
     387          ENDDO
     388c$OMP END DO NOWAIT 
    389389      END IF
    390390c$OMP BARRIER
  • LMDZ5/branches/testing/libf/dyn3dpar/leapfrog_p.F

    r2408 r2641  
    2828     &                       periodav, ok_dyn_ave, output_grads_dyn,
    2929     &                       iapp_tracvl
     30       USE comvert_mod, ONLY: ap,bp,pressure_exner,presnivs
     31       USE comconst_mod, ONLY: cpp, dtvr, ihf, dtphys, pi, jmp1
     32       USE logic_mod, ONLY: iflag_phys,ok_guide,forward,leapf,apphys,
     33     &                      statcl,conser,apdiss,purmats,ok_strato
     34       USE temps_mod, ONLY: itaufin,jD_ref,jH_ref,day_ini,
     35     &                        day_ref,start_time,dt
     36
    3037      IMPLICIT NONE
    3138
     
    6370#include "dimensions.h"
    6471#include "paramet.h"
    65 #include "comconst.h"
    6672#include "comdissnew.h"
    67 #include "comvert.h"
    6873#include "comgeom.h"
    69 #include "logic.h"
    70 #include "temps.h"
    71 #include "ener.h"
    7274#include "description.h"
    73 #include "serre.h"
    7475!#include "com_io_dyn.h"
    7576#include "iniprint.h"
     
    14551456                call Gather_Field(teta,ip1jmp1,llm,0)
    14561457                call Gather_Field(pk,ip1jmp1,llm,0)
    1457                 call Gather_Field(phi,ip1jmp1,llm,0)
     1458                call Gather_Field(phi,ip1jmp1,llm,0)
    14581459                do iq=1,nqtot
    14591460                  call Gather_Field(q(1,1,iq),ip1jmp1,llm,0)
    14601461                enddo
    1461                 call Gather_Field(masse,ip1jmp1,llm,0)
     1462                call Gather_Field(masse,ip1jmp1,llm,0)
    14621463                call Gather_Field(ps,ip1jmp1,1,0)
    1463                 call Gather_Field(phis,ip1jmp1,1,0)
     1464                call Gather_Field(phis,ip1jmp1,1,0)
    14641465                if (mpi_rank==0) then
    14651466                 CALL writedynav(itau,vcov,
    14661467     &                 ucov,teta,pk,phi,q,masse,ps,phis)
    1467                 endif
     1468                endif
    14681469#endif
    14691470!$OMP END MASTER
     
    14771478            IF( MOD(itau,iecri).EQ.0) THEN
    14781479             ! Ehouarn: output only during LF or Backward Matsuno
    1479              if (leapf.or.(.not.leapf.and.(.not.forward))) then
     1480             if (leapf.or.(.not.leapf.and.(.not.forward))) then
    14801481c$OMP BARRIER
    14811482c$OMP MASTER
     
    15151516                call Gather_Field(ucov,ip1jmp1,llm,0)
    15161517                call Gather_Field(teta,ip1jmp1,llm,0)
    1517                 call Gather_Field(phi,ip1jmp1,llm,0)
     1518                call Gather_Field(phi,ip1jmp1,llm,0)
    15181519                do iq=1,nqtot
    15191520                  call Gather_Field(q(1,1,iq),ip1jmp1,llm,0)
    15201521                enddo
    1521                 call Gather_Field(masse,ip1jmp1,llm,0)
     1522                call Gather_Field(masse,ip1jmp1,llm,0)
    15221523                call Gather_Field(ps,ip1jmp1,1,0)
    1523                 call Gather_Field(phis,ip1jmp1,1,0)
     1524                call Gather_Field(phis,ip1jmp1,1,0)
    15241525                if (mpi_rank==0) then
    1525                  CALL writehist(itau,vcov,ucov,teta,phi,q,masse,ps,phis)
    1526                 endif
     1526                 CALL writehist(itau,vcov,ucov,teta,phi,q,masse,ps,phis)
     1527                endif
    15271528!              CALL writehist_p(histid,histvid, itau,vcov,
    15281529!     &                         ucov,teta,phi,q,masse,ps,phis)
     
    16501651                call Gather_Field(teta,ip1jmp1,llm,0)
    16511652                call Gather_Field(pk,ip1jmp1,llm,0)
    1652                 call Gather_Field(phi,ip1jmp1,llm,0)
     1653                call Gather_Field(phi,ip1jmp1,llm,0)
    16531654                do iq=1,nqtot
    16541655                  call Gather_Field(q(1,1,iq),ip1jmp1,llm,0)
    16551656                enddo
    1656                 call Gather_Field(masse,ip1jmp1,llm,0)
     1657                call Gather_Field(masse,ip1jmp1,llm,0)
    16571658                call Gather_Field(ps,ip1jmp1,1,0)
    1658                 call Gather_Field(phis,ip1jmp1,1,0)
     1659                call Gather_Field(phis,ip1jmp1,1,0)
    16591660                if (mpi_rank==0) then
    16601661                 CALL writedynav(itau,vcov,
    16611662     &                 ucov,teta,pk,phi,q,masse,ps,phis)
    1662                 endif
     1663                endif
    16631664#endif
    16641665!$OMP END MASTER
     
    17061707                call Gather_Field(ucov,ip1jmp1,llm,0)
    17071708                call Gather_Field(teta,ip1jmp1,llm,0)
    1708                 call Gather_Field(phi,ip1jmp1,llm,0)
     1709                call Gather_Field(phi,ip1jmp1,llm,0)
    17091710                do iq=1,nqtot
    17101711                  call Gather_Field(q(1,1,iq),ip1jmp1,llm,0)
    17111712                enddo
    1712                 call Gather_Field(masse,ip1jmp1,llm,0)
     1713                call Gather_Field(masse,ip1jmp1,llm,0)
    17131714                call Gather_Field(ps,ip1jmp1,1,0)
    1714                 call Gather_Field(phis,ip1jmp1,1,0)
     1715                call Gather_Field(phis,ip1jmp1,1,0)
    17151716                if (mpi_rank==0) then
    17161717                 CALL writehist(itau,vcov,ucov,teta,phi,q,masse,ps,phis)
    1717                 endif
     1718                endif
    17181719!                CALL writehist_p(histid, histvid, itau,vcov ,
    17191720!     &                           ucov,teta,phi,q,masse,ps,phis)
  • LMDZ5/branches/testing/libf/dyn3dpar/massbar_p.F

    r1910 r2641  
    1818#include "dimensions.h"
    1919#include "paramet.h"
    20 #include "comconst.h"
    2120#include "comgeom.h"
    2221c
  • LMDZ5/branches/testing/libf/dyn3dpar/massbarxy_p.F

    r1910 r2641  
    1717#include "dimensions.h"
    1818#include "paramet.h"
    19 #include "comconst.h"
    2019#include "comgeom.h"
    2120c
  • LMDZ5/branches/testing/libf/dyn3dpar/massdair_p.F

    r1910 r2641  
    1818#include "dimensions.h"
    1919#include "paramet.h"
    20 #include "comconst.h"
    2120#include "comgeom.h"
    2221c
  • LMDZ5/branches/testing/libf/dyn3dpar/nxgrarot_p.F

    r1910 r2641  
    2222#include "paramet.h"
    2323#include "comdissipn.h"
    24 #include "logic.h"
    2524c
    2625      INTEGER klevel
  • LMDZ5/branches/testing/libf/dyn3dpar/qminimum_p.F

    r1910 r2641  
    88#include "dimensions.h"
    99#include "paramet.h"
    10 #include "comvert.h"
    1110c
    1211      INTEGER nq
  • LMDZ5/branches/testing/libf/dyn3dpar/sw_case_williamson91_6.F

    r1910 r2641  
    2626c
    2727c=======================================================================
     28      USE comconst_mod, ONLY: cpp, omeg, rad
     29      USE comvert_mod, ONLY: ap, bp, preff
     30     
    2831      IMPLICIT NONE
    2932c-----------------------------------------------------------------------
     
    3336#include "dimensions.h"
    3437#include "paramet.h"
    35 #include "comvert.h"
    36 #include "comconst.h"
    3738#include "comgeom.h"
    3839#include "iniprint.h"
  • LMDZ5/branches/testing/libf/dyn3dpar/top_bound_p.F

    r1910 r2641  
    44      SUBROUTINE top_bound_p(vcov,ucov,teta,masse,dt)
    55      USE parallel_lmdz
     6      USE comconst_mod, ONLY: iflag_top_bound, mode_top_bound,
     7     &                        tau_top_bound
     8      USE comvert_mod, ONLY: presnivs, preff, scaleheight
     9     
    610      IMPLICIT NONE
    711c
    812#include "dimensions.h"
    913#include "paramet.h"
    10 #include "comconst.h"
    11 #include "comvert.h"
    1214#include "comgeom2.h"
    1315
     
    4042! NB: top_bound sponge is only called from leapfrog if ok_strato=.true.
    4143
    42 ! sponge parameters: (loaded/set in conf_gcm.F ; stored in comconst.h)
     44! sponge parameters: (loaded/set in conf_gcm.F ; stored in comconst_mod)
    4345!    iflag_top_bound=0 for no sponge
    4446!    iflag_top_bound=1 for sponge over 4 topmost layers
     
    6971      REAL uzon(jjp1,llm),vzon(jjm,llm),tzon(jjp1,llm)
    7072     
    71       integer i 
     73      integer i
    7274      REAL,SAVE :: rdamp(llm) ! quenching coefficient
    7375      real,save :: lambda(llm) ! inverse or quenching time scale (Hz)
  • LMDZ5/branches/testing/libf/dyn3dpar/tourpot_p.F

    r1910 r2641  
    2323#include "paramet.h"
    2424#include "comgeom.h"
    25 #include "logic.h"
    2625
    2726      REAL  rot( ip1jm,llm )
  • LMDZ5/branches/testing/libf/dyn3dpar/vitvert_p.F

    r1910 r2641  
    22c
    33      USE parallel_lmdz
     4      USE comvert_mod, ONLY: bp
     5     
    46      IMPLICIT NONE
    57
     
    2830#include "dimensions.h"
    2931#include "paramet.h"
    30 #include "comvert.h"
    3132
    3233      REAL w(ip1jmp1,llm),convm(ip1jmp1,llm)
  • LMDZ5/branches/testing/libf/dyn3dpar/vlsplt_p.F

    r1910 r2641  
    2525#include "dimensions.h"
    2626#include "paramet.h"
    27 #include "logic.h"
    28 #include "comvert.h"
    29 #include "comconst.h"
    3027
    3128c
     
    208205#include "dimensions.h"
    209206#include "paramet.h"
    210 #include "logic.h"
    211 #include "comvert.h"
    212 #include "comconst.h"
    213207c
    214208c
     
    539533c   --------------------------------------------------------------------
    540534      USE parallel_lmdz
     535      USE comconst_mod, ONLY: pi
    541536      IMPLICIT NONE
    542537c
    543538#include "dimensions.h"
    544539#include "paramet.h"
    545 #include "logic.h"
    546 #include "comvert.h"
    547 #include "comconst.h"
    548540#include "comgeom.h"
    549541c
     
    932924#include "dimensions.h"
    933925#include "paramet.h"
    934 #include "logic.h"
    935 #include "comvert.h"
    936 #include "comconst.h"
    937926c
    938927c
  • LMDZ5/branches/testing/libf/dyn3dpar/vlspltgen_p.F

    r1910 r2641  
    2727      USE VAMPIR
    2828      USE infotrac, ONLY : nqtot
     29      USE comconst_mod, ONLY: cpp
    2930      IMPLICIT NONE
    3031
     
    3233#include "dimensions.h"
    3334#include "paramet.h"
    34 #include "logic.h"
    35 #include "comvert.h"
    36 #include "comconst.h"
    3735
    3836c
     
    105103
    106104       
    107         ijb=ij_begin-iip1
    108         ije=ij_end+iip1
    109         if (pole_nord) ijb=ij_begin
    110         if (pole_sud) ije=ij_end
    111        
     105        ijb=ij_begin-iip1
     106        ije=ij_end+iip1
     107        if (pole_nord) ijb=ij_begin
     108        if (pole_sud) ije=ij_end
     109       
    112110c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    113         DO l = 1, llm
     111        DO l = 1, llm
    114112         DO ij = ijb, ije
    115113          tempe(ij) = teta(ij,l) * pk(ij,l) /cpp
     
    191189
    192190        if(iadv(iq) == 0) then
    193        
    194           cycle
    195        
    196         else if (iadv(iq)==10) then
     191       
     192          cycle
     193       
     194        else if (iadv(iq)==10) then
    197195
    198196#ifdef _ADV_HALO       
    199           call vlx_p(zq(1,1,iq),pente_max,zm(1,1,iq),mu,
    200      &               ij_begin,ij_begin+2*iip1-1)
     197          call vlx_p(zq(1,1,iq),pente_max,zm(1,1,iq),mu,
     198     &                     ij_begin,ij_begin+2*iip1-1)
    201199          call vlx_p(zq(1,1,iq),pente_max,zm(1,1,iq),mu,
    202200     &               ij_end-2*iip1+1,ij_end)
    203201#else
    204           call vlx_p(zq(1,1,iq),pente_max,zm(1,1,iq),mu,
    205      &               ij_begin,ij_end)
     202          call vlx_p(zq(1,1,iq),pente_max,zm(1,1,iq),mu,
     203     &                     ij_begin,ij_end)
    206204#endif
    207205
     
    215213          call VTe(VTHallo)
    216214c$OMP END MASTER
    217         else if (iadv(iq)==14) then
     215        else if (iadv(iq)==14) then
    218216
    219217#ifdef _ADV_HALO           
     
    239237c$OMP END MASTER
    240238        else
    241        
    242           stop 'vlspltgen_p : schema non parallelise'
     239       
     240          stop 'vlspltgen_p : schema non parallelise'
    243241     
    244242        endif
     
    261259
    262260        if(iadv(iq) == 0) then
    263        
    264           cycle
    265        
    266         else if (iadv(iq)==10) then
     261       
     262          cycle
     263       
     264        else if (iadv(iq)==10) then
    267265
    268266#ifdef _ADV_HALLO
     
    270268     &               ij_begin+2*iip1,ij_end-2*iip1)
    271269#endif       
    272         else if (iadv(iq)==14) then
     270        else if (iadv(iq)==14) then
    273271#ifdef _ADV_HALLO
    274272          call vlxqs_p(zq(1,1,iq),pente_max,zm(1,1,iq),mu,qsat,
     
    276274#endif   
    277275        else
    278        
    279           stop 'vlspltgen_p : schema non parallelise'
     276       
     277          stop 'vlspltgen_p : schema non parallelise'
    280278     
    281279        endif
     
    301299
    302300        if(iadv(iq) == 0) then
    303        
    304           cycle
    305        
    306         else if (iadv(iq)==10) then
     301       
     302          cycle
     303       
     304        else if (iadv(iq)==10) then
    307305       
    308306          call vly_p(zq(1,1,iq),pente_max,zm(1,1,iq),mv)
    309307 
    310         else if (iadv(iq)==14) then
     308        else if (iadv(iq)==14) then
    311309     
    312310          call vlyqs_p(zq(1,1,iq),pente_max,zm(1,1,iq),mv,qsat)
    313311 
    314312        else
    315        
    316           stop 'vlspltgen_p : schema non parallelise'
     313       
     314          stop 'vlspltgen_p : schema non parallelise'
    317315     
    318316        endif
     
    324322
    325323        if(iadv(iq) == 0) then
    326          
    327           cycle
    328        
    329         else if (iadv(iq)==10 .or. iadv(iq)==14 ) then
     324         
     325          cycle
     326       
     327        else if (iadv(iq)==10 .or. iadv(iq)==14 ) then
    330328
    331329c$OMP BARRIER       
     
    350348c$OMP MASTER
    351349          call VTe(VTHallo)
    352 c$OMP END MASTER       
    353 c$OMP BARRIER
    354         else
    355        
    356           stop 'vlspltgen_p : schema non parallelise'
     350c$OMP END MASTER       
     351c$OMP BARRIER
     352        else
     353       
     354          stop 'vlspltgen_p : schema non parallelise'
    357355     
    358356        endif
     
    369367c$OMP MASTER
    370368      call VTe(VTHallo)
    371 c$OMP END MASTER       
     369c$OMP END MASTER       
    372370
    373371c$OMP BARRIER
     
    375373
    376374        if(iadv(iq) == 0) then
    377          
    378           cycle
    379        
    380         else if (iadv(iq)==10 .or. iadv(iq)==14 ) then
     375         
     376          cycle
     377       
     378        else if (iadv(iq)==10 .or. iadv(iq)==14 ) then
    381379c$OMP BARRIER       
    382380
     
    388386c$OMP BARRIER       
    389387        else
    390        
    391           stop 'vlspltgen_p : schema non parallelise'
     388       
     389          stop 'vlspltgen_p : schema non parallelise'
    392390     
    393391        endif
     
    414412
    415413        if(iadv(iq) == 0) then
    416        
    417           cycle
    418        
    419         else if (iadv(iq)==10) then
     414       
     415          cycle
     416       
     417        else if (iadv(iq)==10) then
    420418       
    421419          call vly_p(zq(1,1,iq),pente_max,zm(1,1,iq),mv)
    422420 
    423         else if (iadv(iq)==14) then
     421        else if (iadv(iq)==14) then
    424422     
    425423          call vlyqs_p(zq(1,1,iq),pente_max,zm(1,1,iq),mv,qsat)
    426424 
    427425        else
    428        
    429           stop 'vlspltgen_p : schema non parallelise'
     426       
     427          stop 'vlspltgen_p : schema non parallelise'
    430428     
    431429        endif
     
    436434
    437435        if(iadv(iq) == 0) then
    438          
    439           cycle
    440        
    441         else if (iadv(iq)==10) then
     436         
     437          cycle
     438       
     439        else if (iadv(iq)==10) then
    442440       
    443441          call vlx_p(zq(1,1,iq),pente_max,zm(1,1,iq),mu,
    444442     &               ij_begin,ij_end)
    445443 
    446         else if (iadv(iq)==14) then
     444        else if (iadv(iq)==14) then
    447445     
    448446          call vlxqs_p(zq(1,1,iq),pente_max,zm(1,1,iq),mu,qsat,
     
    450448 
    451449        else
    452        
     450       
    453451          stop 'vlspltgen_p : schema non parallelise'
    454452     
     
    469467           DO ij=ijb,ije
    470468c             print *,'zq-->',ij,l,iq,zq(ij,l,iq)
    471 c            print *,'q-->',ij,l,iq,q(ij,l,iq)
    472              q(ij,l,iq)=zq(ij,l,iq)
     469c             print *,'q-->',ij,l,iq,q(ij,l,iq)
     470             q(ij,l,iq)=zq(ij,l,iq)
    473471           ENDDO
    474472        ENDDO
  • LMDZ5/branches/testing/libf/dyn3dpar/vlspltqs_p.F

    r1910 r2641  
    2525      USE mod_hallo
    2626      USE VAMPIR
     27      USE comconst_mod, ONLY: cpp
    2728      IMPLICIT NONE
    2829
     
    3031#include "dimensions.h"
    3132#include "paramet.h"
    32 #include "logic.h"
    33 #include "comvert.h"
    34 #include "comconst.h"
    3533
    3634c
     
    236234#include "dimensions.h"
    237235#include "paramet.h"
    238 #include "logic.h"
    239 #include "comvert.h"
    240 #include "comconst.h"
    241236c
    242237c
     
    584579c   --------------------------------------------------------------------
    585580      USE parallel_lmdz
     581      USE comconst_mod, ONLY: pi
    586582      IMPLICIT NONE
    587583c
    588584#include "dimensions.h"
    589585#include "paramet.h"
    590 #include "logic.h"
    591 #include "comvert.h"
    592 #include "comconst.h"
    593586#include "comgeom.h"
    594587c
  • LMDZ5/branches/testing/libf/dyn3dpar/writedynav_p.F

    r1910 r2641  
    1212      USE misc_mod
    1313      USE infotrac
     14      USE comconst_mod, ONLY: cpp
     15      USE temps_mod, ONLY: itau_dyn
     16     
    1417      implicit none
    1518
     
    4245#include "dimensions.h"
    4346#include "paramet.h"
    44 #include "comconst.h"
    45 #include "comvert.h"
    4647#include "comgeom.h"
    47 #include "temps.h"
    48 #include "ener.h"
    49 #include "logic.h"
    5048#include "description.h"
    51 #include "serre.h"
    5249#include "iniprint.h"
    5350
  • LMDZ5/branches/testing/libf/dyn3dpar/writehist_p.F

    r1910 r2641  
    1212      USE misc_mod
    1313      USE infotrac
     14      USE temps_mod, ONLY: itau_dyn
     15     
    1416      implicit none
    1517
     
    4345#include "dimensions.h"
    4446#include "paramet.h"
    45 #include "comconst.h"
    46 #include "comvert.h"
    4747#include "comgeom.h"
    48 #include "temps.h"
    49 #include "ener.h"
    50 #include "logic.h"
    5148#include "description.h"
    52 #include "serre.h"
    5349#include "iniprint.h"
    5450
  • LMDZ5/branches/testing/libf/dynphy_lonlat/calfis.F

    r2435 r2641  
    3434      USE callphysiq_mod, ONLY: call_physiq
    3535#endif
    36 
     36      USE comconst_mod, ONLY: cpp, daysec, dtphys, dtvr, kappa, pi
     37      USE comvert_mod, ONLY: preff, presnivs
     38     
    3739      IMPLICIT NONE
    3840c=======================================================================
     
    8991c    ------------------
    9092
    91 #include "dimensions.h"
    92 #include "paramet.h"
    93 #include "temps.h"
     93      include "dimensions.h"
     94      include "paramet.h"
    9495
    9596      INTEGER ngridmx
    9697      PARAMETER( ngridmx = 2+(jjm-1)*iim - 1/jjm   )
    9798
    98 #include "comconst.h"
    99 #include "comvert.h"
    100 #include "comgeom2.h"
    101 #include "iniprint.h"
     99      include "comgeom2.h"
     100      include "iniprint.h"
    102101
    103102c    Arguments :
     
    142141c
    143142      REAL zrot(iip1,jjm,llm) ! AdlC May 2014
    144       REAL zufi(ngridmx,llm), zvfi(ngridmx,llm), zrfi(ngridmx,llm)
     143      REAL zufi(ngridmx,llm), zvfi(ngridmx,llm)
     144      REAL zrfi(ngridmx,llm) ! relative wind vorticity
    145145      REAL ztfi(ngridmx,llm),zqfi(ngridmx,llm,nqtot)
     146      REAL zpk(ngridmx,llm)
    146147c
    147148      REAL pcvgu(ngridmx,llm), pcvgv(ngridmx,llm)
     
    212213
    213214
    214 c   42. pression intercouches :
     215c   42. pression intercouches et fonction d'Exner:
    215216c
    216217c   -----------------------------------------------------------------
     
    223224       unskap   = 1./ kappa
    224225c
    225       DO l = 1, llmp1
     226      DO l = 1, llm
     227        zpk(   1,l ) = ppk(1,1,l)
    226228        zplev( 1,l ) = pp(1,1,l)
    227229        ig0 = 2
    228230          DO j = 2, jjm
    229231             DO i =1, iim
     232              zpk(   ig0,l ) = ppk(i,j,l)
    230233              zplev( ig0,l ) = pp(i,j,l)
    231234              ig0 = ig0 +1
    232235             ENDDO
    233236          ENDDO
     237        zpk(   ngridmx,l ) = ppk(1,jjp1,l)
    234238        zplev( ngridmx,l ) = pp(1,jjp1,l)
    235239      ENDDO
     240        zplev( 1,llmp1 ) = pp(1,1,llmp1)
     241        ig0 = 2
     242          DO j = 2, jjm
     243             DO i =1, iim
     244              zplev( ig0,llmp1 ) = pp(i,j,llmp1)
     245              ig0 = ig0 +1
     246             ENDDO
     247          ENDDO
     248        zplev( ngridmx,llmp1 ) = pp(1,jjp1,llmp1)
    236249c
    237250c
     
    472485     &                   jD_cur,jH_cur_split,zdt_split,
    473486     &                   zplev,zplay,
    474      &                   zphi,zphis,
     487     &                   zpk,zphi,zphis,
    475488     &                   presnivs,
    476489     &                   zufi,zvfi,zrfi,ztfi,zqfi,
  • LMDZ5/branches/testing/libf/dynphy_lonlat/calfis_loc.F

    r2435 r2641  
    5050      USE callphysiq_mod, ONLY: call_physiq
    5151#endif
     52      USE comvert_mod, ONLY: preff, presnivs
     53      USE comconst_mod, ONLY: cpp, daysec, dtphys, dtvr, kappa, pi
    5254
    5355#ifdef CPP_PARA
     
    107109c    ------------------
    108110
    109 #include "dimensions.h"
    110 #include "paramet.h"
    111 #include "temps.h"
     111      include "dimensions.h"
     112      include "paramet.h"
    112113
    113114      INTEGER ngridmx
    114115      PARAMETER( ngridmx = 2+(jjm-1)*iim - 1/jjm   )
    115116
    116 #include "comconst.h"
    117 #include "comvert.h"
    118 #include "comgeom2.h"
    119 #include "iniprint.h"
     117      include "comgeom2.h"
     118      include "iniprint.h"
    120119#ifdef CPP_MPI
    121120      include 'mpif.h'
     
    163162      REAL,ALLOCATABLE,SAVE :: zufi(:,:), zvfi(:,:), zrfi(:,:)
    164163      REAL,ALLOCATABLE,SAVE :: ztfi(:,:),zqfi(:,:,:)
     164      REAL,ALLOCATABLE,SAVE ::  zpk(:,:)
    165165c
    166166      REAL,ALLOCATABLE,SAVE :: pcvgu(:,:), pcvgv(:,:)
     
    175175      REAL,ALLOCATABLE,SAVE :: zplev_omp(:,:)
    176176      REAL,ALLOCATABLE,SAVE :: zplay_omp(:,:)
     177      REAL,ALLOCATABLE,SAVE :: zpk_omp(:,:)
    177178      REAL,ALLOCATABLE,SAVE :: zphi_omp(:,:)
    178179      REAL,ALLOCATABLE,SAVE :: zphis_omp(:)
     
    212213!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    213214
    214 c$OMP THREADPRIVATE(zplev_omp,zplay_omp,zphi_omp,zphis_omp,
     215c$OMP THREADPRIVATE(zplev_omp,zplay_omp,zpk_omp,zphi_omp,zphis_omp,
    215216c$OMP+                 presnivs_omp,zufi_omp,zvfi_omp,ztfi_omp,
    216217c$OMP+                 zrfi_omp,zqfi_omp,zdufi_omp,zdvfi_omp,
     
    276277      ALLOCATE(zdufi2(klon+iim,llm),zdvfi2(klon+iim,llm))
    277278      ALLOCATE(flxwfi(klon,llm))
     279      ALLOCATE(zpk(klon,llm))
    278280c$OMP END MASTER
    279 c$OMP BARRIER    
     281c$OMP BARRIER         
    280282      ELSE
    281283          debut = .FALSE.
     
    329331      ENDDO
    330332c$OMP END DO NOWAIT
     333
     334c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
     335      DO l=1,llm
     336        do ig0=1,klon
     337          i=index_i(ig0)
     338          j=index_j(ig0)
     339          zpk(ig0,l)=ppk(i,j,l)
     340        enddo
     341      ENDDO
     342c$OMP END DO NOWAIT
     343
    331344c
    332345c
     
    365378           enddo
    366379         ENDDO
    367 c$OMP END DO NOWAIT     
     380c$OMP END DO NOWAIT       
    368381      ENDDO
    369382
     
    382395           enddo
    383396         ENDDO
    384 c$OMP END DO NOWAIT     
     397c$OMP END DO NOWAIT       
    385398
    386399c      CALL gr_dyn_fi_p(llm,iip1,jjp1,klon,pphi,zphi)
     
    403416c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    404417      DO l=1,llm
    405         DO ig=1,klon
    406            zphi(ig,l)=zphi(ig,l)-zphis(ig)
    407         ENDDO
     418        DO ig=1,klon
     419           zphi(ig,l)=zphi(ig,l)-zphis(ig)
     420        ENDDO
    408421      ENDDO
    409422c$OMP END DO NOWAIT
     
    532545           DO i=2,iim
    533546             z1(i)   =(rlonu(i)-rlonu(i-1))*pvcov(i,jjm,l)/cv(i,jjm)
    534            ENDDO
     547           ENDDO
    535548 
    536549           DO i=1,iim
    537550              zcos(i)    = COS(rlonv(i))*z1(i)
    538551              zsin(i)    = SIN(rlonv(i))*z1(i)
    539            ENDDO
     552           ENDDO
    540553 
    541554           zufi(klon,l)  = SSUM(iim,zcos,1)/pi
     
    572585        allocate(zplev_omp(klon,llm+1))
    573586        allocate(zplay_omp(klon,llm))
     587        allocate(zpk_omp(klon,llm))
    574588        allocate(zphi_omp(klon,llm))
    575589        allocate(zphis_omp(klon))
     
    590604        allocate(zdpsrf_omp(klon))
    591605        allocate(flxwfi_omp(klon,llm))
    592         first_omp=.false.
     606        first_omp=.false.
    593607      endif
    594608       
    595            
     609           
    596610      klon=klon_omp
    597611      offset=klon_omp_begin-1
     
    600614        do i=1,klon
    601615          zplev_omp(i,l)=zplev(offset+i,l)
    602         enddo
    603       enddo
    604          
     616        enddo
     617      enddo
     618         
    605619       do l=1,llm
    606620        do i=1,klon 
    607           zplay_omp(i,l)=zplay(offset+i,l)
     621          zplay_omp(i,l)=zplay(offset+i,l)
     622        enddo
     623      enddo
     624       
     625       do l=1,llm
     626        do i=1,klon 
     627          zpk_omp(i,l)=zpk(offset+i,l)
    608628        enddo
    609629      enddo
     
    611631      do l=1,llm
    612632        do i=1,klon
    613           zphi_omp(i,l)=zphi(offset+i,l)
    614         enddo
    615       enddo
    616        
     633          zphi_omp(i,l)=zphi(offset+i,l)
     634        enddo
     635      enddo
     636       
    617637      do i=1,klon
    618         zphis_omp(i)=zphis(offset+i)
     638        zphis_omp(i)=zphis(offset+i)
    619639      enddo
    620640     
    621        
     641       
    622642      do l=1,llm
    623643        presnivs_omp(l)=presnivs(l)
    624644      enddo
    625        
    626       do l=1,llm
    627         do i=1,klon
    628           zufi_omp(i,l)=zufi(offset+i,l)
    629         enddo
    630       enddo
    631        
    632       do l=1,llm
    633         do i=1,klon
    634           zvfi_omp(i,l)=zvfi(offset+i,l)
    635         enddo
    636       enddo
    637        
    638       do l=1,llm
    639         do i=1,klon
    640           zrfi_omp(i,l)=zrfi(offset+i,l)
    641         enddo
    642       enddo
    643        
    644       do l=1,llm
    645         do i=1,klon
    646           ztfi_omp(i,l)=ztfi(offset+i,l)
    647         enddo
    648       enddo
    649        
     645       
     646      do l=1,llm
     647        do i=1,klon
     648          zufi_omp(i,l)=zufi(offset+i,l)
     649        enddo
     650      enddo
     651       
     652      do l=1,llm
     653        do i=1,klon
     654          zvfi_omp(i,l)=zvfi(offset+i,l)
     655        enddo
     656      enddo
     657       
     658      do l=1,llm
     659        do i=1,klon
     660          zrfi_omp(i,l)=zrfi(offset+i,l)
     661        enddo
     662      enddo
     663       
     664      do l=1,llm
     665        do i=1,klon
     666          ztfi_omp(i,l)=ztfi(offset+i,l)
     667        enddo
     668      enddo
     669       
    650670      do iq=1,nqtot
    651671        do l=1,llm
    652672          do i=1,klon
    653673            zqfi_omp(i,l,iq)=zqfi(offset+i,l,iq)
    654           enddo
    655         enddo
    656       enddo
    657        
    658       do l=1,llm
    659         do i=1,klon
    660           zdufi_omp(i,l)=zdufi(offset+i,l)
    661         enddo
    662       enddo
    663        
    664       do l=1,llm
    665         do i=1,klon
    666           zdvfi_omp(i,l)=zdvfi(offset+i,l)
    667         enddo
    668       enddo
    669        
     674          enddo
     675        enddo
     676      enddo
     677       
     678      do l=1,llm
     679        do i=1,klon
     680          zdufi_omp(i,l)=zdufi(offset+i,l)
     681        enddo
     682      enddo
     683       
     684      do l=1,llm
     685        do i=1,klon
     686          zdvfi_omp(i,l)=zdvfi(offset+i,l)
     687        enddo
     688      enddo
     689       
    670690      do l=1,llm
    671691        do i=1,klon
    672692          zdtfi_omp(i,l)=zdtfi(offset+i,l)
    673         enddo
    674       enddo
    675        
     693        enddo
     694      enddo
     695       
    676696      do iq=1,nqtot
    677697        do l=1,llm
    678698          do i=1,klon
    679             zdqfi_omp(i,l,iq)=zdqfi(offset+i,l,iq)
    680           enddo
     699            zdqfi_omp(i,l,iq)=zdqfi(offset+i,l,iq)
     700          enddo
    681701        enddo
    682702      enddo
    683        
     703             
    684704      do i=1,klon
    685         zdpsrf_omp(i)=zdpsrf(offset+i)
     705        zdpsrf_omp(i)=zdpsrf(offset+i)
    686706      enddo
    687707
     
    689709        do i=1,klon
    690710          flxwfi_omp(i,l)=flxwfi(offset+i,l)
    691         enddo
     711        enddo
    692712      enddo
    693713     
     
    715735     &                   jD_cur,jH_cur_split,zdt_split,
    716736     &                   zplev_omp,zplay_omp,
    717      &                   zphi_omp,zphis_omp,
     737     &                   zpk_omp,zphi_omp,zphis_omp,
    718738     &                   presnivs_omp,
    719739     &                   zufi_omp,zvfi_omp,zrfi_omp,ztfi_omp,zqfi_omp,
     
    749769        do i=1,klon
    750770          zplev(offset+i,l)=zplev_omp(i,l)
    751         enddo
    752       enddo
    753          
     771        enddo
     772      enddo
     773         
    754774       do l=1,llm
    755775        do i=1,klon 
    756           zplay(offset+i,l)=zplay_omp(i,l)
    757         enddo
    758       enddo
    759        
    760       do l=1,llm
    761         do i=1,klon
    762           zphi(offset+i,l)=zphi_omp(i,l)
    763         enddo
    764       enddo
    765        
     776          zplay(offset+i,l)=zplay_omp(i,l)
     777        enddo
     778      enddo
     779       
     780      do l=1,llm
     781        do i=1,klon
     782          zphi(offset+i,l)=zphi_omp(i,l)
     783        enddo
     784      enddo
     785       
    766786
    767787      do i=1,klon
    768         zphis(offset+i)=zphis_omp(i)
     788        zphis(offset+i)=zphis_omp(i)
    769789      enddo
    770790     
    771        
     791       
    772792      do l=1,llm
    773793        presnivs(l)=presnivs_omp(l)
    774794      enddo
    775        
    776       do l=1,llm
    777         do i=1,klon
    778           zufi(offset+i,l)=zufi_omp(i,l)
    779         enddo
    780       enddo
    781        
    782       do l=1,llm
    783         do i=1,klon
    784           zvfi(offset+i,l)=zvfi_omp(i,l)
    785         enddo
    786       enddo
    787        
    788       do l=1,llm
    789         do i=1,klon
    790           ztfi(offset+i,l)=ztfi_omp(i,l)
    791         enddo
    792       enddo
    793        
     795       
     796      do l=1,llm
     797        do i=1,klon
     798          zufi(offset+i,l)=zufi_omp(i,l)
     799        enddo
     800      enddo
     801       
     802      do l=1,llm
     803        do i=1,klon
     804          zvfi(offset+i,l)=zvfi_omp(i,l)
     805        enddo
     806      enddo
     807       
     808      do l=1,llm
     809        do i=1,klon
     810          ztfi(offset+i,l)=ztfi_omp(i,l)
     811        enddo
     812      enddo
     813       
    794814      do iq=1,nqtot
    795815        do l=1,llm
    796816          do i=1,klon
    797817            zqfi(offset+i,l,iq)=zqfi_omp(i,l,iq)
    798           enddo
    799         enddo
    800       enddo
    801        
    802       do l=1,llm
    803         do i=1,klon
    804           zdufi(offset+i,l)=zdufi_omp(i,l)
    805         enddo
    806       enddo
    807        
    808       do l=1,llm
    809         do i=1,klon
    810           zdvfi(offset+i,l)=zdvfi_omp(i,l)
    811         enddo
    812       enddo
    813        
     818          enddo
     819        enddo
     820      enddo
     821       
     822      do l=1,llm
     823        do i=1,klon
     824          zdufi(offset+i,l)=zdufi_omp(i,l)
     825        enddo
     826      enddo
     827       
     828      do l=1,llm
     829        do i=1,klon
     830          zdvfi(offset+i,l)=zdvfi_omp(i,l)
     831        enddo
     832      enddo
     833       
    814834      do l=1,llm
    815835        do i=1,klon
    816836          zdtfi(offset+i,l)=zdtfi_omp(i,l)
    817         enddo
    818       enddo
    819        
     837        enddo
     838      enddo
     839       
    820840      do iq=1,nqtot
    821841        do l=1,llm
    822842          do i=1,klon
    823             zdqfi(offset+i,l,iq)=zdqfi_omp(i,l,iq)
    824           enddo
     843            zdqfi(offset+i,l,iq)=zdqfi_omp(i,l,iq)
     844          enddo
    825845        enddo
    826846      enddo
    827        
     847             
    828848      do i=1,klon
    829         zdpsrf(offset+i)=zdpsrf_omp(i)
     849        zdpsrf(offset+i)=zdpsrf_omp(i)
    830850      enddo
    831851     
     
    929949       
    930950       if (.not. is_south_pole_dyn) then
    931         pdpsfi(:,jj_end:jj_end+1)=0
     951        pdpsfi(:,jj_end:jj_end+1)=0
    932952       endif
    933953c$OMP END MASTER
     
    10451065        pdqfi(:,jj_begin:jj_end,l,:)=0.
    10461066      ENDDO
    1047 c$OMP END DO NOWAIT     
     1067c$OMP END DO NOWAIT       
    10481068
    10491069C
     
    10561076!CDIR ON_ADB(index_j)
    10571077!cdir NODEP           
    1058              DO ig0=kstart,kend
     1078             DO ig0=kstart,kend
    10591079              i=index_i(ig0)
    10601080              j=index_j(ig0)
     
    10621082              if (i==1) pdqfi(iip1,j,l,iiq) = zdqfi(ig0,l,iq)
    10631083            ENDDO
    1064            
    1065             IF (is_north_pole_dyn) then
    1066               DO i=1,iip1
     1084           
     1085            IF (is_north_pole_dyn) then
     1086              DO i=1,iip1
    10671087                pdqfi(i,1,l,iiq)    = zdqfi(1,l,iq)
    1068               ENDDO
    1069             ENDIF
    1070            
    1071             IF (is_south_pole_dyn) then
    1072               DO i=1,iip1
     1088              ENDDO
     1089            ENDIF
     1090           
     1091            IF (is_south_pole_dyn) then
     1092              DO i=1,iip1
    10731093                pdqfi(i,jjp1,l,iiq) = zdqfi(klon,l,iq)
    1074               ENDDO
    1075             ENDIF
    1076            
     1094              ENDDO
     1095            ENDIF
     1096           
    10771097         ENDDO
    1078 c$OMP END DO NOWAIT     
     1098c$OMP END DO NOWAIT       
    10791099      ENDDO
    10801100     
     
    11361156           pdvfi(i,j,l)=0.5*(zdvfi2(ig0,l)+zdvfi2(ig0+iim,l))*cv(i,j)
    11371157           if (i==1) pdvfi(iip1,j,l) = 0.5*(zdvfi2(ig0,l)+
    1138      $                                      zdvfi2(ig0+iim,l))
    1139      $                                    *cv(i,j)
     1158     $                                            zdvfi2(ig0+iim,l))
     1159     $                                          *cv(i,j)
    11401160        enddo
    11411161         
  • LMDZ5/branches/testing/libf/dynphy_lonlat/calfis_p.F

    r2435 r2641  
    4747      USE callphysiq_mod, ONLY: call_physiq
    4848#endif
     49      USE comvert_mod, ONLY: preff, presnivs
     50      USE comconst_mod, ONLY: cpp, daysec, dtphys, dtvr, kappa, pi
    4951
    5052      IMPLICIT NONE
     
    105107#include "dimensions.h"
    106108#include "paramet.h"
    107 #include "temps.h"
    108109
    109110      INTEGER ngridmx
    110111      PARAMETER( ngridmx = 2+(jjm-1)*iim - 1/jjm   )
    111112
    112 #include "comconst.h"
    113 #include "comvert.h"
    114113#include "comgeom2.h"
    115114#include "iniprint.h"
     
    159158      REAL,ALLOCATABLE,SAVE :: zphi(:,:),zphis(:)
    160159c
    161       REAL zrot(iip1,jjb_v:jje_v,llm) ! AdlC May 2014
     160!      REAL zrot(iip1,jjb_v:jje_v,llm) ! AdlC May 2014
     161      REAL :: zrot(iip1,jjm,llm)
    162162      REAL,ALLOCATABLE,SAVE :: zufi(:,:), zvfi(:,:), zrfi(:,:)
    163163      REAL,ALLOCATABLE,SAVE :: ztfi(:,:),zqfi(:,:,:)
     164      REAL,ALLOCATABLE,SAVE ::  zpk(:,:)
    164165c
    165166      REAL,ALLOCATABLE,SAVE :: pcvgu(:,:), pcvgv(:,:)
     
    174175      REAL,ALLOCATABLE,SAVE :: zplev_omp(:,:)
    175176      REAL,ALLOCATABLE,SAVE :: zplay_omp(:,:)
     177      REAL,ALLOCATABLE,SAVE :: zpk_omp(:,:)
    176178      REAL,ALLOCATABLE,SAVE :: zphi_omp(:,:)
    177179      REAL,ALLOCATABLE,SAVE :: zphis_omp(:)
     
    211213!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    212214
    213 c$OMP THREADPRIVATE(zplev_omp,zplay_omp,zphi_omp,zphis_omp,
     215c$OMP THREADPRIVATE(zplev_omp,zplay_omp,zpk_omp,zphi_omp,zphis_omp,
    214216c$OMP+                 presnivs_omp,zufi_omp,zvfi_omp,ztfi_omp,
    215217c$OMP+                 zrfi_omp,zqfi_omp,zdufi_omp,zdvfi_omp,
     
    275277      ALLOCATE(zdufi2(klon+iim,llm),zdvfi2(klon+iim,llm))
    276278      ALLOCATE(flxwfi(klon,llm))
     279      ALLOCATE(zpk(klon,llm))
    277280c$OMP END MASTER
    278 c$OMP BARRIER    
     281c$OMP BARRIER         
    279282      ELSE
    280283          debut = .FALSE.
     
    328331      ENDDO
    329332c$OMP END DO NOWAIT
     333
     334c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
     335      DO l=1,llm
     336        do ig0=1,klon
     337          i=index_i(ig0)
     338          j=index_j(ig0)
     339          zpk(ig0,l)=ppk(i,j,l)
     340        enddo
     341      ENDDO
     342c$OMP END DO NOWAIT
     343
    330344c
    331345c
     
    364378           enddo
    365379         ENDDO
    366 c$OMP END DO NOWAIT     
     380c$OMP END DO NOWAIT       
    367381      ENDDO
    368382
     
    379393c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    380394      DO l=1,llm
    381         DO ig=1,klon
    382            zphi(ig,l)=zphi(ig,l)-zphis(ig)
    383         ENDDO
     395        DO ig=1,klon
     396           zphi(ig,l)=zphi(ig,l)-zphis(ig)
     397        ENDDO
    384398      ENDDO
    385399c$OMP END DO NOWAIT
     
    509523           DO i=2,iim
    510524             z1(i)   =(rlonu(i)-rlonu(i-1))*pvcov(i,jjm,l)/cv(i,jjm)
    511            ENDDO
     525           ENDDO
    512526 
    513527           DO i=1,iim
    514528              zcos(i)    = COS(rlonv(i))*z1(i)
    515529              zsin(i)    = SIN(rlonv(i))*z1(i)
    516            ENDDO
     530           ENDDO
    517531 
    518532           zufi(klon,l)  = SSUM(iim,zcos,1)/pi
     
    537551        allocate(zplev_omp(klon,llm+1))
    538552        allocate(zplay_omp(klon,llm))
     553        allocate(zpk_omp(klon,llm))
    539554        allocate(zphi_omp(klon,llm))
    540555        allocate(zphis_omp(klon))
     
    555570        allocate(zdpsrf_omp(klon))
    556571        allocate(flxwfi_omp(klon,llm))
    557         first_omp=.false.
     572        first_omp=.false.
    558573      endif
    559574       
    560            
     575           
    561576      klon=klon_omp
    562577      offset=klon_omp_begin-1
     
    565580        do i=1,klon
    566581          zplev_omp(i,l)=zplev(offset+i,l)
    567         enddo
    568       enddo
    569          
     582        enddo
     583      enddo
     584         
    570585       do l=1,llm
    571586        do i=1,klon 
    572           zplay_omp(i,l)=zplay(offset+i,l)
     587          zplay_omp(i,l)=zplay(offset+i,l)
     588        enddo
     589      enddo
     590       
     591       do l=1,llm
     592        do i=1,klon 
     593          zpk_omp(i,l)=zpk(offset+i,l)
    573594        enddo
    574595      enddo
     
    576597      do l=1,llm
    577598        do i=1,klon
    578           zphi_omp(i,l)=zphi(offset+i,l)
    579         enddo
    580       enddo
    581        
     599          zphi_omp(i,l)=zphi(offset+i,l)
     600        enddo
     601      enddo
     602       
    582603      do i=1,klon
    583         zphis_omp(i)=zphis(offset+i)
     604        zphis_omp(i)=zphis(offset+i)
    584605      enddo
    585606     
    586        
     607       
    587608      do l=1,llm
    588609        presnivs_omp(l)=presnivs(l)
    589610      enddo
    590        
    591       do l=1,llm
    592         do i=1,klon
    593           zufi_omp(i,l)=zufi(offset+i,l)
    594         enddo
    595       enddo
    596        
    597       do l=1,llm
    598         do i=1,klon
    599           zvfi_omp(i,l)=zvfi(offset+i,l)
    600         enddo
    601       enddo
    602        
    603       do l=1,llm
    604         do i=1,klon
    605           zrfi_omp(i,l)=zrfi(offset+i,l)
    606         enddo
    607       enddo
    608        
    609        
    610       do l=1,llm
    611         do i=1,klon
    612           ztfi_omp(i,l)=ztfi(offset+i,l)
    613         enddo
    614       enddo
    615        
     611       
     612      do l=1,llm
     613        do i=1,klon
     614          zufi_omp(i,l)=zufi(offset+i,l)
     615        enddo
     616      enddo
     617       
     618      do l=1,llm
     619        do i=1,klon
     620          zvfi_omp(i,l)=zvfi(offset+i,l)
     621        enddo
     622      enddo
     623       
     624      do l=1,llm
     625        do i=1,klon
     626          zrfi_omp(i,l)=zrfi(offset+i,l)
     627        enddo
     628      enddo
     629       
     630       
     631      do l=1,llm
     632        do i=1,klon
     633          ztfi_omp(i,l)=ztfi(offset+i,l)
     634        enddo
     635      enddo
     636       
    616637      do iq=1,nqtot
    617638        do l=1,llm
    618639          do i=1,klon
    619640            zqfi_omp(i,l,iq)=zqfi(offset+i,l,iq)
    620           enddo
    621         enddo
    622       enddo
    623        
    624       do l=1,llm
    625         do i=1,klon
    626           zdufi_omp(i,l)=zdufi(offset+i,l)
    627         enddo
    628       enddo
    629        
    630       do l=1,llm
    631         do i=1,klon
    632           zdvfi_omp(i,l)=zdvfi(offset+i,l)
    633         enddo
    634       enddo
    635        
     641          enddo
     642        enddo
     643      enddo
     644       
     645      do l=1,llm
     646        do i=1,klon
     647          zdufi_omp(i,l)=zdufi(offset+i,l)
     648        enddo
     649      enddo
     650       
     651      do l=1,llm
     652        do i=1,klon
     653          zdvfi_omp(i,l)=zdvfi(offset+i,l)
     654        enddo
     655      enddo
     656       
    636657      do l=1,llm
    637658        do i=1,klon
    638659          zdtfi_omp(i,l)=zdtfi(offset+i,l)
    639         enddo
    640       enddo
    641        
     660        enddo
     661      enddo
     662       
    642663      do iq=1,nqtot
    643664        do l=1,llm
    644665          do i=1,klon
    645             zdqfi_omp(i,l,iq)=zdqfi(offset+i,l,iq)
    646           enddo
     666            zdqfi_omp(i,l,iq)=zdqfi(offset+i,l,iq)
     667          enddo
    647668        enddo
    648669      enddo
    649        
     670             
    650671      do i=1,klon
    651         zdpsrf_omp(i)=zdpsrf(offset+i)
     672        zdpsrf_omp(i)=zdpsrf(offset+i)
    652673      enddo
    653674
     
    655676        do i=1,klon
    656677          flxwfi_omp(i,l)=flxwfi(offset+i,l)
    657         enddo
     678        enddo
    658679      enddo
    659680     
     
    680701     &                   jD_cur,jH_cur_split,zdt_split,
    681702     &                   zplev_omp,zplay_omp,
    682      &                   zphi_omp,zphis_omp,
     703     &                   zpk_omp,zphi_omp,zphis_omp,
    683704     &                   presnivs_omp,
    684705     &                   zufi_omp,zvfi_omp,zrfi_omp,ztfi_omp,zqfi_omp,
     
    712733        do i=1,klon
    713734          zplev(offset+i,l)=zplev_omp(i,l)
    714         enddo
    715       enddo
    716          
     735        enddo
     736      enddo
     737         
    717738       do l=1,llm
    718739        do i=1,klon 
    719           zplay(offset+i,l)=zplay_omp(i,l)
    720         enddo
    721       enddo
    722        
    723       do l=1,llm
    724         do i=1,klon
    725           zphi(offset+i,l)=zphi_omp(i,l)
    726         enddo
    727       enddo
    728        
     740          zplay(offset+i,l)=zplay_omp(i,l)
     741        enddo
     742      enddo
     743       
     744      do l=1,llm
     745        do i=1,klon
     746          zphi(offset+i,l)=zphi_omp(i,l)
     747        enddo
     748      enddo
     749       
    729750
    730751      do i=1,klon
    731         zphis(offset+i)=zphis_omp(i)
     752        zphis(offset+i)=zphis_omp(i)
    732753      enddo
    733754     
    734        
     755       
    735756      do l=1,llm
    736757        presnivs(l)=presnivs_omp(l)
    737758      enddo
    738        
    739       do l=1,llm
    740         do i=1,klon
    741           zufi(offset+i,l)=zufi_omp(i,l)
    742         enddo
    743       enddo
    744        
    745       do l=1,llm
    746         do i=1,klon
    747           zvfi(offset+i,l)=zvfi_omp(i,l)
    748         enddo
    749       enddo
    750        
    751       do l=1,llm
    752         do i=1,klon
    753           ztfi(offset+i,l)=ztfi_omp(i,l)
    754         enddo
    755       enddo
    756        
     759       
     760      do l=1,llm
     761        do i=1,klon
     762          zufi(offset+i,l)=zufi_omp(i,l)
     763        enddo
     764      enddo
     765       
     766      do l=1,llm
     767        do i=1,klon
     768          zvfi(offset+i,l)=zvfi_omp(i,l)
     769        enddo
     770      enddo
     771       
     772      do l=1,llm
     773        do i=1,klon
     774          ztfi(offset+i,l)=ztfi_omp(i,l)
     775        enddo
     776      enddo
     777       
    757778      do iq=1,nqtot
    758779        do l=1,llm
    759780          do i=1,klon
    760781            zqfi(offset+i,l,iq)=zqfi_omp(i,l,iq)
    761           enddo
    762         enddo
    763       enddo
    764        
    765       do l=1,llm
    766         do i=1,klon
    767           zdufi(offset+i,l)=zdufi_omp(i,l)
    768         enddo
    769       enddo
    770        
    771       do l=1,llm
    772         do i=1,klon
    773           zdvfi(offset+i,l)=zdvfi_omp(i,l)
    774         enddo
    775       enddo
    776        
     782          enddo
     783        enddo
     784      enddo
     785       
     786      do l=1,llm
     787        do i=1,klon
     788          zdufi(offset+i,l)=zdufi_omp(i,l)
     789        enddo
     790      enddo
     791       
     792      do l=1,llm
     793        do i=1,klon
     794          zdvfi(offset+i,l)=zdvfi_omp(i,l)
     795        enddo
     796      enddo
     797       
    777798      do l=1,llm
    778799        do i=1,klon
    779800          zdtfi(offset+i,l)=zdtfi_omp(i,l)
    780         enddo
    781       enddo
    782        
     801        enddo
     802      enddo
     803       
    783804      do iq=1,nqtot
    784805        do l=1,llm
    785806          do i=1,klon
    786             zdqfi(offset+i,l,iq)=zdqfi_omp(i,l,iq)
    787           enddo
     807            zdqfi(offset+i,l,iq)=zdqfi_omp(i,l,iq)
     808          enddo
    788809        enddo
    789810      enddo
    790        
     811             
    791812      do i=1,klon
    792         zdpsrf(offset+i)=zdpsrf_omp(i)
     813        zdpsrf(offset+i)=zdpsrf_omp(i)
    793814      enddo
    794815     
     
    891912       pdpsfi(:,jj_begin)=0   
    892913       if (.not. is_south_pole_dyn) then
    893         pdpsfi(:,jj_end)=0
     914        pdpsfi(:,jj_end)=0
    894915       endif
    895916c$OMP END MASTER
     
    975996        pdqfi(:,:,l,:)=0.
    976997      ENDDO
    977 c$OMP END DO NOWAIT     
     998c$OMP END DO NOWAIT       
    978999
    9791000C
     
    9861007!CDIR ON_ADB(index_j)
    9871008!cdir NODEP           
    988              DO ig0=kstart,kend
     1009             DO ig0=kstart,kend
    9891010              i=index_i(ig0)
    9901011              j=index_j(ig0)
     
    9921013              if (i==1) pdqfi(iip1,j,l,iiq) = zdqfi(ig0,l,iq)
    9931014            ENDDO
    994            
    995             IF (is_north_pole_dyn) then
    996               DO i=1,iip1
     1015           
     1016            IF (is_north_pole_dyn) then
     1017              DO i=1,iip1
    9971018                pdqfi(i,1,l,iiq)    = zdqfi(1,l,iq)
    998               ENDDO
    999             ENDIF
    1000            
    1001             IF (is_south_pole_dyn) then
    1002               DO i=1,iip1
     1019              ENDDO
     1020            ENDIF
     1021           
     1022            IF (is_south_pole_dyn) then
     1023              DO i=1,iip1
    10031024                pdqfi(i,jjp1,l,iiq) = zdqfi(klon,l,iq)
    1004               ENDDO
    1005             ENDIF
    1006            
     1025              ENDDO
     1026            ENDIF
     1027           
    10071028         ENDDO
    1008 c$OMP END DO NOWAIT     
     1029c$OMP END DO NOWAIT       
    10091030      ENDDO
    10101031     
     
    10661087           pdvfi(i,j,l)=0.5*(zdvfi2(ig0,l)+zdvfi2(ig0+iim,l))*cv(i,j)
    10671088           if (i==1) pdvfi(iip1,j,l) = 0.5*(zdvfi2(ig0,l)+
    1068      $                                      zdvfi2(ig0+iim,l))
    1069      $                                    *cv(i,j)
     1089     $                                            zdvfi2(ig0+iim,l))
     1090     $                                          *cv(i,j)
    10701091        enddo
    10711092         
  • LMDZ5/branches/testing/libf/dynphy_lonlat/phylmd/callphysiq_mod.F90

    r2435 r2641  
    1212                       jD_cur,jH_cur_split,zdt_split,                     &
    1313                       zplev_omp,zplay_omp,                               &
    14                        zphi_omp,zphis_omp,                                &
     14                       zpk_omp,zphi_omp,zphis_omp,                        &
    1515                       presnivs_omp,                                      &
    1616                       zufi_omp,zvfi_omp,zrfi_omp,ztfi_omp,zqfi_omp,      &
     
    3535  REAL,INTENT(IN) :: zplev_omp(klon,llm+1) ! interlayer pressure (Pa)
    3636  REAL,INTENT(IN) :: zplay_omp(klon,llm) ! mid-layer pressure (Pa)
     37  REAL,INTENT(IN) :: zpk_omp(klon,llm) ! Exner function
    3738  REAL,INTENT(IN) :: zphi_omp(klon,llm) ! geopotential at midlayer
    3839  REAL,INTENT(IN) :: zphis_omp(klon) ! surface geopotential
  • LMDZ5/branches/testing/libf/dynphy_lonlat/phylmd/ce0l.F90

    r2471 r2641  
    3434  USE mod_interface_dyn_phys, ONLY: init_interface_dyn_phys
    3535#endif
     36  USE comconst_mod, ONLY: cpp, daysec, dtphys, dtvr, g, kappa, omeg, r, rad, &
     37                          pi, jmp1
     38  USE logic_mod, ONLY: iflag_phys, ok_etat0, ok_limit
     39  USE comvert_mod, ONLY: pa, preff, pressure_exner
     40  USE temps_mod, ONLY: calend, day_ini, dt
    3641
    3742  IMPLICIT NONE
     
    4247  include "paramet.h"
    4348  include "comgeom2.h"
    44   include "comconst.h"
    45   include "comvert.h"
    4649  include "iniprint.h"
    47   include "temps.h"
    48   include "logic.h"
    4950  REAL               :: masque(iip1,jjp1)             !--- CONTINENTAL MASK
    5051  REAL               :: phis  (iip1,jjp1)             !--- GROUND GEOPOTENTIAL
  • LMDZ5/branches/testing/libf/dynphy_lonlat/phylmd/etat0dyn_netcdf.F90

    r2435 r2641  
    3636  USE ioipsl,         ONLY: flininfo, flinopen, flinget, flinclo, histclo
    3737  USE assert_eq_m,    ONLY: assert_eq
     38  USE comconst_mod, ONLY: pi, cpp, kappa
     39  USE comvert_mod, ONLY: ap, bp, preff, pressure_exner
     40  USE temps_mod, ONLY: annee_ref, day_ref, itau_dyn, itau_phy
     41 
    3842  IMPLICIT NONE
    3943
     
    4549  include "paramet.h"
    4650  include "comgeom2.h"
    47   include "comvert.h"
    48   include "comconst.h"
    49   include "temps.h"
    5051  include "comdissnew.h"
    51   include "serre.h"
    5252  REAL, SAVE :: deg2rad
    5353  INTEGER,            SAVE      :: iml_dyn, jml_dyn, llm_dyn, ttm_dyn, fid_dyn
  • LMDZ5/branches/testing/libf/dynphy_lonlat/phylmd/etat0phys_netcdf.F90

    r2542 r2641  
    4444    zmax0,fevap, rnebcon,falb_dir, wake_fip,    agesno,  detr_therm, pbl_tke,  &
    4545    phys_state_var_init
     46  USE comconst_mod, ONLY: pi, dtvr
    4647
    4748  PRIVATE
     
    5253  include "paramet.h"
    5354  include "comgeom2.h"
    54   include "comconst.h"
    5555  include "dimsoil.h"
    56   include "temps.h"
    5756  include "clesphys.h"
    5857  REAL, SAVE :: deg2rad
  • LMDZ5/branches/testing/libf/dynphy_lonlat/phylmd/iniphysiq_mod.F90

    r2594 r2641  
    1212                     prad,pg,pr,pcpp,iflag_phys)
    1313  USE dimphy, ONLY: init_dimphy
     14  USE comvert_mod, ONLY: preff, ap, bp, presnivs, scaleheight, pseudoalt
    1415  USE inigeomphy_mod, ONLY: inigeomphy
    15   USE mod_grid_phy_lmdz, ONLY: klon_glo ! number of atmospheric columns (on full grid)
     16  USE mod_grid_phy_lmdz, ONLY: nbp_lon,nbp_lat,nbp_lev,klon_glo ! number of atmospheric columns (on full grid)
    1617  USE mod_phys_lmdz_para, ONLY: klon_omp ! number of columns (on local omp grid)
    1718  USE vertical_layers_mod, ONLY : init_vertical_layers
     
    2829  USE CHEM_REP, ONLY : Init_chem_rep_phys
    2930#endif
    30   USE control_mod, ONLY: dayref,anneeref,day_step,nday,offline, iphysiq
     31  USE control_mod, ONLY: dayref,anneeref,day_step,nday,offline, iphysiq, config_inca
    3132  USE inifis_mod, ONLY: inifis
    3233  USE time_phylmdz_mod, ONLY: init_time
     34  USE temps_mod, ONLY: annee_ref, day_ini, day_ref, start_time, calend
    3335  USE infotrac_phy, ONLY: init_infotrac_phy
    3436  USE phystokenc_mod, ONLY: init_phystokenc
     
    5052
    5153  include "dimensions.h"
    52   include "comvert.h"
    53   include "comconst.h"
    5454  include "iniprint.h"
    55   include "temps.h"
    5655  include "tracstoke.h"
    5756
     
    9998  ! --> now initialize things specific to the phylmd physics package
    10099 
    101 !$OMP PARALLEL DEFAULT(SHARED) COPYIN(/temps/)
     100!!$OMP PARALLEL DEFAULT(SHARED) COPYIN(/temps/)
     101!$OMP PARALLEL DEFAULT(SHARED) &
     102!       Copy all threadprivate variables in temps_mod
     103!$OMP COPYIN(annee_ref, day_ini, day_ref, start_time)
    102104
    103105  ! copy over preff , ap(), bp(), etc
     
    139141     call init_const_lmdz( &
    140142          anneeref,dayref, iphysiq,day_step,nday,  &
    141           nbsrf, is_oce,is_sic, is_ter,is_lic, calend)
     143          nbsrf, is_oce,is_sic, is_ter,is_lic, calend, &
     144          config_inca)
    142145     call init_inca_para( &
    143146          nbp_lon,nbp_lat,nbp_lev,klon_glo,mpi_size, &
     
    145148#endif
    146149  END IF
    147 !$OMP PARALLEL DEFAULT(SHARED) COPYIN(/temps/)
    148150
     151!!$OMP PARALLEL DEFAULT(SHARED) COPYIN(/temps/)
     152!$OMP PARALLEL DEFAULT(SHARED)
    149153  ! Additional initializations for aquaplanets
    150154  IF (iflag_phys>=100) THEN
  • LMDZ5/branches/testing/libf/dynphy_lonlat/phylmd/init_ssrf_m.F90

    r2435 r2641  
    99  USE grid_atob_m,        ONLY: grille_m
    1010  USE ioipsl,             ONLY: flininfo, flinopen, flinget, flinclo
     11  USE comconst_mod, ONLY: im, pi
    1112
    1213  CHARACTER(LEN=256), PARAMETER :: icefname="landiceref.nc", icevar="landice"
     
    1718  include "paramet.h"
    1819  include "comgeom2.h"
    19   include "comconst.h"
    2020
    2121CONTAINS
  • LMDZ5/branches/testing/libf/dynphy_lonlat/phylmd/limit_netcdf.F90

    r2594 r2641  
    6767                  NF90_DEF_DIM, NF90_DEF_VAR, NF90_PUT_VAR, NF90_PUT_ATT,      &
    6868                  NF90_NOERR,   NF90_NOWRITE, NF90_DOUBLE,  NF90_GLOBAL,       &
    69                   NF90_CLOBBER, NF90_ENDDEF,  NF90_UNLIMITED, NF90_FLOAT
     69                  NF90_CLOBBER, NF90_ENDDEF,  NF90_UNLIMITED, NF90_FLOAT
    7070  USE inter_barxy_m,      ONLY: inter_barxy
    7171  USE netcdf95,           ONLY: nf95_def_var, nf95_put_att, nf95_put_var
     72  USE comconst_mod, ONLY: pi
    7273  IMPLICIT NONE
    7374!-------------------------------------------------------------------------------
     
    8182!-------------------------------------------------------------------------------
    8283! Local variables:
    83   include "logic.h"
    8484  include "comgeom2.h"
    85   include "comconst.h"
    8685
    8786!--- INPUT NETCDF FILES NAMES --------------------------------------------------
  • LMDZ5/branches/testing/libf/dynphy_lonlat/phylmd/test_disvert_m.F90

    r2435 r2641  
    1515    use exner_hyb_m, only: exner_hyb
    1616    use vertical_layers_mod, only: ap,bp,preff
     17    use comconst_mod, only: kappa, cpp
    1718
    1819    ! For llm:
    1920    include "dimensions.h"
    20 
    21     ! For kappa, cpp:
    22     include "comconst.h"
    2321
    2422    ! Local:
  • LMDZ5/branches/testing/libf/dynphy_lonlat/phymar/iniphysiq_mod.F90

    r2594 r2641  
    1212                     prad,pg,pr,pcpp,iflag_phys)
    1313  USE dimphy, ONLY: init_dimphy
     14  USE comvert_mod, ONLY: preff, ap, bp, presnivs, scaleheight, pseudoalt
    1415  USE inigeomphy_mod, ONLY: inigeomphy
     16  USE vertical_layers_mod, ONLY : init_vertical_layers
    1517  USE infotrac, ONLY: nqtot
    1618  USE comcstphy, ONLY: rradius, & ! planet radius (m)
     
    6971!$OMP PARALLEL
    7072
     73  ! copy over preff , ap(), bp(), etc
     74  CALL init_vertical_layers(nlayer,preff,scaleheight, &
     75                            ap,bp,presnivs,pseudoalt)
     76
    7177  ! Initialize tracer names, numbers, etc. for physics
    7278  CALL init_infotrac_phy(nqtot)
  • LMDZ5/branches/testing/libf/filtrez/filtreg_mod.F90

    r1910 r2641  
    1414  USE mod_filtre_fft_loc, ONLY : Init_filtre_fft_loc=>Init_filtre_fft    !
    1515#endif
     16  USE serre_mod, ONLY: alphax
     17  USE logic_mod, ONLY: fxyhypb, ysinus
    1618    !    ... H. Upadhyaya, O.Sharma   ...
    1719    !
     
    2224    !     Correction  le 28/10/97    P. Le Van .
    2325    !  -------------------------------------------------------------------
    24 #include "dimensions.h"
    25 #include "paramet.h"
     26    include "dimensions.h"
     27    include "paramet.h"
    2628    !  -------------------------------------------------------------------
    27 #include "comgeom.h"
    28 #include "coefils.h"
    29 #include "logic.h"
    30 #include "serre.h"
     29    include "comgeom.h"
     30    include "coefils.h"
    3131
    3232    REAL  dlonu(iim),dlatu(jjm)
  • LMDZ5/branches/testing/libf/filtrez/inifgn.F

    r1910 r2641  
    88      IMPLICIT NONE
    99c
    10 #include "dimensions.h"
    11 #include "paramet.h"
    12 #include "comgeom.h"
    13 #include "serre.h"
     10      include "dimensions.h"
     11      include "paramet.h"
     12      include "comgeom.h"
    1413
    1514c
     
    2019      INTEGER i,j,k,imm1,nrot
    2120C
    22 #include "coefils.h"
     21      include "coefils.h"
    2322c
    2423      EXTERNAL SSUM, acc,eigen,jacobi
  • LMDZ5/branches/testing/libf/phylmd/YOETHF.h

    r2056 r2641  
    2424     &               RALFDCP,RTWAT,RTBER,RTBERCU,                       &
    2525     &               RTICE,RTICECU,RTWAT_RTICE_R,RTWAT_RTICECU_R,RKOOP1,&
    26      &               RKOOP2
     26     &               RKOOP2
    2727
    2828!$OMP THREADPRIVATE(/YOETHF/)
  • LMDZ5/branches/testing/libf/phylmd/add_pbl_tend.F90

    r2408 r2641  
    1 SUBROUTINE add_pbl_tend(zdu, zdv, zdt, zdq, zdql, zdqi, paprs, text,abortphy)
     1SUBROUTINE add_pbl_tend(zdu, zdv, zdt, zdq, zdql, zdqi, paprs, text,abortphy,flag_inhib_tend)
    22  ! ======================================================================
    33  ! Ajoute les tendances de couche limite, soit determinees par la
     
    3434  CHARACTER *(*) text
    3535  REAL paprs(klon,klev+1)
     36  INTEGER flag_inhib_tend ! if flag_inhib_tend != 0, tendencies are not added
    3637
    3738  ! Local :
     
    5657    PRINT *, ' add_pbl_tend, zzdt ', zzdt
    5758    PRINT *, ' add_pbl_tend, zzdq ', zzdq
    58     CALL add_phys_tend(zdu, zdv, zzdt, zzdq, zdql, zdqi, paprs, text,abortphy)
     59    CALL add_phys_tend(zdu, zdv, zzdt, zzdq, zdql, zdqi, paprs, text,abortphy,flag_inhib_tend)
    5960  ELSE
    60     CALL add_phys_tend(zdu, zdv, zdt, zdq, zdql, zdqi, paprs, text,abortphy)
     61    CALL add_phys_tend(zdu, zdv, zdt, zdq, zdql, zdqi, paprs, text,abortphy,flag_inhib_tend)
    6162  END IF
    6263
  • LMDZ5/branches/testing/libf/phylmd/add_phys_tend.F90

    r2435 r2641  
    22! $Id$
    33!
    4 SUBROUTINE add_phys_tend (zdu,zdv,zdt,zdq,zdql,zdqi,paprs,text,abortphy)
     4SUBROUTINE add_phys_tend (zdu,zdv,zdt,zdq,zdql,zdqi,paprs,text,abortphy,flag_inhib_tend)
    55!======================================================================
    66! Ajoute les tendances des variables physiques aux variables
     
    2020USE geometry_mod, ONLY: longitude_deg, latitude_deg
    2121USE print_control_mod, ONLY: prt_level
     22USE cmp_seri_mod
    2223IMPLICIT none
    2324  include "YOMCST.h"
     
    3132CHARACTER*(*) text
    3233INTEGER abortphy
     34INTEGER flag_inhib_tend ! if flag_inhib_tend != 0, tendencies are not added
    3335
    3436! Local :
     
    5557! Initialisations
    5658
    57       IF (abortphy==1) RETURN ! on n ajoute pas les tendance si le modele
     59     IF (prt_level >= 5) then
     60        write (*,*) "In add_phys_tend, after ",text
     61        call flush
     62     end if
     63
     64     ! if flag_inhib_tend != 0, tendencies are not added
     65     IF (flag_inhib_tend /= 0) then
     66        ! If requiered, diagnostics are shown
     67        IF (flag_inhib_tend > 0) then
     68           ! print some diagnostics if xxx_seri have changed
     69           call cmp_seri(flag_inhib_tend,text)
     70        END IF
     71        RETURN ! on n ajoute pas les tendance
     72     END IF
     73
     74     IF (abortphy==1) RETURN ! on n ajoute pas les tendance si le modele
    5875                              ! a deja plante.
    5976
     
    259276
    260277
    261       RETURN
    262       END
     278  RETURN
     279END SUBROUTINE add_phys_tend
  • LMDZ5/branches/testing/libf/phylmd/aeropt_2bands.F90

    r2595 r2641  
    1212  USE phys_local_var_mod, only: absvisaer
    1313  USE pres2lev_mod
    14 
    1514
    1615  !    Yves Balkanski le 12 avril 2006
     
    128127  REAL :: zrho
    129128  REAL :: fac
    130   REAL :: zdp1(klon,klev)
    131   REAL, PARAMETER ::  gravit = 9.80616    ! m2/s
     129  REAL :: zdh(klon,klev)
    132130  INTEGER, ALLOCATABLE, DIMENSION(:)   :: aerosol_name
    133131  INTEGER :: nb_aer
    134   REAL, DIMENSION(klon,klev,naero_tot) :: mass_temp
    135 !RAF
    136   REAL, DIMENSION(klon,klev,naero_tot) :: mass_temp_pi
    137132
    138133  !
     
    587582  END IF ! firstcall
    588583
    589 
    590584  DO k=1, klev
    591585    DO i=1, klon
    592       zrho=pplay(i,k)/t_seri(i,k)/RD                  ! kg/m3
    593       mass_temp(i,k,:) = m_allaer(i,k,:) / zrho / 1.e+9
    594       mass_temp_pi(i,k,:) = m_allaer_pi(i,k,:) / zrho / 1.e+9
    595       zdp1(i,k)=pdel(i,k)/(gravit*delt)      ! air mass auxiliary  variable --> zdp1 [kg/(m^2 *s)]
     586      zrho=pplay(i,k)/t_seri(i,k)/RD    ! kg/m3
     587      zdh(i,k)=pdel(i,k)/(RG*zrho)      ! m
    596588    ENDDO
    597589  ENDDO
     
    645637  !      compute optical_thickness_at_gridpoint_per_species
    646638
    647 
    648 
    649639!CDIR ON_ADB(fact_RH)
    650640!CDIR SHORTLOOP
     
    660650      IF (rh(i,k).GT.85.) RH_num(i,k)=10
    661651      IF (rh(i,k).GT.90.) RH_num(i,k)=11
    662      
    663652      DELTA(i,k)=(rh(i,k)-RH_tab(RH_num(i,k)))*fact_RH(RH_num(i,k))
    664653    ENDDO
     
    718707    used_aer(id)=.TRUE.
    719708
    720      
    721709    IF (soluble) THEN
    722710
     
    739727!CDIR ON_ADB(C1_ASSSM_b2)
    740728!CDIR ON_ADB(C2_ASSSM_b2)
     729
    741730              DO i=1, KLON
     731
    742732                H=rh(i,k)/100
    743                 tmp_var=mass_temp(i,k,spsol)*1000.*zdp1(i,k)*delt*fac
    744                 tmp_var_pi=mass_temp_pi(i,k,spsol)*1000.*zdp1(i,k)*delt*fac
     733                tmp_var=m_allaer(i,k,spsol)/1.e6*zdh(i,k)*fac
     734                tmp_var_pi=m_allaer_pi(i,k,spsol)/1.e6*zdh(i,k)*fac
    745735
    746736                ! band 1
     
    784774!CDIR ON_ADB(C1_CSSSM_b2)
    785775!CDIR ON_ADB(C2_CSSSM_b2)
     776
    786777              DO i=1, KLON
     778
    787779                H=rh(i,k)/100
    788                 tmp_var=mass_temp(i,k,spsol)*1000.*zdp1(i,k)*delt*fac
    789                 tmp_var_pi=mass_temp_pi(i,k,spsol)*1000.*zdp1(i,k)*delt*fac
     780                tmp_var=m_allaer(i,k,spsol)/1.e6*zdh(i,k)*fac
     781                tmp_var_pi=m_allaer_pi(i,k,spsol)/1.e6*zdh(i,k)*fac
    790782                ! band 1
    791783                tau_ae2b_int=A1_CSSSM_b1(k)+A2_CSSSM_b1(k)*H+A3_CSSSM_b1(k)/(H-1.05)
     
    828820!CDIR ON_ADB(C1_SSSSM_b2)
    829821!CDIR ON_ADB(C2_SSSSM_b2)
     822
    830823              DO i=1, KLON
     824
    831825                H=rh(i,k)/100
    832                 tmp_var=mass_temp(i,k,spsol)*1000.*zdp1(i,k)*delt*fac
    833                 tmp_var_pi=mass_temp_pi(i,k,spsol)*1000.*zdp1(i,k)*delt*fac
     826                tmp_var=m_allaer(i,k,spsol)/1.e6*zdh(i,k)*fac
     827                tmp_var_pi=m_allaer_pi(i,k,spsol)/1.e6*zdh(i,k)*fac
    834828
    835829                ! band 1
     
    864858          DO k=1, KLEV
    865859            DO i=1, KLON
    866               tmp_var=mass_temp(i,k,spsol)*1000.*zdp1(i,k)*delt*fac
    867               tmp_var_pi=mass_temp_pi(i,k,spsol)*1000.*zdp1(i,k)*delt*fac
     860              tmp_var=m_allaer(i,k,spsol)/1.e6*zdh(i,k)*fac
     861              tmp_var_pi=m_allaer_pi(i,k,spsol)/1.e6*zdh(i,k)*fac
    868862!CDIR UNROLL=nbands
    869863              DO inu=1,nbands
     
    899893        DO k=1, KLEV
    900894          DO i=1, KLON
    901             tmp_var=mass_temp(i,k,naero_soluble+ spinsol)*1000.*zdp1(i,k)*delt*fac
    902             tmp_var_pi=mass_temp_pi(i,k,naero_soluble+spinsol)*1000.*zdp1(i,k)*delt*fac
     895            tmp_var=m_allaer(i,k,naero_soluble+spinsol)/1.e6*zdh(i,k)*fac
     896            tmp_var_pi=m_allaer_pi(i,k,naero_soluble+spinsol)/1.e6*zdh(i,k)*fac
    903897!CDIR UNROLL=nbands
    904898            DO inu=1,nbands
     
    931925
    932926  DO inu=1, nbands
    933     DO mrfspecies=1,naero_grp
     927
     928    !!DO mrfspecies=1,naero_grp
     929    DO mrfspecies=2,3    !--only deal with total and natural aerosols
     930
    934931      IF (mrfspecies .EQ. 2) THEN             ! = total aerosol AER     
     932
    935933        DO k=1, KLEV
    936934          DO i=1, KLON
     
    10261024                   
    10271025      ELSEIF (mrfspecies .EQ. 4) THEN             ! = BC
     1026
    10281027        DO k=1, KLEV
    10291028          DO i=1, KLON
     
    11281127  ENDDO
    11291128
    1130   inu=1         ! visible wavaband
     1129  inu=1         ! visible waveband
    11311130  mrfspecies=2  ! total aerosol AER     
    11321131  DO i=1, KLON
  • LMDZ5/branches/testing/libf/phylmd/aeropt_5wv.F90

    r2594 r2641  
    1313  USE phys_local_var_mod, only: od550aer,od865aer,ec550aer,od550lt1aer
    1414  USE pres2lev_mod
    15 
    1615
    1716  !
     
    6665  ! Output arguments:
    6766  !
    68   REAL, DIMENSION(klon), INTENT(out)          :: ai      ! POLDER aerosol index 
     67  REAL, DIMENSION(klon), INTENT(out)          :: ai      ! POLDER aerosol index
    6968  REAL, DIMENSION(klon,nwave,naero_tot), INTENT(out)      :: tausum
    7069  REAL, DIMENSION(klon,klev,nwave,naero_tot), INTENT(out) :: tau
    71 
    72 
    7370  !
    7471  ! Local
     
    134131  REAL :: cg_ae5wv_int  ! Intermediate asymmetry parameter aerosol
    135132  REAL, PARAMETER :: RH_MAX=95.
    136   REAL :: taue670(KLON)       ! epaisseur optique aerosol absorption 550 nm
    137   REAL :: taue865(KLON)       ! epaisseur optique aerosol extinction 865 nm
     133  REAL :: taue670(klon)       ! epaisseur optique aerosol absorption 550 nm
     134  REAL :: taue865(klon)       ! epaisseur optique aerosol extinction 865 nm
    138135  REAL :: fac
    139   REAL :: zdp1(klon,klev)
    140   REAL, PARAMETER ::  gravit = 9.80616    ! m2/s
    141136  INTEGER, ALLOCATABLE, DIMENSION(:)  :: aerosol_name
    142137  INTEGER :: nb_aer
    143138 
    144   REAL :: tau3d(KLON,KLEV), piz3d(KLON,KLEV), cg3d(KLON,KLEV)
    145   REAL :: abs3d(KLON,KLEV)     ! epaisseur optique d'absorption
    146   REAL :: dh(KLON,KLEV)
     139  REAL :: tau3d(klon,klev), piz3d(klon,klev), cg3d(klon,klev)
     140  REAL :: abs3d(klon,klev)     ! epaisseur optique d'absorption
     141  REAL :: dh(klon,klev)
    147142 
    148143  REAL :: alpha_aers_5wv(nbre_RH,las,naero_soluble)   ! ext. coeff. Soluble comp. units *** m2/g
     
    155150   !  1- BC soluble; 2- POM soluble; 3- SO4 acc.; 4- SO4 coarse; 5 seasalt super-C; 6 seasalt coarse; 7 seasalt acc.
    156151  REAL :: piz_aeri_5wv(las,naero_insoluble)           ! Insoluble comp. 1- Dust: 2- BC; 3- POM
    157 
    158   REAL, DIMENSION(klon,klev,naero_tot) :: mass_temp
    159  
    160152  !
    161153  ! Proprietes optiques
    162154  !
    163   REAL :: radry = 287.054
    164   REAL :: tau_tmp                     ! dry air mass constant
    165155  REAL :: fact_RH(nbre_RH)
    166156  LOGICAL :: used_tau(naero_spc)
     
    303293!*********************************************************************
    304294!
    305 !
    306 !
    307 !
    308 
    309295!
    310296! From here on we look at the optical parameters at 5 wavelengths: 
     
    478464      0.737,0.750,0.765,0.775,0.787,0.803/
    479465 !
    480 
    481466  DATA cg_aeri_5wv/&
    482467     ! dust insoluble
     
    616601  END IF ! firstcall
    617602
    618 
    619603  ! Initialisations
    620   ai(:) = 0.
    621   tausum(:,:,:) = 0.
    622 
     604  tau(:,:,:,:) =0.
     605  tausum(:,:,:)= 0.
     606  ai(:)=0.0
    623607
    624608  DO k=1, klev
    625609    DO i=1, klon
    626       zrho=pplay(i,k)/t_seri(i,k)/RD                  ! kg/m3
    627       dh(i,k)=pdel(i,k)/(gravit*zrho)
    628       mass_temp(i,k,:) = m_allaer(i,k,:) / zrho / 1.e+9
    629       zdp1(i,k)=pdel(i,k)/(gravit*delt)     ! air mass auxiliary  variable --> zdp1 [kg/(m^2 *s)]
    630 
     610      zrho=pplay(i,k)/t_seri(i,k)/RD     ! kg/m3
     611      dh(i,k)=pdel(i,k)/(RG*zrho)    ! m
    631612    ENDDO
    632613  ENDDO
    633 
    634614
    635615  IF (flag_aerosol .EQ. 1) THEN
     
    680660  !      compute optical_thickness_at_gridpoint_per_species
    681661 
    682 
    683662  !
    684663  ! Calculations that need to be done since we are not in the subroutines INCA
    685664  !     
    686665
    687 !CDIR ON_ADB(RH_tab)
    688 !CDIR ON_ADB(fact_RH)
    689 !CDIR NOVECTOR
    690666  DO n=1,nbre_RH-1
    691667    fact_RH(n)=1./(RH_tab(n+1)-RH_tab(n))
    692668  ENDDO
    693669   
    694   DO k=1, KLEV
    695 !CDIR ON_ADB(RH_tab)
    696 !CDIR ON_ADB(fact_RH)
    697     DO i=1, KLON
     670  DO k=1, klev
     671    DO i=1, klon
    698672      rh(i,k)=MIN(RHcl(i,k)*100.,RH_MAX)
    699673      RH_num(i,k) = INT( rh(i,k)/10. + 1.)
     674!--test olivier pour pas de reindicage
     675!      RH_num(i,k) =1
    700676      IF (rh(i,k).GT.85.) RH_num(i,k)=10
    701677      IF (rh(i,k).GT.90.) RH_num(i,k)=11
     
    704680  ENDDO
    705681
    706 !CDIR SHORTLOOP 
    707682  used_tau(:)=.FALSE.
    708683   
     
    765740    DO la=1,las
    766741
     742    !--only 550 and 865 nm are used
     743    IF (la.NE.la550.AND.la.NE.la865) CYCLE
     744
    767745      IF (soluble) THEN
    768746
    769         IF((la.EQ.2).AND.(spss.NE.0)) THEN !la=2 corresponds to 550 nm
     747        IF ((la.EQ.2).AND.(spss.NE.0)) THEN !la=2 corresponds to 550 nm
    770748          IF (spss.EQ.1) THEN !accumulation mode
    771             DO k=1, KLEV
    772 !CDIR ON_ADB(A1_ASSSM)
    773 !CDIR ON_ADB(A2_ASSSM)
    774 !CDIR ON_ADB(A3_ASSSM)
    775               DO i=1, KLON
    776                 H=rh(i,k)/100
     749            DO k=1, klev
     750              DO i=1, klon
     751                H=rh(i,k)/100.
    777752                tau_ae5wv_int=A1_ASSSM(k)+A2_ASSSM(k)*H+A3_ASSSM(k)/(H-1.05)
    778                 tau(i,k,la,aerindex) = mass_temp(i,k,aerindex)*1000.*zdp1(i,k)   &
    779                                    *tau_ae5wv_int*delt*fac
     753                tau(i,k,la,aerindex) = m_allaer(i,k,aerindex)/1.e6*dh(i,k)*tau_ae5wv_int*fac
    780754                tausum(i,la,aerindex)=tausum(i,la,aerindex)+tau(i,k,la,aerindex)
    781755              ENDDO
     
    784758 
    785759          IF (spss.EQ.2) THEN !coarse mode
    786             DO k=1, KLEV
    787 !CDIR ON_ADB(A1_CSSSM)
    788 !CDIR ON_ADB(A2_CSSSM)
    789 !CDIR ON_ADB(A3_CSSSM)
    790               DO i=1, KLON
    791                 H=rh(i,k)/100
     760            DO k=1, klev
     761              DO i=1, klon
     762                H=rh(i,k)/100.
    792763                tau_ae5wv_int=A1_CSSSM(k)+A2_CSSSM(k)*H+A3_CSSSM(k)/(H-1.05)
    793                 tau(i,k,la,aerindex) = mass_temp(i,k,aerindex)*1000.*zdp1(i,k)  &
    794                                    *tau_ae5wv_int*delt*fac
    795                 tausum(i,la,aerindex) = tausum(i,la,aerindex)+tau(i,k,la,aerindex)
    796               ENDDO
    797             ENDDO
    798           ENDIF
    799 
    800           IF (spss.EQ.3) THEN !super coarse mode
    801             DO k=1, KLEV
    802 !CDIR ON_ADB(A1_SSSSM)
    803 !CDIR ON_ADB(A2_SSSSM)
    804 !CDIR ON_ADB(A3_SSSSM)
    805               DO i=1, KLON
    806                 H=rh(i,k)/100
    807                 tau_ae5wv_int=A1_SSSSM(k)+A2_SSSSM(k)*H+A3_SSSSM(k)/(H-1.05)
    808                 tau(i,k,la,aerindex) = mass_temp(i,k,aerindex)*1000.*zdp1(i,k)  &
    809                                    *tau_ae5wv_int*delt*fac
     764                tau(i,k,la,aerindex) = m_allaer(i,k,aerindex)/1.e6*dh(i,k)*tau_ae5wv_int*fac
    810765                tausum(i,la,aerindex)=tausum(i,la,aerindex)+tau(i,k,la,aerindex)
    811766              ENDDO
     
    813768          ENDIF
    814769
     770          IF (spss.EQ.3) THEN !super coarse mode
     771            DO k=1, klev
     772              DO i=1, klon
     773                H=rh(i,k)/100.
     774                tau_ae5wv_int=A1_SSSSM(k)+A2_SSSSM(k)*H+A3_SSSSM(k)/(H-1.05)
     775                tau(i,k,la,aerindex) = m_allaer(i,k,aerindex)/1.e6*dh(i,k)*tau_ae5wv_int*fac
     776                tausum(i,la,aerindex)=tausum(i,la,aerindex)+tau(i,k,la,aerindex)
     777              ENDDO
     778            ENDDO
     779          ENDIF
     780
    815781        ELSE
    816           DO k=1, KLEV
    817 !CDIR ON_ADB(alpha_aers_5wv)
    818             DO i=1, KLON
     782          DO k=1, klev
     783            DO i=1, klon
    819784              tau_ae5wv_int = alpha_aers_5wv(RH_num(i,k),la,spsol)+DELTA(i,k)* &
    820785                             (alpha_aers_5wv(RH_num(i,k)+1,la,spsol) - &
    821786                              alpha_aers_5wv(RH_num(i,k),la,spsol))
    822 
    823               tau(i,k,la,aerindex) = mass_temp(i,k,aerindex)*1000.*zdp1(i,k)   &
    824                                  *tau_ae5wv_int*delt*fac
     787              tau(i,k,la,aerindex) = m_allaer(i,k,aerindex)/1.e6*dh(i,k)*tau_ae5wv_int*fac
    825788              tausum(i,la,aerindex)=tausum(i,la,aerindex)+tau(i,k,la,aerindex)
    826789            ENDDO
     
    829792
    830793      ELSE                                                  ! For insoluble aerosol
    831         DO k=1, KLEV
    832 !CDIR ON_ADB(alpha_aeri_5wv)
    833           DO i=1, KLON
     794
     795        DO k=1, klev
     796          DO i=1, klon
    834797            tau_ae5wv_int = alpha_aeri_5wv(la,spinsol)
    835             tau(i,k,la,aerindex) = mass_temp(i,k,aerindex)*1000.*zdp1(i,k)* &
    836                                                 tau_ae5wv_int*delt*fac
    837             tausum(i,la,aerindex)= tausum(i,la,aerindex)+tau(i,k,la,aerindex)
     798            tau(i,k,la,aerindex) = m_allaer(i,k,aerindex)/1.e6*dh(i,k)*tau_ae5wv_int*fac
     799            tausum(i,la,aerindex)=tausum(i,la,aerindex)+tau(i,k,la,aerindex)
    838800          ENDDO
    839801        ENDDO
     802
    840803      ENDIF
     804
    841805    ENDDO   ! boucle sur les longueurs d'onde
    842806  ENDDO     ! Boucle  sur les masses de traceurs
     
    845809    IF (.NOT.used_tau(m)) tau(:,:,:,m)=0.
    846810  ENDDO 
    847 !
    848 !
    849 !  taue670(:) = SUM(tausum(:,la670,:),dim=2)
    850 !  taue865(:) = SUM(tausum(:,la865,:),dim=2)
    851 !
    852 !  DO i=1, klon
    853 !    ai(i)=-LOG(MAX(taue670(i),0.0001)/ &
    854 !       MAX(taue865(i),0.0001))/LOG(670./865.)
    855 !  ENDDO
    856 
    857   DO i=1, klon
    858      od550aer(i)=0.
    859      DO m=1,naero_spc
    860         od550aer(i)=od550aer(i)+tausum(i,2,m)
    861      ENDDO
    862   ENDDO
    863 
    864   DO i=1, klon
    865      od865aer(i)=0.
    866      DO m=1,naero_spc
    867         od865aer(i)=od865aer(i)+tausum(i,5,m)
    868      ENDDO
    869   ENDDO
    870 
    871   DO i=1, klon
    872      DO k=1, KLEV
    873         ec550aer(i,k)=0.
    874         DO m=1,naero_spc
    875            ec550aer(i,k)=ec550aer(i,k)+tau(i,k,2,m)/dh(i,k)
    876         ENDDO
    877      ENDDO
    878   ENDDO
     811
     812!--AOD calculations for diagnostics
     813  od550aer(:)=SUM(tausum(:,la550,:),dim=2)
     814  od865aer(:)=SUM(tausum(:,la865,:),dim=2)
     815
     816!--extinction coefficient for diagnostic
     817  ec550aer(:,:)=SUM(tau(:,:,la550,:),dim=3)/dh(:,:)
    879818 
    880    od550lt1aer(:)=tausum(:,2,id_ASSO4M_phy)+tausum(:,2,id_ASBCM_phy)+tausum(:,2,id_AIBCM_phy)+  &
    881                   tausum(:,2,id_ASPOMM_phy)+tausum(:,2,id_AIPOMM_phy)+tausum(:,2,id_ASSSM_phy)+ &
    882                   0.03*tausum(:,2,id_CSSSM_phy)+0.4*tausum(:,2,id_CIDUSTM_phy)
     819!--acc mode AOD calculation for diagnostic
     820  od550lt1aer(:)=tausum(:,la550,id_ASSO4M_phy)+tausum(:,la550,id_ASBCM_phy)+tausum(:,la550,id_AIBCM_phy)+  &
     821                 tausum(:,la550,id_ASPOMM_phy)+tausum(:,la550,id_AIPOMM_phy)+tausum(:,la550,id_ASSSM_phy)+ &
     822                 0.03*tausum(:,la550,id_CSSSM_phy)+0.4*tausum(:,la550,id_CIDUSTM_phy)
    883823
    884824  DEALLOCATE(aerosol_name)
  • LMDZ5/branches/testing/libf/phylmd/calwake.F90

    r2408 r2641  
    22! $Id$
    33
    4 SUBROUTINE calwake(paprs, pplay, dtime, t, q, omgb, dt_dwn, dq_dwn, m_dwn, &
    5     m_up, dt_a, dq_a, sigd, wdt_pbl, wdq_pbl, udt_pbl, udq_pbl, wake_deltat, &
    6     wake_deltaq, wake_dth, wake_h, wake_s, wake_dens, wake_pe, wake_fip, &
    7     wake_gfl, dt_wake, dq_wake, wake_k, undi_t, undi_q, wake_omgbdth, &
    8     wake_dp_omgb, wake_dtke, wake_dqke, wake_dtpbl, wake_dqpbl, wake_omg, &
    9     wake_dp_deltomg, wake_spread, wake_cstar, wake_d_deltat_gw, wake_ddeltat, &
    10     wake_ddeltaq)
     4SUBROUTINE calwake(iflag_wake_tend, paprs, pplay, dtime, &
     5    t, q, omgb, &
     6    dt_dwn, dq_dwn, m_dwn, m_up, dt_a, dq_a, &
     7    sigd, &
     8    wake_deltat, wake_deltaq, wake_s, wake_dens, &
     9    wake_dth, wake_h, &
     10    wake_pe, wake_fip, wake_gfl, &
     11    dt_wake, dq_wake, wake_k, t_x, q_x, wake_omgbdth, &
     12    wake_dp_omgb, &
     13    wake_dtke, wake_dqke, &
     14    wake_omg, wake_dp_deltomg, &
     15    wake_spread, wake_cstar, wake_d_deltat_gw, &
     16    wake_ddeltat, wake_ddeltaq, wake_ds, wake_ddens)
    1117  ! **************************************************************
    1218  ! *
     
    2632  ! Arguments
    2733  ! ----------
    28 
    29   INTEGER i, l, ktopw(klon)
    30   REAL dtime
    31 
    32   REAL paprs(klon, klev+1), pplay(klon, klev)
    33   REAL t(klon, klev), q(klon, klev), omgb(klon, klev)
    34   REAL dt_dwn(klon, klev), dq_dwn(klon, klev), m_dwn(klon, klev)
    35   REAL m_up(klon, klev)
    36   REAL dt_a(klon, klev), dq_a(klon, klev)
    37   REAL wdt_pbl(klon, klev), wdq_pbl(klon, klev)
    38   REAL udt_pbl(klon, klev), udq_pbl(klon, klev)
    39   REAL wake_deltat(klon, klev), wake_deltaq(klon, klev)
    40   REAL dt_wake(klon, klev), dq_wake(klon, klev)
    41   REAL wake_d_deltat_gw(klon, klev)
    42   REAL wake_h(klon), wake_s(klon)
    43   REAL wake_dth(klon, klev)
    44   REAL wake_pe(klon), wake_fip(klon), wake_gfl(klon)
    45   REAL undi_t(klon, klev), undi_q(klon, klev)
    46   REAL wake_omgbdth(klon, klev), wake_dp_omgb(klon, klev)
    47   REAL wake_dtke(klon, klev), wake_dqke(klon, klev)
    48   REAL wake_dtpbl(klon, klev), wake_dqpbl(klon, klev)
    49   REAL wake_omg(klon, klev), wake_dp_deltomg(klon, klev)
    50   REAL wake_spread(klon, klev), wake_cstar(klon)
    51   REAL wake_ddeltat(klon, klev), wake_ddeltaq(klon, klev)
    52   REAL d_deltatw(klon, klev), d_deltaqw(klon, klev)
    53   INTEGER wake_k(klon)
    54   REAL sigd(klon)
    55   REAL wake_dens(klon)
     34  ! Input
     35  ! ----
     36  INTEGER,                       INTENT (IN)         :: iflag_wake_tend
     37  REAL,                          INTENT (IN)         :: dtime
     38  REAL, DIMENSION(klon, klev),   INTENT (IN)         :: pplay
     39  REAL, DIMENSION(klon, klev+1), INTENT (IN)         :: paprs
     40  REAL, DIMENSION(klon, klev),   INTENT (IN)         :: t, q, omgb
     41  REAL, DIMENSION(klon, klev),   INTENT (IN)         :: dt_dwn, dq_dwn
     42  REAL, DIMENSION(klon, klev),   INTENT (IN)         :: m_up, m_dwn
     43  REAL, DIMENSION(klon, klev),   INTENT (IN)         :: dt_a, dq_a
     44  REAL, DIMENSION(klon),         INTENT (IN)         :: sigd
     45  ! Input/Output
     46  ! ------------
     47  REAL, DIMENSION(klon, klev),   INTENT (INOUT)      :: wake_deltat, wake_deltaq
     48  REAL, DIMENSION(klon),         INTENT (INOUT)      :: wake_s
     49  REAL, DIMENSION(klon),         INTENT (INOUT)      :: wake_dens
     50  ! Output
     51  ! ------
     52  REAL, DIMENSION(klon, klev),   INTENT (OUT)        :: dt_wake, dq_wake
     53  INTEGER, DIMENSION(klon),      INTENT (OUT)        :: wake_k
     54  REAL, DIMENSION(klon, klev),   INTENT (OUT)        :: wake_d_deltat_gw
     55  REAL, DIMENSION(klon),         INTENT (OUT)        :: wake_h
     56  REAL, DIMENSION(klon, klev),   INTENT (OUT)        :: wake_dth
     57  REAL, DIMENSION(klon),         INTENT (OUT)        :: wake_pe, wake_fip, wake_gfl
     58  REAL, DIMENSION(klon, klev),   INTENT (OUT)        :: t_x, q_x
     59  REAL, DIMENSION(klon, klev),   INTENT (OUT)        :: wake_omgbdth, wake_dp_omgb
     60  REAL, DIMENSION(klon, klev),   INTENT (OUT)        :: wake_dtke, wake_dqke
     61  REAL, DIMENSION(klon, klev),   INTENT (OUT)        :: wake_omg, wake_dp_deltomg
     62  REAL, DIMENSION(klon, klev),   INTENT (OUT)        :: wake_spread
     63  REAL, DIMENSION(klon),         INTENT (OUT)        :: wake_cstar
     64  REAL, DIMENSION(klon, klev),   INTENT (OUT)        :: wake_ddeltat, wake_ddeltaq
     65  REAL, DIMENSION(klon),         INTENT (OUT)        :: wake_ds, wake_ddens
     66
    5667
    5768  ! Variable internes
    5869  ! -----------------
    59 
    60   REAL aire
    61   REAL p(klon, klev), ph(klon, klev+1), pi(klon, klev)
    62   REAL te(klon, klev), qe(klon, klev), omgbe(klon, klev+1)
    63   REAL dtdwn(klon, klev), dqdwn(klon, klev)
    64   REAL dta(klon, klev), dqa(klon, klev)
    65   REAL wdtpbl(klon, klev), wdqpbl(klon, klev)
    66   REAL udtpbl(klon, klev), udqpbl(klon, klev)
    67   REAL amdwn(klon, klev), amup(klon, klev)
    68   REAL dtw(klon, klev), dqw(klon, klev), dth(klon, klev)
    69   REAL d_deltat_gw(klon, klev)
    70   REAL dtls(klon, klev), dqls(klon, klev)
    71   REAL tu(klon, klev), qu(klon, klev)
    72   REAL hw(klon), sigmaw(klon), wape(klon), fip(klon), gfl(klon)
    73   REAL omgbdth(klon, klev+1), dp_omgb(klon, klev)
    74   REAL dtke(klon, klev), dqke(klon, klev)
    75   REAL dtpbl(klon, klev), dqpbl(klon, klev)
    76   REAL omg(klon, klev+1), dp_deltomg(klon, klev), spread(klon, klev)
    77   REAL cstar(klon)
    78   REAL sigd0(klon), wdens(klon)
    79 
    80   REAL rdcp
     70  INTEGER                                            :: i, l
     71  REAL                                               :: aire
     72  REAL, DIMENSION(klon, klev)                        :: p,  pi
     73  REAL, DIMENSION(klon, klev+1)                      ::  ph, omgbe
     74  REAL, DIMENSION(klon, klev)                        :: te, qe
     75  REAL, DIMENSION(klon, klev)                        :: dtdwn, dqdwn
     76  REAL, DIMENSION(klon, klev)                        :: dta, dqa
     77  REAL, DIMENSION(klon, klev)                        :: amdwn, amup
     78  REAL, DIMENSION(klon, klev)                        :: dtw, dqw, dth
     79  REAL, DIMENSION(klon, klev)                        :: dtls, dqls
     80  REAL, DIMENSION(klon, klev)                        :: tx, qx
     81  REAL, DIMENSION(klon)                              :: hw, wape, fip, gfl
     82  REAL, DIMENSION(klon)                              :: sigmaw, wdens
     83  REAL, DIMENSION(klon, klev+1)                      :: omgbdth
     84  REAL, DIMENSION(klon, klev)                        :: dp_omgb
     85  REAL, DIMENSION(klon, klev)                        :: dtke, dqke
     86  REAL, DIMENSION(klon, klev+1)                      :: omg
     87  REAL, DIMENSION(klon, klev)                        :: dp_deltomg, spread
     88  REAL, DIMENSION(klon)                              :: cstar
     89  REAL, DIMENSION(klon)                              :: sigd0
     90  INTEGER, DIMENSION(klon)                           :: ktopw
     91  REAL, DIMENSION(klon, klev)                        :: d_deltat_gw
     92  REAL, DIMENSION(klon, klev)                        :: d_deltatw, d_deltaqw
     93  REAL, DIMENSION(klon)                              :: d_sigmaw, d_wdens
     94
     95  REAL                                               :: rdcp
     96
    8197
    8298  ! print *, '-> calwake, wake_s ', wake_s(1)
     
    104120      dta(i, l) = dt_a(i, l)
    105121      dqa(i, l) = dq_a(i, l)
    106       wdtpbl(i, l) = wdt_pbl(i, l)
    107       wdqpbl(i, l) = wdq_pbl(i, l)
    108       udtpbl(i, l) = udt_pbl(i, l)
    109       udqpbl(i, l) = udq_pbl(i, l)
    110122    END DO
    111123  END DO
     
    125137  END DO
    126138
     139  DO i = 1, klon
     140    hw(i) = wake_h(i)
     141  END DO
     142!
     143!    Make a copy of state variables
    127144  DO l = 1, klev
    128145    DO i = 1, klon
     
    132149  END DO
    133150
    134   DO l = 1, klev
    135     DO i = 1, klon
    136       dtls(i, l) = dt_wake(i, l)
    137       dqls(i, l) = dq_wake(i, l)
    138     END DO
    139   END DO
    140 
    141   DO i = 1, klon
    142     hw(i) = wake_h(i)
     151  DO i = 1, klon
    143152    sigmaw(i) = wake_s(i)
     153  END DO
     154
     155  DO i = 1, klon
     156    wdens(i) = wake_dens(i)
    144157  END DO
    145158
     
    166179  END DO
    167180
    168   CALL wake(p, ph, pi, dtime, sigd0, te, qe, omgbe, dtdwn, dqdwn, amdwn, &
    169     amup, dta, dqa, wdtpbl, wdqpbl, udtpbl, udqpbl, dtw, dqw, dth, hw, &
    170     sigmaw, wape, fip, gfl, dtls, dqls, ktopw, omgbdth, dp_omgb, wdens, tu, &
    171     qu, dtke, dqke, dtpbl, dqpbl, omg, dp_deltomg, spread, cstar, &
    172     d_deltat_gw, d_deltatw, d_deltaqw)
    173 
     181  CALL wake(p, ph, pi, dtime, &
     182    te, qe, omgbe, &
     183    dtdwn, dqdwn, amdwn, amup, dta, dqa, &
     184    sigd0, &
     185    dtw, dqw, sigmaw, wdens, &                                   ! state variables
     186    dth, hw, wape, fip, gfl, &
     187    dtls, dqls, ktopw, omgbdth, dp_omgb, tx, qx, &
     188    dtke, dqke, omg, dp_deltomg, spread, cstar, &
     189    d_deltat_gw, &
     190    d_deltatw, d_deltaqw, d_sigmaw, d_wdens)                     ! tendencies
     191
     192!
    174193  DO l = 1, klev
    175194    DO i = 1, klon
    176195      IF (ktopw(i)>0) THEN
    177         wake_deltat(i, l) = dtw(i, l)
    178         wake_deltaq(i, l) = dqw(i, l)
    179196        wake_d_deltat_gw(i, l) = d_deltat_gw(i, l)
    180197        wake_omgbdth(i, l) = omgbdth(i, l)
     
    182199        wake_dtke(i, l) = dtke(i, l)
    183200        wake_dqke(i, l) = dqke(i, l)
    184         wake_dtpbl(i, l) = dtpbl(i, l)
    185         wake_dqpbl(i, l) = dqpbl(i, l)
    186201        wake_omg(i, l) = omg(i, l)
    187202        wake_dp_deltomg(i, l) = dp_deltomg(i, l)
    188203        wake_spread(i, l) = spread(i, l)
    189204        wake_dth(i, l) = dth(i, l)
    190         dt_wake(i, l) = dtls(i, l)
    191         dq_wake(i, l) = dqls(i, l)
    192         undi_t(i, l) = tu(i, l)
    193         undi_q(i, l) = qu(i, l)
    194         wake_ddeltat(i, l) = d_deltatw(i, l)
    195         wake_ddeltaq(i, l) = d_deltaqw(i, l)
     205        dt_wake(i, l) = dtls(i, l)*dtime         ! derivative -> tendency
     206        dq_wake(i, l) = dqls(i, l)*dtime         ! derivative -> tendency
     207        t_x(i, l) = tx(i, l)
     208        q_x(i, l) = qx(i, l)
    196209      ELSE
    197         wake_deltat(i, l) = 0.
    198         wake_deltaq(i, l) = 0.
    199210        wake_d_deltat_gw(i, l) = 0.
    200211        wake_omgbdth(i, l) = 0.
     
    202213        wake_dtke(i, l) = 0.
    203214        wake_dqke(i, l) = 0.
    204         wake_dtpbl(i, l) = 0.
    205         wake_dqpbl(i, l) = 0.
    206215        wake_omg(i, l) = 0.
    207216        wake_dp_deltomg(i, l) = 0.
     
    210219        dt_wake(i, l) = 0.
    211220        dq_wake(i, l) = 0.
    212         undi_t(i, l) = te(i, l)
    213         undi_q(i, l) = qe(i, l)
    214         wake_ddeltat(i, l) = 0.
    215         wake_ddeltaq(i, l) = 0.
     221        t_x(i, l) = te(i, l)
     222        q_x(i, l) = qe(i, l)
    216223      END IF
    217224    END DO
     
    220227  DO i = 1, klon
    221228    wake_h(i) = hw(i)
    222     wake_s(i) = sigmaw(i)
    223229    wake_pe(i) = wape(i)
    224230    wake_fip(i) = fip(i)
     
    226232    wake_k(i) = ktopw(i)
    227233    wake_cstar(i) = cstar(i)
    228     wake_dens(i) = wdens(i)
    229   END DO
     234  END DO
     235
     236!  Tendencies of state variables
     237  DO l = 1, klev
     238    DO i = 1, klon
     239      IF (ktopw(i)>0) THEN
     240        wake_ddeltat(i, l) = d_deltatw(i, l)*dtime
     241        wake_ddeltaq(i, l) = d_deltaqw(i, l)*dtime
     242      ELSE
     243        wake_ddeltat(i, l) = -wake_deltat(i, l)
     244        wake_ddeltaq(i, l) = -wake_deltaq(i, l)
     245      END IF
     246    END DO
     247  END DO
     248  DO i = 1, klon
     249    IF (ktopw(i)>0) THEN
     250      wake_ds(i) = d_sigmaw(i)*dtime
     251      wake_ddens(i) = d_wdens(i)*dtime
     252    ELSE
     253      wake_ds(i)   = -wake_s(i)
     254      wake_ddens(i)= -wake_dens(i)
     255    END IF
     256  END DO
     257
     258!jyg< 
     259  IF (iflag_wake_tend .EQ. 0) THEN
     260!  Update State variables
     261    DO l = 1, klev
     262      DO i = 1, klon
     263        IF (ktopw(i)>0) THEN
     264          wake_deltat(i, l) = dtw(i, l)
     265          wake_deltaq(i, l) = dqw(i, l)
     266        ELSE
     267          wake_deltat(i, l) = 0.
     268          wake_deltaq(i, l) = 0.
     269        END IF
     270      END DO
     271    END DO
     272    DO i = 1, klon
     273      wake_s(i) = sigmaw(i)
     274      wake_dens(i) = wdens(i)
     275    END DO
     276  ENDIF
     277!>jyg
    230278
    231279  RETURN
    232280END SUBROUTINE calwake
     281
  • LMDZ5/branches/testing/libf/phylmd/cv3_routines.F90

    r2594 r2641  
    238238! gz = phi at the full levels (same as p).
    239239
    240   DO i = 1, len
    241     gz(i, 1) = 0.0
    242   END DO
     240!!  DO i = 1, len                    !jyg
     241!!    gz(i, 1) = 0.0                 !jyg
     242!!  END DO                           !jyg
     243    gz(:,:) = 0.                     !jyg: initialization of the whole array
    243244! ori      do 140 k=2,nlp
    244245  DO k = 2, nl ! convect3
     
    409410    IF (ok_new_feed) THEN
    410411      IF (iter==niter) THEN
    411         DO k = minorig, nl
     412        DO i = 1,len                         !jyg
     413          pfeedmin(i) = ph(i,minorig+1)      !jyg
     414        ENDDO                                !jyg
     415        DO k = minorig+1, nl                 !jyg
     416!!        DO k = minorig, nl                 !jyg
    412417          DO i = 1, len
    413418            IF (ph(i,k)>=plclfeed(i)) pfeedmin(i) = ph(i, k)
     
    10551060                         p, ph, h, tv, lv, lf, pbase, buoybase, plcl, &
    10561061                         inb, tp, tvp, clw, hp, ep, sigp, buoy, frac)
     1062  USE print_control_mod, ONLY: prt_level
    10571063  IMPLICIT NONE
    10581064
     
    11131119  REAL fracg
    11141120  REAL deltap
     1121
     1122  IF (prt_level >= 10) THEN
     1123    print *,'cv3_undilute2.0. t(1,k), q(1,k), qs(1,k) ', &
     1124                        (k, t(1,k), q(1,k), qs(1,k), k = 1,nl)
     1125  ENDIF
    11151126
    11161127! =====================================================================
     
    12991310    END DO
    13001311  END DO
     1312
     1313  IF (prt_level >= 10) THEN
     1314    print *,'cv3_undilute2.1. tp(1,k), tvp(1,k) ', &
     1315                          (k, tp(1,k), tvp(1,k), k = 1,nl)
     1316  ENDIF
    13011317
    13021318! =====================================================================
  • LMDZ5/branches/testing/libf/phylmd/cva_driver.F90

    r2488 r2641  
    144144! ep1           Real           Output   
    145145! sigij1        Real           Output     used in tracer transport (cvltr)
     146! clw1          Real           Output   condensed water content of the adiabatic updraught
    146147! elij1         Real           Output
    147148! wghti1        Real           Output   final weight of the feeding layers,
     
    254255  REAL, DIMENSION (len, nd), INTENT (OUT)            :: evap1, ep1
    255256  REAL, DIMENSION (len, nd, nd), INTENT (OUT)        :: sigij1, elij1
     257  REAL, DIMENSION (len, nd), INTENT (OUT)            :: clw1
    256258!JYG,RL
    257259  REAL, DIMENSION (len, nd), INTENT (OUT)            :: wghti1      ! final weight of the feeding layers
     
    424426  REAL h1(klon, klev), h1_wake(klon, klev)
    425427  REAL tp1(klon, klev)
    426   REAL clw1(klon, klev)
    427428  REAL th1(klon, klev), th1_wake(klon, klev)
    428429
     
    650651  sigij1(:, :, :) = 0.
    651652  elij1(:, :, :) = 0.
     653  clw1(:,:) = 0.
    652654  wghti1(:,:) = 0.
    653655  phi21(:, :, :) = 0.
     
    673675    END IF
    674676! print*,'t1, q1 ',t1,q1
     677        if (prt_level >= 9) &
     678             PRINT *, 'cva_driver -> cv3_prelim'
    675679    CALL cv3_prelim(len, nd, ndp1, t1, q1, p1, ph1, &           ! nd->na
    676680                    lv1, lf1, cpn1, tv1, gz1, h1, hm1, th1)
    677681
    678682
     683        if (prt_level >= 9) &
     684             PRINT *, 'cva_driver -> cv3_prelim'
    679685    CALL cv3_prelim(len, nd, ndp1, t1_wake, q1_wake, p1, ph1, & ! nd->na
    680686                    lv1_wake, lf1_wake, cpn1_wake, tv1_wake, gz1_wake, &
     
    685691  IF (iflag_con==4) THEN
    686692    PRINT *, 'Emanuel version 4 '
     693        if (prt_level >= 9) &
     694             PRINT *, 'cva_driver -> cv_prelim'
    687695    CALL cv_prelim(len, nd, ndp1, t1, q1, p1, ph1, &
    688696                   lv1, cpn1, tv1, gz1, h1, hm1)
     
    728736! write(*,'(64i1)') iflag1(2:klon-1)
    729737
     738        if (prt_level >= 9) &
     739             PRINT *, 'cva_driver -> cv3_feed'
    730740    CALL cv3_feed(len, nd, ok_conserv_q, &                 ! nd->na
    731741                  t1, q1, u1, v1, p1, ph1, hm1, gz1, &
     
    740750
    741751  IF (iflag_con==4) THEN
     752        if (prt_level >= 9) &
     753             PRINT *, 'cva_driver -> cv_feed'
    742754    CALL cv_feed(len, nd, t1, q1, qs1, p1, hm1, gz1, &
    743755                 nk1, icb1, icbmax, iflag1, tnk1, qnk1, gznk1, plcl1)
     
    755767  IF (iflag_con==3) THEN
    756768
     769        if (prt_level >= 9) &
     770             PRINT *, 'cva_driver -> cv3_undilute1'
    757771    CALL cv3_undilute1(len, nd, t1, qs1, gz1, plcl1, p1, icb1, tnk1, qnk1, & ! nd->na
    758772                       gznk1, tp1, tvp1, clw1, icbs1)
     
    761775
    762776  IF (iflag_con==4) THEN
     777        if (prt_level >= 9) &
     778             PRINT *, 'cva_driver -> cv_undilute1'
    763779    CALL cv_undilute1(len, nd, t1, q1, qs1, gz1, p1, nk1, icb1, icbmax, &
    764780                      tp1, tvp1, clw1)
     
    773789  IF (iflag_con==3) THEN
    774790
     791        if (prt_level >= 9) &
     792             PRINT *, 'cva_driver -> cv3_trigger'
    775793    CALL cv3_trigger(len, nd, icb1, plcl1, p1, th1, tv1, tvp1, thnk1, & ! nd->na
    776794                      pbase1, buoybase1, iflag1, sig1, w01)
     
    785803
    786804  IF (iflag_con==4) THEN
     805        if (prt_level >= 9) &
     806             PRINT *, 'cva_driver -> cv_trigger'
    787807    CALL cv_trigger(len, nd, icb1, cbmf1, tv1, tvp1, iflag1)
    788808  END IF
     
    831851!
    832852!>jyg
     853        if (prt_level >= 9) &
     854             PRINT *, 'cva_driver -> cv3a_compress'
    833855      CALL cv3a_compress(len, nloc, ncum, nd, ntra, compress, &
    834856                         iflag1, nk1, icb1, icbs1, &
     
    859881
    860882    IF (iflag_con==4) THEN
     883        if (prt_level >= 9) &
     884             PRINT *, 'cva_driver -> cv_compress'
    861885      CALL cv_compress(len, nloc, ncum, nd, &
    862886                       iflag1, nk1, icb1, &
     
    881905
    882906    IF (iflag_con==3) THEN
     907        if (prt_level >= 9) &
     908             PRINT *, 'cva_driver -> cv3_undilute2'
    883909      CALL cv3_undilute2(nloc, ncum, nd, icb, icbs, nk, &              !na->nd
    884910                         tnk, qnk, gznk, hnk, t, q, qs, gz, &
     
    889915
    890916    IF (iflag_con==4) THEN
     917        if (prt_level >= 9) &
     918             PRINT *, 'cva_driver -> cv_undilute2'
    891919      CALL cv_undilute2(nloc, ncum, nd, icb, nk, &
    892920                        tnk, qnk, gznk, t, q, qs, gz, &
     
    897925    ! epmax_cape
    898926    ! on recalcule ep et hp   
     927        if (prt_level >= 9) &
     928             PRINT *, 'cva_driver -> cv3_epmax_cape'
    899929    call cv3_epmax_fn_cape(nloc,ncum,nd &
    900930                , ep,hp,icb,inb,clw,nk,t,h,hnk,lv,lf,frac &
     
    913943      IF (iflag_mix>=1) THEN
    914944        CALL zilch(supmax, nloc*klev)
     945        if (prt_level >= 9) &
     946             PRINT *, 'cva_driver -> cv3p_mixing'
    915947        CALL cv3p_mixing(nloc, ncum, nd, nd, ntra, icb, nk, inb, &           ! na->nd
    916948                         ph, t, q, qs, u, v, tra, h, lv, lf, frac, qnk, &
     
    931963    IF (iflag_con==3) THEN
    932964      IF (iflag_clos==0) THEN
     965        if (prt_level >= 9) &
     966             PRINT *, 'cva_driver -> cv3_closure'
    933967        CALL cv3_closure(nloc, ncum, nd, icb, inb, &           ! na->nd
    934968                         pbase, p, ph, tv, buoy, &
     
    947981
    948982      IF (iflag_clos==2) THEN
     983        if (prt_level >= 9) &
     984             PRINT *, 'cva_driver -> cv3p1_closure'
    949985        CALL cv3p1_closure(nloc, ncum, nd, icb, inb, &         ! na->nd
    950986                           pbase, plcl, p, ph, tv, tvp, buoy, &
     
    958994
    959995      IF (iflag_clos==3) THEN
     996        if (prt_level >= 9) &
     997             PRINT *, 'cva_driver -> cv3p2_closure'
    960998        CALL cv3p2_closure(nloc, ncum, nd, icb, inb, &         ! na->nd
    961999                           pbase, plcl, p, ph, tv, tvp, buoy, &
     
    9701008
    9711009    IF (iflag_con==4) THEN
     1010        if (prt_level >= 9) &
     1011             PRINT *, 'cva_driver -> cv_closure'
    9721012      CALL cv_closure(nloc, ncum, nd, nk, icb, &
    9731013                         tv, tvp, p, ph, dph, plcl, cpn, &
     
    9831023    IF (iflag_con==3) THEN
    9841024      IF (iflag_mix==0) THEN
     1025        if (prt_level >= 9) &
     1026             PRINT *, 'cva_driver -> cv3_mixing'
    9851027        CALL cv3_mixing(nloc, ncum, nd, nd, ntra, icb, nk, inb, &             ! na->nd
    9861028                        ph, t, q, qs, u, v, tra, h, lv, lf, frac, qnk, &
     
    9971039
    9981040    IF (iflag_con==4) THEN
     1041        if (prt_level >= 9) &
     1042             PRINT *, 'cva_driver -> cv_mixing'
    9991043      CALL cv_mixing(nloc, ncum, nd, icb, nk, inb, inbis, &
    10001044                     ph, t, q, qs, u, v, h, lv, qnk, &
     
    10181062      END IF !(debut) THEN
    10191063
     1064        if (prt_level >= 9) &
     1065             PRINT *, 'cva_driver -> cv3_unsat'
    10201066      CALL cv3_unsat(nloc, ncum, nd, nd, ntra, icb, inb, iflag, &              ! na->nd
    10211067                     t_wake, q_wake, qs_wake, gz, u, v, tra, p, ph, &
     
    10441090
    10451091    IF (iflag_con==4) THEN
     1092        if (prt_level >= 9) &
     1093             PRINT *, 'cva_driver -> cv_unsat'
    10461094      CALL cv_unsat(nloc, ncum, nd, inb, t, q, qs, gz, u, v, p, ph, &
    10471095                     h, lv, ep, sigp, clw, m, ment, elij, &
     
    10631111    IF (iflag_con==3) THEN
    10641112
     1113        if (prt_level >= 9) &
     1114             PRINT *, 'cva_driver -> cv3_yield'
    10651115      CALL cv3_yield(nloc, ncum, nd, nd, ntra, ok_conserv_q, &                      ! na->nd
    10661116                     icb, inb, delt, &
     
    10921142
    10931143    IF (iflag_con==4) THEN
     1144        if (prt_level >= 9) &
     1145             PRINT *, 'cva_driver -> cv_yield'
    10941146      CALL cv_yield(nloc, ncum, nd, nk, icb, inb, delt, &
    10951147                     t, q, u, v, &
     
    11101162    IF (iflag_con==3) THEN
    11111163!RomP >>>
     1164        if (prt_level >= 9) &
     1165             PRINT *, 'cva_driver -> cv3_tracer'
    11121166      CALL cv3_tracer(nloc, len, ncum, nd, nd, &
    11131167                     ment, sigij, da, phi, phi2, d1a, dam, &
     
    11251179
    11261180    IF (iflag_con==3) THEN
     1181        if (prt_level >= 9) &
     1182             PRINT *, 'cva_driver -> cv3a_uncompress'
    11271183      CALL cv3a_uncompress(nloc, len, ncum, nd, ntra, idcum, compress, &
    11281184                           iflag, icb, inb, &
     
    11551211
    11561212    IF (iflag_con==4) THEN
     1213        if (prt_level >= 9) &
     1214             PRINT *, 'cva_driver -> cv_uncompress'
    11571215      CALL cv_uncompress(nloc, len, ncum, nd, idcum, &
    11581216                           iflag, &
  • LMDZ5/branches/testing/libf/phylmd/dyn1d/1DUTILS.h

    r2594 r2641  
    435435      USE infotrac
    436436      use control_mod
     437      USE comconst_mod, ONLY: im, jm, lllm
     438      USE logic_mod, ONLY: fxyhypb, ysinus
     439      USE temps_mod, ONLY: annee_ref, day_ini, day_ref, itau_dyn
    437440
    438441      IMPLICIT NONE
     
    443446!   -------------
    444447      include "dimensions.h"
    445       include "comconst.h"
    446       include "temps.h"
    447448!!#include "control.h"
    448       include "logic.h"
    449449      include "netcdf.inc"
    450450
     
    579579      USE infotrac
    580580      use control_mod
     581      USE comconst_mod, ONLY: cpp, daysec, dtvr, g, kappa, omeg, rad
     582      USE logic_mod, ONLY: fxyhypb, ysinus
     583      USE temps_mod, ONLY: annee_ref,day_end,day_ref,itau_dyn,itaufin
    581584
    582585      IMPLICIT NONE
     
    587590!   -------------
    588591      include "dimensions.h"
    589       include "comconst.h"
    590       include "temps.h"
    591592!!#include "control.h"
    592       include "logic.h"
    593593      include "netcdf.inc"
    594594
  • LMDZ5/branches/testing/libf/phylmd/dyn1d/lmdz1d.F90

    r2594 r2641  
    1616       ftsol, pbl_tke, pctsrf, radsol, rain_fall, snow_fall, ratqs, &
    1717       rnebcon, rugoro, sig1, w01, solaire_etat0, sollw, sollwdown, &
    18        solsw, t_ancien, q_ancien, u_ancien, v_ancien, wake_cstar, wake_deltaq, &
    19        wake_deltat, wake_delta_pbl_TKE, delta_tsurf, wake_fip, wake_pe, &
    20        wake_s, zgam, &
    21        zmax0, zmea, zpic, zsig, &
     18       solsw, t_ancien, q_ancien, u_ancien, v_ancien, wake_cstar, &
     19       wake_delta_pbl_TKE, delta_tsurf, wake_fip, wake_pe, &
     20       wake_deltaq, wake_deltat, wake_s, wake_dens, &
     21       zgam, zmax0, zmea, zpic, zsig, &
    2222       zstd, zthe, zval, ale_bl, ale_bl_trig, alp_bl
    23    use dimphy
    24    use surface_data, only : type_ocean,ok_veget
    25    use pbl_surface_mod, only : ftsoil, pbl_surface_init,                    &
    26      &                            pbl_surface_final
    27       use fonte_neige_mod, only : fonte_neige_init, fonte_neige_final
    28 
    29    use infotrac ! new
    30    use control_mod
     23   USE dimphy
     24   USE surface_data, only : type_ocean,ok_veget
     25   USE pbl_surface_mod, only : ftsoil, pbl_surface_init, &
     26                                 pbl_surface_final
     27   USE fonte_neige_mod, only : fonte_neige_init, fonte_neige_final
     28
     29   USE infotrac ! new
     30   USE control_mod
    3131   USE indice_sol_mod
    3232   USE phyaqua_mod
     
    3737   USE mod_const_mpi, ONLY: comm_lmdz
    3838   USE physiq_mod, ONLY: physiq
     39   USE comvert_mod, ONLY: presnivs, ap, bp, dpres,nivsig, nivsigs, pa, &
     40                          preff
     41   USE temps_mod, ONLY: annee_ref, calend, day_end, day_ini, day_ref, &
     42                        itau_dyn, itau_phy, start_time
    3943
    4044      implicit none
    4145#include "dimensions.h"
    4246#include "YOMCST.h"
    43 #include "temps.h"
    4447!!#include "control.h"
    4548#include "clesphys.h"
     
    4750!#include "indicesol.h"
    4851
    49 #include "comvert.h"
    5052#include "compar1d.h"
    5153#include "flux_arp.h"
     
    246248      integer jcode
    247249      INTEGER read_climoz
     250!
     251      integer :: it_end ! iteration number of the last call
    248252!Al1
    249253      integer ecrit_slab_oc !1=ecrit,-1=lit,0=no file
    250254      data ecrit_slab_oc/-1/
     255!
     256!     if flag_inhib_forcing = 0, tendencies of forcing are added
     257!                           <> 0, tendencies of forcing are not added
     258      INTEGER :: flag_inhib_forcing = 0
    251259
    252260!=====================================================================
     
    745753        pbl_tke(:,2,:)=1.e-2
    746754        PRINT *, ' pbl_tke dans lmdz1d '
    747        DO nsrf = 1,4
    748          PRINT *,'pbl_tke(1,:,',nsrf,') ',pbl_tke(1,:,nsrf)
    749        ENDDO
     755        if (prt_level .ge. 5) then
     756         DO nsrf = 1,4
     757           PRINT *,'pbl_tke(1,:,',nsrf,') ',pbl_tke(1,:,nsrf)
     758         ENDDO
     759        end if
    750760
    751761!>jyg
     
    777787        wake_pe = 0.
    778788        wake_s = 0.
     789        wake_dens = 0.
    779790        ale_bl = 0.
    780791        ale_bl_trig = 0.
     
    800811! t_ancien,q_ancien,,frugs(:,is_oce),clwcon(:,1),rnebcon(:,1),ratqs(:,1)
    801812! run_off_lic_0,pbl_tke(:,1:klev,nsrf), zmax0,f0,sig1,w01
    802 ! wake_deltat,wake_deltaq,wake_s,wake_cstar,wake_fip,wake_delta_pbl_tke(:,1:klev,nsrf)
     813! wake_deltat,wake_deltaq,wake_s,wake_dens,wake_cstar,
     814! wake_fip,wake_delta_pbl_tke(:,1:klev,nsrf)
    803815!
    804816! NB2: The content of the startphy.nc file depends on some flags defined in
     
    898910!=====================================================================
    899911           
    900       do while(it.le.nint(fnday*day_step))
     912      it_end = nint(fnday*day_step)
     913!test JLD     it_end = 10
     914      do while(it.le.it_end)
    901915
    902916       if (prt_level.ge.1) then
    903917         print*,'XXXXXXXXXXXXXXXXXXX ITAP,day,time=',                       &
    904      &             it,day,time,nint(fnday*day_step),day_step
     918     &             it,day,time,it_end,day_step
    905919         print*,'PAS DE TEMPS ',timestep
    906920       endif
    907921!Al1 demande de restartphy.nc
    908        if (it.eq.nint(fnday*day_step)) lastcall=.True.
     922       if (it.eq.it_end) lastcall=.True.
    909923
    910924!---------------------------------------------------------------------
     
    936950         write(*,*) 'firstcall,lastcall,phis',                               &
    937951     &               firstcall,lastcall,phis
     952       end if
     953       if (prt_level>=5) then
    938954         write(*,'(a10,2a4,4a13)') 'BEFOR1 IT=','it','l',                   &
    939955     &        'presniv','plev','play','phi'
     
    950966!---------------------------------------------------------------------
    951967       call physiq(ngrid,llm, &
    952                     firstcall,lastcall,timestep, &
    953                     plev,play,phi,phis,presnivs, &
    954                     u,v, rot, temp,q,omega2, &
    955                     du_phys,dv_phys,dt_phys,dq,dpsrf)
    956                 firstcall=.false.
    957 
    958 !---------------------------------------------------------------------
    959 ! Listing output for debug prt_level>=1
    960 !---------------------------------------------------------------------
    961         if (prt_level>=1) then
     968                    firstcall,lastcall,timestep, &
     969                    plev,play,phi,phis,presnivs, &
     970                    u,v, rot, temp,q,omega2, &
     971                    du_phys,dv_phys,dt_phys,dq,dpsrf)
     972                firstcall=.false.
     973
     974!---------------------------------------------------------------------
     975! Listing output for debug
     976!---------------------------------------------------------------------
     977        if (prt_level>=5) then
    962978          write(*,'(a11,2a4,4a13)') 'AFTER1 IT=','it','l',                  &
    963979     &        'presniv','plev','play','phi'
     
    9961012        endif
    9971013
    998       IF (prt_level >= 1) print*, 'fcoriolis, xlat,mxcalc ', &
     1014      IF (prt_level >= 5) print*, 'fcoriolis, xlat,mxcalc ', &
    9991015                                   fcoriolis, xlat,mxcalc
    10001016
     
    10461062!! Increment state variables
    10471063!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     1064    IF (flag_inhib_forcing == 0) then ! if tendency of forcings should be added
     1065
    10481066! pour les cas sandu et astex, on reclacule u,v,q,temp et teta dans 1D_nudge_sandu_astex.h
    10491067! au dessus de 700hpa, on relaxe vers les profils initiaux
     
    10641082     &               +d_q_nudge(1:mxcalc,:) )
    10651083
    1066         if (prt_level.ge.1) then
     1084        if (prt_level.ge.3) then
    10671085          print *,                                                          &
    10681086     &    'physiq-> temp(1),dt_phys(1),d_th_adv(1),dt_cooling(1) ',         &
     
    11111129!cc        q(1:mxcalc,2)=tmpvar(1:mxcalc)
    11121130
     1131   END IF ! end if tendency of tendency should be added
     1132
    11131133!---------------------------------------------------------------------
    11141134!   Air temperature :
  • LMDZ5/branches/testing/libf/phylmd/fonte_neige_mod.F90

    r2542 r2641  
    3434  REAL, ALLOCATABLE, DIMENSION(:,:), PRIVATE  :: fqcalving_global
    3535  !$OMP THREADPRIVATE(fqcalving_global)
     36  REAL, ALLOCATABLE, DIMENSION(:), PRIVATE  :: runofflic_global
     37  !$OMP THREADPRIVATE(runofflic_global)
    3638
    3739CONTAINS
     
    105107    ENDIF
    106108    fqcalving_global(:,:) = 0.0
     109
     110    ALLOCATE(runofflic_global(klon))
     111    IF (error /= 0) THEN
     112       abort_message='Pb allocation runofflic_global'
     113       CALL abort_physic(modname,abort_message,1)
     114    ENDIF
     115    runofflic_global(:) = 0.0
    107116
    108117!****************************************************************************************
     
    282291    ENDDO
    283292
     293    IF (nisurf == is_lic) THEN
     294    DO i = 1, knon
     295       runofflic_global(knindex(i)) = run_off_lic(i)
     296    ENDDO
     297    ENDIF
     298
    284299  END SUBROUTINE fonte_neige
    285300!
     
    307322    IF (ALLOCATED(fqfonte_global)) DEALLOCATE(fqfonte_global)
    308323    IF (ALLOCATED(fqcalving_global)) DEALLOCATE(fqcalving_global)
     324    IF (ALLOCATED(runofflic_global)) DEALLOCATE(runofflic_global)
    309325
    310326  END SUBROUTINE fonte_neige_final
     
    343359       fqcalving_out(:) = fqcalving_out(:) + fqcalving_global(:,nisurf)*pctsrf(:,nisurf)
    344360    ENDDO
    345     run_off_lic_out(:)=run_off_lic(:)
     361
     362    run_off_lic_out(:)=runofflic_global(:)
    346363
    347364  END SUBROUTINE fonte_neige_get_vars
  • LMDZ5/branches/testing/libf/phylmd/newmicro.F90

    r2160 r2641  
    1717  ! Auteur(s): Z.X. Li (LMD/CNRS) date: 19930910
    1818  ! O.   Boucher (LMD/CNRS) mise a jour en 201212
     19  ! I. Musat (LMD/CNRS) : prise en compte de la meme hypothese de recouvrement
     20  !                       pour les nuages que pour le rayonnement rrtm via
     21  !                       le parametre novlp de radopt.h : 20160721
    1922  ! Objet: Calculer epaisseur optique et emmissivite des nuages
    2023  ! ======================================================================
     
    5356  include "radopt.h"
    5457
    55   ! choix de l'hypothese de recouvrememnt nuageuse
    56   LOGICAL random, maximum_random, maximum
    57   PARAMETER (random=.FALSE., maximum_random=.TRUE., maximum=.FALSE.)
     58  ! choix de l'hypothese de recouvrement nuageuse via radopt.h (IM, 19.07.2016)
     59  ! !novlp=1: max-random
     60  ! !novlp=2: maximum
     61  ! !novlp=3: random
     62! LOGICAL random, maximum_random, maximum
     63! PARAMETER (random=.FALSE., maximum_random=.TRUE., maximum=.FALSE.)
    5864
    5965  LOGICAL, SAVE :: first = .TRUE.
     
    512518      reffclwtop(i) = 0.
    513519      cldncl(i) = 0.
    514       IF (random .OR. maximum_random) tcc(i) = 1.
    515       IF (maximum) tcc(i) = 0.
     520      IF (novlp.EQ.3 .OR. novlp.EQ.1) tcc(i) = 1.
     521      IF (novlp.EQ.2) tcc(i) = 0.
    516522    END DO
    517523
     
    524530        IF (pcltau(i,k)>thres_tau .AND. pclc(i,k)>thres_neb) THEN
    525531
    526           IF (maximum) THEN
     532          IF (novlp.EQ.2) THEN
    527533            IF (first) THEN
    528534              WRITE (*, *) 'Hypothese de recouvrement: MAXIMUM'
     
    533539          END IF
    534540
    535           IF (random) THEN
     541          IF (novlp.EQ.3) THEN
    536542            IF (first) THEN
    537543              WRITE (*, *) 'Hypothese de recouvrement: RANDOM'
     
    542548          END IF
    543549
    544           IF (maximum_random) THEN
     550          IF (novlp.EQ.1) THEN
    545551            IF (first) THEN
    546552              WRITE (*, *) 'Hypothese de recouvrement: MAXIMUM_ &
     
    567573      END DO ! loop over k
    568574
    569       IF (random .OR. maximum_random) tcc(i) = 1. - tcc(i)
     575      IF (novlp.EQ.3 .OR. novlp.EQ.1) tcc(i) = 1. - tcc(i)
    570576
    571577    END DO ! loop over i
  • LMDZ5/branches/testing/libf/phylmd/nuage.h

    r2594 r2641  
    1414     &                  t_glace_min,exposant_glace,rei_min,rei_max,     &
    1515     &                  tau_cld_cv,coefw_cld_cv,                        &
    16      &                  iflag_t_glace,iflag_cloudth_vert,iflag_cld_cv,  &
    17      &                  tmax_fonte_cv
     16     &                  tmax_fonte_cv,                                  &
     17     &                  iflag_t_glace,iflag_cloudth_vert,iflag_cld_cv
    1818!$OMP THREADPRIVATE(/nuagecom/)
  • LMDZ5/branches/testing/libf/phylmd/phyetat0.F90

    r2594 r2641  
    1717       solsw, t_ancien, u_ancien, v_ancien, w01, wake_cstar, wake_deltaq, &
    1818       wake_deltat, wake_delta_pbl_TKE, delta_tsurf, wake_fip, wake_pe, &
    19        wake_s, zgam, zmax0, zmea, zpic, zsig, &
     19       wake_s, wake_dens, zgam, zmax0, zmea, zpic, zsig, &
    2020       zstd, zthe, zval, ale_bl, ale_bl_trig, alp_bl, u10m, v10m
    2121  USE geometry_mod, ONLY : longitude_deg, latitude_deg
     
    378378  found=phyetat0_get(klev,wake_deltat,"WAKE_DELTAT","Delta T wake/env",0.)
    379379  found=phyetat0_get(klev,wake_deltaq,"WAKE_DELTAQ","Delta hum. wake/env",0.)
    380   found=phyetat0_get(1,wake_s,"WAKE_S","WAKE_S",0.)
     380  found=phyetat0_get(1,wake_s,"WAKE_S","Wake frac. area",0.)
     381  found=phyetat0_get(1,wake_dens,"WAKE_DENS","Wake num. /unit area",0.)
    381382  found=phyetat0_get(1,wake_cstar,"WAKE_CSTAR","WAKE_CSTAR",0.)
    382383  found=phyetat0_get(1,wake_pe,"WAKE_PE","WAKE_PE",0.)
  • LMDZ5/branches/testing/libf/phylmd/phyredem.F90

    r2594 r2641  
    1818                                v_ancien, clwcon, rnebcon, ratqs, pbl_tke,   &
    1919                                wake_delta_pbl_tke, zmax0, f0, sig1, w01,    &
    20                                 wake_deltat, wake_deltaq, wake_s, wake_cstar,&
     20                                wake_deltat, wake_deltaq, wake_s, wake_dens, &
     21                                wake_cstar,                                  &
    2122                                wake_pe, wake_fip, fm_therm, entr_therm,     &
    2223                                detr_therm, Ale_bl, Ale_bl_trig, Alp_bl,     &
     
    259260  CALL put_field("WAKE_DELTAQ", "WAKE_DELTAQ", wake_deltaq)
    260261
    261   CALL put_field("WAKE_S", "WAKE_S", wake_s)
     262  CALL put_field("WAKE_S", "Wake frac. area", wake_s)
     263
     264  CALL put_field("WAKE_DENS", "Wake num. /unit area", wake_dens)
    262265
    263266  CALL put_field("WAKE_CSTAR", "WAKE_CSTAR", wake_cstar)
  • LMDZ5/branches/testing/libf/phylmd/phys_local_var_mod.F90

    r2594 r2641  
    253253      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: sens, flwp, fiwp
    254254!$OMP THREADPRIVATE(sens, flwp, fiwp)
    255       REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: ale_wake, alp_wake, bils
    256 !$OMP THREADPRIVATE(ale_wake, alp_wake, bils)
     255!!
     256!!         Wake variables
     257      REAL,ALLOCATABLE,SAVE,DIMENSION(:)            :: ale_wake, alp_wake
     258!$OMP THREADPRIVATE(ale_wake, alp_wake)           
     259      REAL,ALLOCATABLE,SAVE,DIMENSION(:)            :: wake_h
     260!$OMP THREADPRIVATE(wake_h)                       
     261    REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)            :: wake_omg
     262!$OMP THREADPRIVATE(wake_omg)                     
     263    REAL, SAVE, ALLOCATABLE,DIMENSION(:,:)          :: d_deltat_wk, d_deltaq_wk
     264!$OMP THREADPRIVATE(d_deltat_wk, d_deltaq_wk)
     265      REAL,ALLOCATABLE,SAVE,DIMENSION(:)            :: d_s_wk, d_dens_wk
     266!$OMP THREADPRIVATE(d_s_wk, d_dens_wk)
     267    REAL, SAVE, ALLOCATABLE,DIMENSION(:,:)          :: d_deltat_wk_gw, d_deltaq_wk_gw
     268!$OMP THREADPRIVATE(d_deltat_wk_gw, d_deltaq_wk_gw)
     269    REAL, SAVE, ALLOCATABLE,DIMENSION(:,:)          :: d_deltat_vdf, d_deltaq_vdf
     270!$OMP THREADPRIVATE(d_deltat_vdf, d_deltaq_vdf)
     271!!!      REAL,ALLOCATABLE,SAVE,DIMENSION(:)          :: d_s_vdf, d_dens_vdf
     272!!!OMP THREADPRIVATE(d_s_vdf, d_dens_vdf)
     273    REAL, SAVE, ALLOCATABLE,DIMENSION(:,:)          :: d_deltat_the, d_deltaq_the
     274!$OMP THREADPRIVATE(d_deltat_the, d_deltaq_the)
     275!!!      REAL,ALLOCATABLE,SAVE,DIMENSION(:)          :: d_s_the, d_dens_the
     276!!!OMP THREADPRIVATE(d_s_the, d_dens_the)
     277      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)           :: d_deltat_ajs_cv, d_deltaq_ajs_cv
     278!$OMP THREADPRIVATE(d_deltat_ajs_cv, d_deltaq_ajs_cv)                       
     279!!         End of Wake variables
     280!!
     281      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: bils
     282!$OMP THREADPRIVATE(bils)
    257283      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: cdragm, cdragh
    258284!$OMP THREADPRIVATE(cdragm, cdragh)
     
    312338      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: dqvdf_x, dqvdf_w
    313339!$OMP THREADPRIVATE(dqvdf_x, dqvdf_w)
    314       REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: undi_tke, wake_tke
    315 !$OMP THREADPRIVATE(undi_tke, wake_tke)
    316340! Variables supplémentaires dans physiq.F relative au splitting de la surface
    317341      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: pbl_tke_input
    318342!$OMP THREADPRIVATE(pbl_tke_input)
    319343! Entree supplementaire Thermiques :
    320       REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: t_therm, q_therm
    321 !$OMP THREADPRIVATE(t_therm, q_therm)
     344      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: t_therm, q_therm, u_therm, v_therm
     345!$OMP THREADPRIVATE(t_therm, q_therm, u_therm, v_therm)
    322346      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: cdragh_x, cdragh_w
    323347!$OMP THREADPRIVATE(cdragh_x, cdragh_w)
     
    330354!>jyg+nrlmd
    331355  !
    332       REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: wake_h, wbeff, zmax_th, zq2m, zt2m
    333 !$OMP THREADPRIVATE(wake_h, wbeff, zmax_th, zq2m, zt2m)
     356      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: wbeff, zmax_th, zq2m, zt2m
     357!$OMP THREADPRIVATE(wbeff, zmax_th, zq2m, zt2m)
    334358      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zt2m_min_mon, zt2m_max_mon
    335359!$OMP THREADPRIVATE(zt2m_min_mon, zt2m_max_mon)
     
    365389      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: ref_liq_pi, ref_ice_pi
    366390!$OMP THREADPRIVATE(ref_liq_pi, ref_ice_pi)
    367       REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: wake_omg, zx_rh
    368 !$OMP THREADPRIVATE(wake_omg, zx_rh)
     391      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: zx_rh
     392!$OMP THREADPRIVATE(zx_rh)
    369393      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: pmflxr, pmflxs, prfl, psfl, fraca
    370394!$OMP THREADPRIVATE(pmflxr, pmflxs, prfl, psfl, fraca)
     
    530554      ALLOCATE(tal1(klon), pal1(klon), pab1(klon), pab2(klon))
    531555      ALLOCATE(ptstar(klon),pt0(klon),slp(klon))
    532       ALLOCATE(ale_wake(klon), alp_wake(klon), bils(klon))
     556!!
     557!!          Wake variables
     558      ALLOCATE(ale_wake(klon), alp_wake(klon))
     559      ALLOCATE(wake_h(klon))
     560      ALLOCATE(wake_omg(klon, klev))
     561      ALLOCATE(d_deltat_wk(klon, klev), d_deltaq_wk(klon, klev))
     562      ALLOCATE(d_s_wk(klon), d_dens_wk(klon))
     563      ALLOCATE(d_deltat_wk_gw(klon, klev), d_deltaq_wk_gw(klon, klev))
     564      ALLOCATE(d_deltat_vdf(klon, klev), d_deltaq_vdf(klon, klev))
     565!!      ALLOCATE( d_s_vdf(klon), d_dens_vdf(klon))
     566      ALLOCATE(d_deltat_the(klon, klev), d_deltaq_the(klon, klev))
     567!!      ALLOCATE( d_s_the(klon), d_dens_the(klon))
     568      ALLOCATE(d_deltat_ajs_cv(klon, klev), d_deltaq_ajs_cv(klon, klev))
     569!!         End of wake variables
     570!!
     571      ALLOCATE(bils(klon))
    533572      ALLOCATE(cdragm(klon), cdragh(klon), cldh(klon), cldl(klon))
    534573      ALLOCATE(cldm(klon), cldq(klon), cldt(klon), qsat2m(klon))
     
    561600      ALLOCATE(dtvdf_x(klon,klev), dtvdf_w(klon,klev))
    562601      ALLOCATE(dqvdf_x(klon,klev), dqvdf_w(klon,klev))
    563       ALLOCATE(undi_tke(klon,klev), wake_tke(klon,klev))
    564602      ALLOCATE(pbl_tke_input(klon,klev+1,nbsrf))
    565       ALLOCATE(t_therm(klon,klev), q_therm(klon,klev))
     603      ALLOCATE(t_therm(klon,klev), q_therm(klon,klev),u_therm(klon,klev), v_therm(klon,klev))
    566604      ALLOCATE(cdragh_x(klon), cdragh_w(klon))
    567605      ALLOCATE(cdragm_x(klon), cdragm_w(klon))
    568606      ALLOCATE(kh(klon), kh_x(klon), kh_w(klon))
    569607!
    570       ALLOCATE(wake_h(klon), wbeff(klon), zmax_th(klon))
     608      ALLOCATE(wbeff(klon), zmax_th(klon))
    571609      ALLOCATE(zq2m(klon), zt2m(klon), weak_inversion(klon))
    572610      ALLOCATE(zt2m_min_mon(klon), zt2m_max_mon(klon))
     
    589627      ALLOCATE(ref_liq(klon, klev), ref_ice(klon, klev), theta(klon, klev))
    590628      ALLOCATE(ref_liq_pi(klon, klev), ref_ice_pi(klon, klev))
    591       ALLOCATE(zphi(klon, klev), wake_omg(klon, klev), zx_rh(klon, klev))
     629      ALLOCATE(zphi(klon, klev), zx_rh(klon, klev))
    592630      ALLOCATE(pmfd(klon, klev), pmfu(klon, klev))
    593631
     
    741779      DEALLOCATE(tal1, pal1, pab1, pab2)
    742780      DEALLOCATE(ptstar, pt0, slp)
    743       DEALLOCATE(ale_wake, alp_wake, bils)
     781!
     782      DEALLOCATE(ale_wake, alp_wake)
     783      DEALLOCATE(wake_h)
     784      DEALLOCATE(wake_omg)
     785      DEALLOCATE(d_deltat_wk, d_deltaq_wk)
     786      DEALLOCATE(d_s_wk, d_dens_wk)
     787      DEALLOCATE(d_deltat_wk_gw, d_deltaq_wk_gw)
     788      DEALLOCATE(d_deltat_vdf, d_deltaq_vdf)
     789!!      DEALLOCATE( d_s_vdf, d_dens_vdf)
     790      DEALLOCATE(d_deltat_the, d_deltaq_the)
     791!!      DEALLOCATE( d_s_the, d_dens_the)
     792      DEALLOCATE(d_deltat_ajs_cv, d_deltaq_ajs_cv)
     793!
     794      DEALLOCATE(bils)
    744795      DEALLOCATE(cdragm, cdragh, cldh, cldl)
    745796      DEALLOCATE(cldm, cldq, cldt, qsat2m)
     
    770821      DEALLOCATE(dtvdf_x, dtvdf_w)
    771822      DEALLOCATE(dqvdf_x, dqvdf_w)
    772       DEALLOCATE(undi_tke, wake_tke)
    773823      DEALLOCATE(pbl_tke_input)
    774       DEALLOCATE(t_therm, q_therm)
     824      DEALLOCATE(t_therm, q_therm, u_therm, v_therm)
    775825      DEALLOCATE(cdragh_x, cdragh_w)
    776826      DEALLOCATE(cdragm_x, cdragm_w)
    777827      DEALLOCATE(kh, kh_x, kh_w)
    778828!
    779       DEALLOCATE(wake_h, wbeff, zmax_th)
     829      DEALLOCATE(wbeff, zmax_th)
    780830      DEALLOCATE(zq2m, zt2m, weak_inversion)
    781831      DEALLOCATE(zt2m_min_mon, zt2m_max_mon)
     
    798848      DEALLOCATE(ref_liq, ref_ice, theta)
    799849      DEALLOCATE(ref_liq_pi, ref_ice_pi)
    800       DEALLOCATE(zphi, wake_omg, zx_rh)
     850      DEALLOCATE(zphi, zx_rh)
    801851      DEALLOCATE(pmfd, pmfu)
    802852
  • LMDZ5/branches/testing/libf/phylmd/phys_output_ctrlout_mod.F90

    r2594 r2641  
    16581658       "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)"  /))                                                                                 
    16591659
     1660#ifdef CPP_Dust
     1661#include "Dust/spla_output_dat.h"
     1662#endif
     1663
    16601664END MODULE phys_output_ctrlout_mod
  • LMDZ5/branches/testing/libf/phylmd/phys_output_write_mod.F90

    r2594 r2641  
    17631763    ENDIF
    17641764
     1765
    17651766  END SUBROUTINE phys_output_write
    17661767
  • LMDZ5/branches/testing/libf/phylmd/phys_state_var_mod.F90

    r2542 r2641  
    203203      REAL,ALLOCATABLE,SAVE :: cin(:)
    204204!$OMP THREADPRIVATE(cin)
    205 ! ftd : differential heating between wake and environment
     205! ftd : convective heating due to unsaturated downdraughts
    206206      REAL,ALLOCATABLE,SAVE :: ftd(:,:)
    207207!$OMP THREADPRIVATE(ftd)
    208 ! fqd : differential moistening between wake and environment
     208! fqd : convective moistening due to unsaturated downdraughts
    209209      REAL,ALLOCATABLE,SAVE :: fqd(:,:)     
    210210!$OMP THREADPRIVATE(fqd)
     
    232232! wake_deltat : ecart de temperature avec la zone non perturbee
    233233! wake_deltaq : ecart d'humidite avec la zone non perturbee
     234! wake_s      : fraction surfacique occupee par la poche froide
     235! wake_dens   : number of wakes per unit area
     236! wake_occ    : occurence of wakes (= 1 if wakes occur, =0 otherwise)
    234237! wake_Cstar  : vitesse d'etalement de la poche
    235 ! wake_s      : fraction surfacique occupee par la poche froide
    236238! wake_pe     : wake potential energy - WAPE
    237239! wake_fip    : Gust Front Impinging power - ALP
    238 ! dt_wake, dq_wake: LS tendencies due to wake
    239240      REAL,ALLOCATABLE,SAVE :: wake_deltat(:,:)
    240241!$OMP THREADPRIVATE(wake_deltat)
    241242      REAL,ALLOCATABLE,SAVE :: wake_deltaq(:,:)
    242243!$OMP THREADPRIVATE(wake_deltaq)
     244      REAL,ALLOCATABLE,SAVE :: wake_s(:)
     245!$OMP THREADPRIVATE(wake_s)
     246      REAL,ALLOCATABLE,SAVE :: wake_dens(:)
     247!$OMP THREADPRIVATE(wake_dens)
    243248      REAL,ALLOCATABLE,SAVE :: wake_Cstar(:)
    244249!$OMP THREADPRIVATE(wake_Cstar)
    245       REAL,ALLOCATABLE,SAVE :: wake_s(:)
    246 !$OMP THREADPRIVATE(wake_s)
    247250      REAL,ALLOCATABLE,SAVE :: wake_pe(:)
    248251!$OMP THREADPRIVATE(wake_pe)
    249252      REAL,ALLOCATABLE,SAVE :: wake_fip(:)
    250253!$OMP THREADPRIVATE(wake_fip)
    251       REAL,ALLOCATABLE,SAVE :: dt_wake(:,:)
    252 !$OMP THREADPRIVATE(dt_wake)
    253       REAL,ALLOCATABLE,SAVE :: dq_wake(:,:)
    254 !$OMP THREADPRIVATE(dq_wake)
    255254!
    256255!jyg<
     
    524523      ALLOCATE(wght_th(klon,klev))
    525524      ALLOCATE(wake_deltat(klon,klev), wake_deltaq(klon,klev))
    526       ALLOCATE(wake_Cstar(klon), wake_s(klon))
     525      ALLOCATE(wake_s(klon), wake_dens(klon))
     526      ALLOCATE(wake_Cstar(klon))
    527527      ALLOCATE(wake_pe(klon), wake_fip(klon))
    528       ALLOCATE(dt_wake(klon,klev), dq_wake(klon,klev))
    529528!jyg<
    530529      ALLOCATE(wake_delta_pbl_TKE(klon,klev+1,nbsrf+1))
     
    664663      deallocate(lalim_conv, wght_th)
    665664      deallocate(wake_deltat, wake_deltaq)
    666       deallocate(wake_Cstar, wake_s, wake_pe, wake_fip)
    667       deallocate(dt_wake, dq_wake)
     665      deallocate(wake_s, wake_dens)
     666      deallocate(wake_Cstar, wake_pe, wake_fip)
    668667!jyg<
    669668      deallocate(wake_delta_pbl_TKE)
  • LMDZ5/branches/testing/libf/phylmd/physiq_mod.F90

    r2595 r2641  
    3434    USE change_srf_frac_mod
    3535    USE surface_data,     ONLY : type_ocean, ok_veget, ok_snow
    36     USE phys_local_var_mod ! Variables internes non sauvegardees de la physique
     36#ifdef CPP_Dust
     37    USE phytracr_spl_mod, ONLY: phytracr_spl
     38#endif
     39    USE phys_local_var_mod, ONLY: phys_local_var_init, phys_local_var_end, &
     40       ! [Variables internes non sauvegardees de la physique]
     41       ! Variables locales pour effectuer les appels en serie
     42       t_seri,q_seri,ql_seri,qs_seri,u_seri,v_seri,tr_seri, &
     43       ! Dynamic tendencies (diagnostics)
     44       d_t_dyn,d_q_dyn,d_ql_dyn,d_qs_dyn,d_u_dyn,d_v_dyn,d_tr_dyn, &
     45       d_q_dyn2d,d_ql_dyn2d,d_qs_dyn2d, &
     46       ! Physic tendencies
     47       d_t_con,d_q_con,d_u_con,d_v_con, &
     48       d_tr, &                              !! to be removed?? (jyg)
     49       d_t_wake,d_q_wake, &
     50       d_t_lwr,d_t_lw0,d_t_swr,d_t_sw0, &
     51       d_t_ajsb,d_q_ajsb, &
     52       d_t_ajs,d_q_ajs,d_u_ajs,d_v_ajs, &
     53       d_t_ajs_w,d_q_ajs_w, &
     54       d_t_ajs_x,d_q_ajs_x, &
     55       !
     56       d_t_eva,d_q_eva, &
     57       d_t_lsc,d_q_lsc,d_ql_lsc,d_qi_lsc, &
     58       d_t_lscst,d_q_lscst, &
     59       d_t_lscth,d_q_lscth, &
     60       plul_st,plul_th, &
     61       !
     62       d_t_vdf,d_q_vdf,d_u_vdf,d_v_vdf,d_t_diss, &
     63       d_t_vdf_w,d_q_vdf_w, &
     64       d_t_vdf_x,d_q_vdf_x, &
     65       d_ts, &
     66       !
     67       d_t_oli,d_u_oli,d_v_oli, &
     68       d_t_oro,d_u_oro,d_v_oro, &
     69       d_t_lif,d_u_lif,d_v_lif, &
     70       d_t_ec, &
     71       !
     72       du_gwd_hines,dv_gwd_hines,d_t_hin, &
     73       dv_gwd_rando,dv_gwd_front, &
     74       east_gwstress,west_gwstress, &
     75       d_q_ch4, &
     76       !  Special RRTM
     77       ZLWFT0_i,ZSWFT0_i,ZFLDN0,  &
     78       ZFLUP0,ZFSDN0,ZFSUP0,      &
     79       !
     80       topswad_aero,solswad_aero,   &
     81       topswai_aero,solswai_aero,   &
     82       topswad0_aero,solswad0_aero, &
     83       !LW additional
     84       toplwad_aero,sollwad_aero,   &
     85       toplwai_aero,sollwai_aero,   &
     86       toplwad0_aero,sollwad0_aero, &
     87       !
     88       topsw_aero,solsw_aero,       &
     89       topsw0_aero,solsw0_aero,     &
     90       topswcf_aero,solswcf_aero,   &
     91       tausum_aero,tau3d_aero,      &
     92       !
     93       !variables CFMIP2/CMIP5
     94       topswad_aerop, solswad_aerop,   &
     95       topswai_aerop, solswai_aerop,   &
     96       topswad0_aerop, solswad0_aerop, &
     97       topsw_aerop, topsw0_aerop,      &
     98       solsw_aerop, solsw0_aerop,      &
     99       topswcf_aerop, solswcf_aerop,   &
     100       !LW diagnostics
     101       toplwad_aerop, sollwad_aerop,   &
     102       toplwai_aerop, sollwai_aerop,   &
     103       toplwad0_aerop, sollwad0_aerop, &
     104       !
     105       ptstar, pt0, slp, &
     106       !
     107       bils, &
     108       !
     109       cldh, cldl,cldm, cldq, cldt,      &
     110       JrNt,                             &
     111       dthmin, evap, fder, plcl, plfc,   &
     112       prw, prlw, prsw,                  &
     113       s_lcl, s_pblh, s_pblt, s_therm,   &
     114       cdragm, cdragh,                   &
     115       zustar, zu10m, zv10m, rh2m, qsat2m, &
     116       zq2m, zt2m, weak_inversion, &
     117       zt2m_min_mon, zt2m_max_mon,   &         ! pour calcul_divers.h
     118       t2m_min_mon, t2m_max_mon,  &            ! pour calcul_divers.h
     119       !
     120       s_pblh_x, s_pblh_w, &
     121       s_lcl_x, s_lcl_w,   &
     122       !
     123       slab_wfbils, tpot, tpote,               &
     124       ue, uq, ve, vq, zxffonte,               &
     125       zxfqcalving, zxfluxlat,                 &
     126       zxrunofflic,                            &
     127       zxtsol, snow_lsc, zxfqfonte, zxqsurf,   &
     128       rain_lsc, rain_num,                     &
     129       !
     130       sens_x, sens_w, &
     131       zxfluxlat_x, zxfluxlat_w, &
     132       !
     133       dtvdf_x, dtvdf_w, &
     134       dqvdf_x, dqvdf_w, &
     135       pbl_tke_input, &
     136       t_therm, q_therm, u_therm, v_therm, &
     137       cdragh_x, cdragh_w, &
     138       cdragm_x, cdragm_w, &
     139       kh, kh_x, kh_w, &
     140       !
     141       ale_wake, alp_wake, &
     142       wake_h, wake_omg, &
     143                       ! tendencies of delta T and delta q:
     144       d_deltat_wk, d_deltaq_wk, &         ! due to wakes
     145       d_deltat_wk_gw, d_deltaq_wk_gw, &   ! due to wake induced gravity waves
     146       d_deltat_vdf, d_deltaq_vdf, &       ! due to vertical diffusion
     147       d_deltat_the, d_deltaq_the, &       ! due to thermals
     148       d_deltat_ajs_cv, d_deltaq_ajs_cv, & ! due to dry adjustment of (w) before convection
     149                       ! tendencies of wake fractional area and wake number per unit area:
     150       d_s_wk,  d_dens_wk, &             ! due to wakes
     151!!!       d_s_vdf, d_dens_vdf, &            ! due to vertical diffusion
     152!!!       d_s_the, d_dens_the, &            ! due to thermals
     153       !                                 
     154       wbeff, zmax_th, &
     155       sens, flwp, fiwp,  &
     156       ale_bl_stat,alp_bl_conv,alp_bl_det,  &
     157       alp_bl_fluct_m,alp_bl_fluct_tke,  &
     158       alp_bl_stat, n2, s2,  &
     159       proba_notrig, random_notrig,  &
     160       !
     161       dnwd, dnwd0,  &
     162       upwd, omega,  &
     163       epmax_diag,  &
     164       ep,  &
     165       cldemi,  &
     166       cldfra, cldtau, fiwc,  &
     167       fl, re, flwc,  &
     168       ref_liq, ref_ice, theta,  &
     169       ref_liq_pi, ref_ice_pi,  &
     170       zphi, zx_rh,  &
     171       pmfd, pmfu,  &
     172       !
     173       t2m, fluxlat,  &
     174       fsollw, evap_pot,  &
     175       fsolsw, wfbils, wfbilo,  &
     176       
     177       pmflxr, pmflxs, prfl,  &
     178       psfl, fraca, Vprecip,  &
     179       zw2,  &
     180       
     181       fluxu, fluxv,  &
     182       fluxt,  &
     183
     184       uwriteSTD, vwriteSTD, &                !pour calcul_STDlev.h
     185       wwriteSTD, phiwriteSTD, &              !pour calcul_STDlev.h
     186       qwriteSTD, twriteSTD, rhwriteSTD, &    !pour calcul_STDlev.h
     187       
     188       wdtrainA, wdtrainM,  &
     189       beta_prec,  &
     190       rneb,  &
     191       zxsnow,snowhgt,qsnow,to_ice,sissnow,runoff,albsol3_lic
     192       !
    37193    USE phys_state_var_mod ! Variables sauvegardees de la physique
     194#ifdef CPP_Dust
     195  USE phys_output_write_spl_mod
     196#else
    38197    USE phys_output_var_mod ! Variables pour les ecritures des sorties
     198#endif
     199
    39200    USE phys_output_write_mod
    40201    USE fonte_neige_mod, ONLY  : fonte_neige_get_vars
    41202    USE phys_output_mod
    42203    USE phys_output_ctrlout_mod
    43     USE iophy
    44204    use open_climoz_m, only: open_climoz ! ozone climatology from a file
    45205    use regr_pr_av_m, only: regr_pr_av
     
    74234
    75235    USE paramLMDZ_phy_mod
     236
     237    USE cmp_seri_mod
    76238
    77239    !IM stations CFMIP
     
    378540    !RC
    379541    ! Variables li\'ees \`a la poche froide (jyg et rr)
    380     ! Version diagnostique pour l'instant : pas de r\'etroaction sur
    381     ! la convection
    382 
    383     REAL t_wake(klon,klev),q_wake(klon,klev) ! wake pour la convection
     542
     543    INTEGER,  SAVE               :: iflag_wake_tend  ! wake: if =0, then wake state variables are
     544                                                     ! updated within calwake
     545    !$OMP THREADPRIVATE(iflag_wake_tend)
     546    REAL t_w(klon,klev),q_w(klon,klev) ! temperature and moisture profiles in the wake region
     547    REAL t_x(klon,klev),q_x(klon,klev) ! temperature and moisture profiles in the off-wake region
    384548
    385549    REAL wake_dth(klon,klev)        ! wake : temp pot difference
    386550
    387     REAL wake_d_deltat_gw(klon,klev)! wake : delta T tendency due to
    388     ! Gravity Wave (/s)
    389551    REAL wake_omgbdth(klon,klev)    ! Wake : flux of Delta_Theta
    390552    ! transported by LS omega
     
    395557    REAL wake_dqKE(klon,klev)       ! Wake : differential moistening
    396558    ! (wake - unpertubed) CONV
    397     REAL wake_dtPBL(klon,klev)      ! Wake : differential heating
    398     ! (wake - unpertubed) PBL
    399     REAL wake_dqPBL(klon,klev)      ! Wake : differential moistening
    400     ! (wake - unpertubed) PBL
    401     REAL wake_ddeltat(klon,klev),wake_ddeltaq(klon,klev)
    402559    REAL wake_dp_deltomg(klon,klev) ! Wake : gradient vertical de wake_omg
    403560    REAL wake_spread(klon,klev)     ! spreading term in wake_delt
     
    406563    !
    407564    INTEGER wake_k(klon)            ! Wake sommet
    408     !
    409     REAL t_undi(klon,klev)          ! temperature moyenne dans la zone
    410     ! non perturbee
    411     REAL q_undi(klon,klev)          ! humidite moyenne dans la zone
    412     ! non perturbee
    413565    !
    414566    !jyg<
     
    417569
    418570    REAL wake_gfl(klon)             ! Gust Front Length
    419     REAL wake_dens(klon)
     571!!!    REAL wake_dens(klon)         ! moved to phys_state_var_mod
    420572    !
    421573    !
    422574    REAL dt_dwn(klon,klev)
    423575    REAL dq_dwn(klon,klev)
    424     REAL wdt_PBL(klon,klev)
    425     REAL udt_PBL(klon,klev)
    426     REAL wdq_PBL(klon,klev)
    427     REAL udq_PBL(klon,klev)
    428576    REAL M_dwn(klon,klev)
    429577    REAL M_up(klon,klev)
     
    434582    LOGICAL,SAVE :: ok_adjwk=.FALSE.
    435583    !$OMP THREADPRIVATE(ok_adjwk)
     584    REAL,SAVE :: oliqmax=999.
     585    !$OMP THREADPRIVATE(oliqmax)
    436586    REAL, SAVE :: alp_offset
    437587    !$OMP THREADPRIVATE(alp_offset)
    438 
    439     ! !!
    440     !=================================================================
    441     !         PROVISOIRE : DECOUPLAGE PBL/WAKE
    442     !         --------------------------------
    443     REAL wake_deltat_sav(klon,klev)
    444     REAL wake_deltaq_sav(klon,klev)
    445     !=================================================================
    446588
    447589    !
     
    659801    ! eva: evaporation de l'eau liquide nuageuse
    660802    ! vdf: couche limite (Vertical DiFfusion)
    661 
     803    !
    662804    ! tendance nulles
    663805    REAL, dimension(klon,klev):: du0, dv0, dt0, dq0, dql0, dqi0
     806    REAL, dimension(klon)     :: dsig0, ddens0
     807    INTEGER, dimension(klon)  :: wkoccur1
     808    !
     809    ! Flag pour pouvoir ne pas ajouter les tendances.
     810    ! Par defaut, les tendances doivente etre ajoutees et
     811    ! flag_inhib_tend = 0
     812    ! flag_inhib_tend > 0 : tendances non ajoutees, avec un nombre
     813    ! croissant de print quand la valeur du flag augmente
     814    !!! attention, ce flag doit etre change avec prudence !!!
     815    INTEGER :: flag_inhib_tend = 0 !  0 is the default value
     816!!    INTEGER :: flag_inhib_tend = 2
    664817
    665818    !
     
    750903    REAL zx_lat(nbp_lon,nbp_lat)
    751904    !
    752     INTEGER nid_day_seri, nid_ctesGCM
    753     SAVE nid_day_seri, nid_ctesGCM
    754     !$OMP THREADPRIVATE(nid_day_seri,nid_ctesGCM)
     905    INTEGER nid_ctesGCM
     906    SAVE nid_ctesGCM
     907    !$OMP THREADPRIVATE(nid_ctesGCM)
    755908    !
    756909    !IM 280405 BEG
     
    9701123
    9711124    if (first) then
    972 
    9731125       !CR:nvelles variables convection/poches froides
    9741126
     
    10441196       CALL getin_p('random_notrig_max',random_notrig_max)
    10451197       CALL getin_p('ok_adjwk',ok_adjwk)
     1198       CALL getin_p('oliqmax',oliqmax)
    10461199       CALL getin_p('ratqsp0',ratqsp0)
    10471200       CALL getin_p('ratqsdp',ratqsdp)
     1201       iflag_wake_tend = 0
     1202       CALL getin_p('iflag_wake_tend',iflag_wake_tend)
    10481203    ENDIF
    10491204
     
    12451400             ! 11/09/06 rajout initialisation ALE et ALP du wake et PBL(YU)
    12461401             !        print*,'apres ini_wake iflag_cld_th=', iflag_cld_th
     1402             !
     1403             ! Initialize tendencies of wake state variables (for some flag values
     1404             ! they are not computed).
     1405             d_deltat_wk(:,:) = 0.
     1406             d_deltaq_wk(:,:) = 0.
     1407             d_deltat_wk_gw(:,:) = 0.
     1408             d_deltaq_wk_gw(:,:) = 0.
     1409             d_deltat_vdf(:,:) = 0.
     1410             d_deltaq_vdf(:,:) = 0.
     1411             d_deltat_the(:,:) = 0.
     1412             d_deltaq_the(:,:) = 0.
     1413             d_deltat_ajs_cv(:,:) = 0.
     1414             d_deltaq_ajs_cv(:,:) = 0.
     1415             d_s_wk(:) = 0.
     1416             d_dens_wk(:) = 0.
    12471417          endif
    12481418
     
    13811551       WRITE(lunout,*)'OK freq_outNMC(3)=',freq_outNMC(3)
    13821552
    1383        include "ini_histday_seri.h"
    1384 
    13851553       CALL ini_paramLMDZ_phy(dtime,nid_ctesGCM)
    13861554
     
    15371705    dql0(:,:)=0.
    15381706    dqi0(:,:)=0.
     1707    dsig0(:) = 0.
     1708    ddens0(:) = 0.
     1709    wkoccur1(:)=1
    15391710    !
    15401711    ! Mettre a zero des variables de sortie (pour securite)
     
    16301801       ENDDO
    16311802    ENDDO
     1803    ! Initialize variables used for diagnostic purpose
     1804    if (flag_inhib_tend .ne. 0) call init_cmp_seri
    16321805    !IM
    16331806    IF (ip_ebil_phy.ge.1) THEN
     
    19722145       ENDIF
    19732146       ! !!
    1974        !=================================================================
    1975        !         PROVISOIRE : DECOUPLAGE PBL/WAKE
    1976        !         --------------------------------
    1977        !
    1978        !!      wake_deltat_sav(:,:)=wake_deltat(:,:)
    1979        !!      wake_deltaq_sav(:,:)=wake_deltaq(:,:)
    1980        !!      wake_deltat(:,:)=0.
    1981        !!      wake_deltaq(:,:)=0.
    1982        !=================================================================
    19832147       !>jyg+nrlmd
    19842148       !
     
    20552219            )
    20562220       !
    2057        !=================================================================
    2058        !         PROVISOIRE : DECOUPLAGE PBL/WAKE
    2059        !         --------------------------------
    2060        !
    2061        !!      wake_deltat(:,:)=wake_deltat_sav(:,:)
    2062        !!      wake_deltaq(:,:)=wake_deltaq_sav(:,:)
    2063        !=================================================================
    2064        !
    20652221       !  Add turbulent diffusion tendency to the wake difference variables
    20662222       IF (mod(iflag_pbl_split,2) .NE. 0) THEN
    2067           wake_deltat(:,:) = wake_deltat(:,:) + (d_t_vdf_w(:,:)-d_t_vdf_x(:,:))
    2068           wake_deltaq(:,:) = wake_deltaq(:,:) + (d_q_vdf_w(:,:)-d_q_vdf_x(:,:))
     2223!jyg<
     2224          d_deltat_vdf(:,:) = d_t_vdf_w(:,:)-d_t_vdf_x(:,:)
     2225          d_deltaq_vdf(:,:) = d_q_vdf_w(:,:)-d_q_vdf_x(:,:)
     2226          CALL add_wake_tend &
     2227             (d_deltat_vdf, d_deltaq_vdf, dsig0, ddens0, wkoccur1, 'vdf', abortphy)
     2228       ELSE
     2229          d_deltat_vdf(:,:) = 0.
     2230          d_deltaq_vdf(:,:) = 0.
     2231!>jyg
    20692232       ENDIF
    20702233
     
    20752238          CALL add_pbl_tend &
    20762239               (d_u_vdf,d_v_vdf,d_t_vdf+d_t_diss,d_q_vdf,dql0,dqi0,paprs,&
    2077                'vdf',abortphy)
     2240               'vdf',abortphy,flag_inhib_tend)
    20782241       ELSE
    20792242          CALL add_phys_tend &
    20802243               (d_u_vdf,d_v_vdf,d_t_vdf+d_t_diss,d_q_vdf,dql0,dqi0,paprs,&
    2081                'vdf',abortphy)
     2244               'vdf',abortphy,flag_inhib_tend)
    20822245       ENDIF
    20832246       !--------------------------------------------------------------------
     
    22412404       !=======================================================================
    22422405       !ajout pour la parametrisation des poches froides: calcul de
    2243        !t_wake et t_undi: si pas de poches froides, t_wake=t_undi=t_seri
    2244        do k=1,klev
    2245           do i=1,klon
    2246              if (iflag_wake>=1) then
    2247                 t_wake(i,k) = t_seri(i,k) &
     2406       !t_w et t_x: si pas de poches froides, t_w=t_x=t_seri
     2407       if (iflag_wake>=1) then
     2408         do k=1,klev
     2409            do i=1,klon
     2410                t_w(i,k) = t_seri(i,k) &
    22482411                     +(1-wake_s(i))*wake_deltat(i,k)
    2249                 q_wake(i,k) = q_seri(i,k) &
     2412                q_w(i,k) = q_seri(i,k) &
    22502413                     +(1-wake_s(i))*wake_deltaq(i,k)
    2251                 t_undi(i,k) = t_seri(i,k) &
     2414                t_x(i,k) = t_seri(i,k) &
    22522415                     -wake_s(i)*wake_deltat(i,k)
    2253                 q_undi(i,k) = q_seri(i,k) &
     2416                q_x(i,k) = q_seri(i,k) &
    22542417                     -wake_s(i)*wake_deltaq(i,k)
    2255              else
    2256                 t_wake(i,k) = t_seri(i,k)
    2257                 q_wake(i,k) = q_seri(i,k)
    2258                 t_undi(i,k) = t_seri(i,k)
    2259                 q_undi(i,k) = q_seri(i,k)
    2260              endif
    2261           enddo
    2262        enddo
     2418            enddo
     2419         enddo
     2420       else
     2421                t_w(:,:) = t_seri(:,:)
     2422                q_w(:,:) = q_seri(:,:)
     2423                t_x(:,:) = t_seri(:,:)
     2424                q_x(:,:) = q_seri(:,:)
     2425       endif
    22632426       !
    22642427       !jyg<
     
    22692432          IF (ok_adjwk) THEN
    22702433             limbas(:) = 1
    2271              CALL ajsec(paprs, pplay, t_wake, q_wake, limbas, &
     2434             CALL ajsec(paprs, pplay, t_w, q_w, limbas, &
    22722435                  d_t_adjwk, d_q_adjwk)
    2273           ENDIF
    2274           !
    2275           DO k=1,klev
    2276              DO i=1,klon
    2277                 IF (wake_s(i) .GT. 1.e-3) THEN
    2278                    t_wake(i,k) = t_wake(i,k) + d_t_adjwk(i,k)
    2279                    q_wake(i,k) = q_wake(i,k) + d_q_adjwk(i,k)
    2280                    wake_deltat(i,k) = wake_deltat(i,k) + d_t_adjwk(i,k)
    2281                    wake_deltaq(i,k) = wake_deltaq(i,k) + d_q_adjwk(i,k)
    2282                 ENDIF
     2436             !
     2437             DO k=1,klev
     2438                DO i=1,klon
     2439                   IF (wake_s(i) .GT. 1.e-3) THEN
     2440                      t_w(i,k) = t_w(i,k) + d_t_adjwk(i,k)
     2441                      q_w(i,k) = q_w(i,k) + d_q_adjwk(i,k)
     2442                      d_deltat_ajs_cv(i,k) = d_t_adjwk(i,k)
     2443                      d_deltaq_ajs_cv(i,k) = d_q_adjwk(i,k)
     2444                   ELSE
     2445                      d_deltat_ajs_cv(i,k) = 0.
     2446                      d_deltaq_ajs_cv(i,k) = 0.
     2447                   ENDIF
     2448                ENDDO
    22832449             ENDDO
    2284           ENDDO
     2450             CALL add_wake_tend &
     2451                 (d_deltat_ajs_cv, d_deltaq_ajs_cv, dsig0, ddens0, wkoccur1, 'ajs_cv', abortphy)
     2452          ENDIF  ! (ok_adjwk)
    22852453       ENDIF ! (iflag_wake>=1)
    22862454       !>jyg
    22872455       !
     2456       
     2457!!      print *,'physiq. q_w(1,k), q_x(1,k) ', &
     2458!!             (k, q_w(1,k), q_x(1,k),k=1,25)
     2459
    22882460!jyg<
    22892461       CALL alpale( debut, itap, dtime, paprs, omega, t_seri,   &
     
    23242496          !c          CALL concvl (iflag_con,iflag_clos,
    23252497          CALL concvl (iflag_clos, &
    2326                dtime, paprs, pplay, k_upper_cv, t_undi,q_undi, &
    2327                t_wake,q_wake,wake_s, &
     2498               dtime, paprs, pplay, k_upper_cv, t_x,q_x, &
     2499               t_w,q_w,wake_s, &
    23282500               u_seri,v_seri,tr_seri,nbtr_tmp, &
    23292501               ALE,ALP, &
     
    23422514               wdtrainA,wdtrainM,wght_cvfd,qtc_cv,sigt_cv, &
    23432515               tau_cld_cv,coefw_cld_cv,epmax_diag)
     2516
    23442517          ! RomP <<<
    23452518
     
    24572630
    24582631    CALL add_phys_tend(d_u_con, d_v_con, d_t_con, d_q_con, dql0, dqi0, paprs, &
    2459          'convection',abortphy)
     2632         'convection',abortphy,flag_inhib_tend)
    24602633
    24612634    !-------------------------------------------------------------------------
     
    25402713          ENDDO
    25412714       ENDDO
    2542        !nrlmd+jyg<
    2543        DO k=1,klev
    2544           DO i=1,klon
    2545              wdt_PBL(i,k) =  0.
    2546              wdq_PBL(i,k) =  0.
    2547              udt_PBL(i,k) =  0.
    2548              udq_PBL(i,k) =  0.
    2549           ENDDO
    2550        ENDDO
    2551        !
    2552        IF (mod(iflag_pbl_split,2) .EQ. 1) THEN
    2553           DO k=1,klev
    2554              DO i=1,klon
    2555                 wdt_PBL(i,k) = wdt_PBL(i,k) + d_t_vdf_w(i,k)/dtime
    2556                 wdq_PBL(i,k) = wdq_PBL(i,k) + d_q_vdf_w(i,k)/dtime
    2557                 udt_PBL(i,k) = udt_PBL(i,k) + d_t_vdf_x(i,k)/dtime
    2558                 udq_PBL(i,k) = udq_PBL(i,k) + d_q_vdf_x(i,k)/dtime
    2559                 !!        dt_dwn(i,k)  = dt_dwn(i,k) + d_t_vdf_w(i,k)/dtime
    2560                 !!        dq_dwn(i,k)  = dq_dwn(i,k) + d_q_vdf_w(i,k)/dtime
    2561                 !!        dt_a  (i,k)    = dt_a(i,k) + d_t_vdf_x(i,k)/dtime
    2562                 !!        dq_a  (i,k)    = dq_a(i,k) + d_q_vdf_x(i,k)/dtime
    2563              ENDDO
    2564           ENDDO
    2565        ENDIF
    2566        IF (mod(iflag_pbl_split/2,2) .EQ. 1) THEN
    2567           DO k=1,klev
    2568              DO i=1,klon
    2569                 !!        dt_dwn(i,k)  = dt_dwn(i,k) + 0.
    2570                 !!        dq_dwn(i,k)  = dq_dwn(i,k) + 0.
    2571                 !!        dt_a(i,k)   = dt_a(i,k)   + d_t_ajs(i,k)/dtime
    2572                 !!        dq_a(i,k)   = dq_a(i,k)   + d_q_ajs(i,k)/dtime
    2573                 udt_PBL(i,k)   = udt_PBL(i,k)   + d_t_ajs(i,k)/dtime
    2574                 udq_PBL(i,k)   = udq_PBL(i,k)   + d_q_ajs(i,k)/dtime
    2575              ENDDO
    2576           ENDDO
    2577        ENDIF
    2578        !>nrlmd+jyg
    25792715
    25802716       IF (iflag_wake==2) THEN
     
    26052741       !
    26062742       !calcul caracteristiques de la poche froide
    2607        call calWAKE (paprs,pplay,dtime &
    2608             ,t_seri,q_seri,omega &
    2609             ,dt_dwn,dq_dwn,M_dwn,M_up &
    2610             ,dt_a,dq_a,sigd &
    2611             ,wdt_PBL,wdq_PBL &
    2612             ,udt_PBL,udq_PBL &
    2613             ,wake_deltat,wake_deltaq,wake_dth &
    2614             ,wake_h,wake_s,wake_dens &
    2615             ,wake_pe,wake_fip,wake_gfl &
    2616             ,dt_wake,dq_wake &
    2617             ,wake_k, t_undi,q_undi &
    2618             ,wake_omgbdth,wake_dp_omgb &
    2619             ,wake_dtKE,wake_dqKE &
    2620             ,wake_dtPBL,wake_dqPBL &
    2621             ,wake_omg,wake_dp_deltomg &
    2622             ,wake_spread,wake_Cstar,wake_d_deltat_gw &
    2623             ,wake_ddeltat,wake_ddeltaq)
     2743       call calWAKE (iflag_wake_tend, paprs, pplay, dtime, &
     2744            t_seri, q_seri, omega,  &
     2745            dt_dwn, dq_dwn, M_dwn, M_up,  &
     2746            dt_a, dq_a,  &
     2747            sigd,  &
     2748            wake_deltat, wake_deltaq, wake_s, wake_dens,  &
     2749            wake_dth, wake_h,  &
     2750            wake_pe, wake_fip, wake_gfl,  &
     2751            d_t_wake, d_q_wake,  &
     2752            wake_k, t_x, q_x,  &
     2753            wake_omgbdth, wake_dp_omgb,  &
     2754            wake_dtKE, wake_dqKE,  &
     2755            wake_omg, wake_dp_deltomg,  &
     2756            wake_spread, wake_Cstar, d_deltat_wk_gw,  &
     2757            d_deltat_wk, d_deltaq_wk, d_s_wk, d_dens_wk)
    26242758       !
    26252759       !-----------------------------------------------------------------------
    26262760       ! ajout des tendances des poches froides
    2627        ! Faire rapidement disparaitre l'ancien dt_wake pour garder un d_t_wake
    2628        ! coherent avec les autres d_t_...
    2629        d_t_wake(:,:)=dt_wake(:,:)*dtime
    2630        d_q_wake(:,:)=dq_wake(:,:)*dtime
    26312761       CALL add_phys_tend(du0,dv0,d_t_wake,d_q_wake,dql0,dqi0,paprs,'wake', &
    2632             abortphy)
     2762            abortphy,flag_inhib_tend)
    26332763       !------------------------------------------------------------------------
     2764
     2765!       Increment Wake state variables
     2766       IF (iflag_wake_tend .GT. 0.) THEN
     2767
     2768         CALL add_wake_tend &
     2769            (d_deltat_wk, d_deltaq_wk, d_s_wk, d_dens_wk, wake_k, &
     2770             'wake', abortphy)
     2771
     2772       ENDIF   ! (iflag_wake_tend .GT. 0.)
    26342773
    26352774    endif  ! (iflag_wake>=1)
     
    27082847                   t_therm(i,k) = t_seri(i,k) - wake_s(i)*wake_deltat(i,k)
    27092848                   q_therm(i,k) = q_seri(i,k) - wake_s(i)*wake_deltaq(i,k)
     2849                   u_therm(i,k) = u_seri(i,k)
     2850                   v_therm(i,k) = v_seri(i,k)
    27102851                ENDDO
    27112852             ENDDO
     
    27162857                   t_therm(i,k) = t_seri(i,k)
    27172858                   q_therm(i,k) = q_seri(i,k)
     2859                   u_therm(i,k) = u_seri(i,k)
     2860                   v_therm(i,k) = v_seri(i,k)
    27182861                ENDDO
    27192862             ENDDO
     
    27222865          call calltherm(pdtphys &
    27232866               ,pplay,paprs,pphi,weak_inversion &
    2724                                 ! ,u_seri,v_seri,t_seri,q_seri,zqsat,debut &
    2725                !jyg
    2726                ,u_seri,v_seri,t_therm,q_therm,zqsat,debut &  !jyg
     2867                        ! ,u_seri,v_seri,t_seri,q_seri,zqsat,debut & !jyg
     2868               ,u_therm,v_therm,t_therm,q_therm,zqsat,debut &  !jyg
    27272869               ,d_u_ajs,d_v_ajs,d_t_ajs,d_q_ajs &
    27282870               ,fm_therm,entr_therm,detr_therm &
     
    27512893                DO i=1,klon
    27522894                   !
    2753                    wake_deltat(i,k) = wake_deltat(i,k) - d_t_ajs(i,k)
    2754                    wake_deltaq(i,k) = wake_deltaq(i,k) - d_q_ajs(i,k)
    2755                    t_seri(i,k) = t_therm(i,k) + wake_s(i)*wake_deltat(i,k)
    2756                    q_seri(i,k) = q_therm(i,k) + wake_s(i)*wake_deltaq(i,k)
     2895                   d_deltat_the(i,k) = - d_t_ajs(i,k)
     2896                   d_deltaq_the(i,k) = - d_q_ajs(i,k)
    27572897                   !
    27582898                   d_u_ajs(i,k) = d_u_ajs(i,k)*(1.-wake_s(i))
     
    27632903                ENDDO
    27642904             ENDDO
    2765           ELSE
    2766              DO k=1,klev
    2767                 DO i=1,klon
    2768                    t_seri(i,k) = t_therm(i,k)
    2769                    q_seri(i,k) = q_therm(i,k)
    2770                 ENDDO
    2771              ENDDO
    2772           ENDIF
    2773           !>jyg
    2774 !jyg<
     2905          !
     2906             CALL add_wake_tend &
     2907                 (d_deltat_the, d_deltaq_the, dsig0, ddens0, wkoccur1, 'the', abortphy)
     2908          !
     2909          ENDIF  ! (mod(iflag_pbl_split/2,2) .EQ. 1)
     2910          !
     2911          CALL add_phys_tend(d_u_ajs,d_v_ajs,d_t_ajs,d_q_ajs,  &
     2912                             dql0,dqi0,paprs,'thermals', abortphy,flag_inhib_tend)
     2913          !
    27752914!
    27762915          CALL alpale_th( dtime, lmax_th, t_seri, cell_area,  &
     
    27792918                          alp_bl, alp_bl_stat, &
    27802919                          proba_notrig, random_notrig)
     2920          !>jyg
    27812921
    27822922          ! ------------------------------------------------------------------
     
    28332973          ! ajout des tendances de l'ajustement sec ou des thermiques
    28342974          CALL add_phys_tend(du0,dv0,d_t_ajsb,d_q_ajsb,dql0,dqi0,paprs, &
    2835                'ajsb',abortphy)
     2975               'ajsb',abortphy,flag_inhib_tend)
    28362976          d_t_ajs(:,:)=d_t_ajs(:,:)+d_t_ajsb(:,:)
    28372977          d_q_ajs(:,:)=d_q_ajs(:,:)+d_q_ajsb(:,:)
     
    28923032
    28933033    CALL add_phys_tend(du0,dv0,d_t_lsc,d_q_lsc,d_ql_lsc,d_qi_lsc,paprs, &
    2894          'lsc',abortphy)
     3034         'lsc',abortphy,flag_inhib_tend)
     3035    rain_num(:)=0.
     3036    DO k = 1, klev  ! re-evaporation de l'eau liquide nuageuse
     3037       DO i = 1, klon
     3038          IF (ql_seri(i,k)>oliqmax) THEN
     3039             rain_num(i)=rain_num(i)+(ql_seri(i,k)-oliqmax)*zmasse(i,k)/pdtphys
     3040             ql_seri(i,k)=oliqmax
     3041          ENDIF
     3042       ENDDO
     3043    ENDDO
     3044
    28953045    !---------------------------------------------------------------------------
    28963046    DO k = 1, klev
     
    29953145          enddo
    29963146       enddo
    2997 
    2998        !
    2999        !jq - introduce the aerosol direct and first indirect radiative forcings
    3000        !jq - Johannes Quaas, 27/11/2003 (quaas@lmd.jussieu.fr)
    3001        IF (flag_aerosol .gt. 0) THEN
    3002           IF (iflag_rrtm .EQ. 0) THEN !--old radiation
    3003              IF (.NOT. aerosol_couple) THEN
    3004                 !
    3005                 CALL readaerosol_optic( &
    3006                      debut, new_aod, flag_aerosol, itap, jD_cur-jD_ref, &
    3007                      pdtphys, pplay, paprs, t_seri, rhcl, presnivs,  &
    3008                      mass_solu_aero, mass_solu_aero_pi,  &
    3009                      tau_aero, piz_aero, cg_aero,  &
    3010                      tausum_aero, tau3d_aero)
    3011              ENDIF
    3012           ELSE                       ! RRTM radiation
    3013              IF (aerosol_couple .AND. config_inca == 'aero' ) THEN
    3014                 abort_message='config_inca=aero et rrtm=1 impossible'
    3015                 call abort_physic(modname,abort_message,1)
    3016              ELSE
    3017                 !
    3018 #ifdef CPP_RRTM
    3019                 IF (NSW.EQ.6) THEN
    3020                    !--new aerosol properties
    3021                    !
    3022                    CALL readaerosol_optic_rrtm( debut, aerosol_couple, &
    3023                         new_aod, flag_aerosol, itap, jD_cur-jD_ref, &
    3024                         pdtphys, pplay, paprs, t_seri, rhcl, presnivs,  &
    3025                         tr_seri, mass_solu_aero, mass_solu_aero_pi,  &
    3026                         tau_aero_sw_rrtm, piz_aero_sw_rrtm, cg_aero_sw_rrtm,  &
    3027                         tausum_aero, tau3d_aero)
    3028 
    3029                 ELSE IF (NSW.EQ.2) THEN
    3030                    !--for now we use the old aerosol properties
    3031                    !
    3032                    CALL readaerosol_optic( &
    3033                         debut, new_aod, flag_aerosol, itap, jD_cur-jD_ref, &
    3034                         pdtphys, pplay, paprs, t_seri, rhcl, presnivs,  &
    3035                         mass_solu_aero, mass_solu_aero_pi,  &
    3036                         tau_aero, piz_aero, cg_aero,  &
    3037                         tausum_aero, tau3d_aero)
    3038                    !
    3039                    !--natural aerosols
    3040                    tau_aero_sw_rrtm(:,:,1,:)=tau_aero(:,:,3,:)
    3041                    piz_aero_sw_rrtm(:,:,1,:)=piz_aero(:,:,3,:)
    3042                    cg_aero_sw_rrtm (:,:,1,:)=cg_aero (:,:,3,:)
    3043                    !--all aerosols
    3044                    tau_aero_sw_rrtm(:,:,2,:)=tau_aero(:,:,2,:)
    3045                    piz_aero_sw_rrtm(:,:,2,:)=piz_aero(:,:,2,:)
    3046                    cg_aero_sw_rrtm (:,:,2,:)=cg_aero (:,:,2,:)
    3047                 ELSE
    3048                    abort_message='Only NSW=2 or 6 are possible with ' &
    3049                         // 'aerosols and iflag_rrtm=1'
    3050                    call abort_physic(modname,abort_message,1)
    3051                 ENDIF
    3052 
    3053                 !--call LW optical properties for tropospheric aerosols
    3054                 !--only works for INCA aerosol (aerosol_couple = TRUE)
    3055                 CALL aeropt_lw_rrtm(aerosol_couple,paprs,tr_seri)
    3056                 !
    3057 #else
    3058                 abort_message='You should compile with -rrtm if running ' &
    3059                      // 'with iflag_rrtm=1'
    3060                 call abort_physic(modname,abort_message,1)
    3061 #endif
    3062                 !
    3063              ENDIF
    3064           ENDIF
    3065        ELSE
    3066           tausum_aero(:,:,:) = 0.
    3067           IF (iflag_rrtm .EQ. 0) THEN !--old radiation
    3068              tau_aero(:,:,:,:) = 1.e-15
    3069              piz_aero(:,:,:,:) = 1.
    3070              cg_aero(:,:,:,:)  = 0.
    3071           ELSE
    3072              tau_aero_sw_rrtm(:,:,:,:) = 1.e-15
    3073              tau_aero_lw_rrtm(:,:,:,:) = 1.e-15
    3074              piz_aero_sw_rrtm(:,:,:,:) = 1.0
    3075              cg_aero_sw_rrtm(:,:,:,:)  = 0.0
    3076           ENDIF
    3077        ENDIF
    3078        !
    3079        !--STRAT AEROSOL
    3080        !--updates tausum_aero,tau_aero,piz_aero,cg_aero
    3081        IF (flag_aerosol_strat.GT.0) THEN
    3082           IF (prt_level .GE.10) THEN
    3083              PRINT *,'appel a readaerosolstrat', mth_cur
    3084           ENDIF
    3085           IF (iflag_rrtm.EQ.0) THEN
    3086            IF (flag_aerosol_strat.EQ.1) THEN
    3087              CALL readaerosolstrato(debut)
    3088            ELSE
    3089              abort_message='flag_aerosol_strat must equal 1 for rrtm=0'
    3090              call abort_physic(modname,abort_message,1)
    3091            ENDIF
    3092           ELSE
    3093 #ifdef CPP_RRTM
    3094             IF (flag_aerosol_strat.EQ.1) THEN
    3095              CALL readaerosolstrato1_rrtm(debut)
    3096             ELSEIF (flag_aerosol_strat.EQ.2) THEN
    3097              CALL stratosphere_mask(t_seri, pplay, latitude_deg)
    3098              CALL readaerosolstrato2_rrtm(debut)
    3099             ELSE
    3100              abort_message='flag_aerosol_strat must equal 1 or 2 for rrtm=1'
    3101              call abort_physic(modname,abort_message,1)
    3102             ENDIF
    3103 #else
    3104              abort_message='You should compile with -rrtm if running ' &
    3105                   // 'with iflag_rrtm=1'
    3106              call abort_physic(modname,abort_message,1)
    3107 #endif
    3108           ENDIF
    3109        ENDIF
    3110        !--fin STRAT AEROSOL
    31113147
    31123148       !   On prend la somme des fractions nuageuses et des contenus en eau
     
    33203356#endif
    33213357    END IF !type_trac = inca
    3322     !     
    3323     ! Calculer les parametres optiques des nuages et quelques
    3324     ! parametres pour diagnostiques:
    3325     !
    3326 
    3327     IF (aerosol_couple.AND.config_inca=='aero') THEN
    3328        mass_solu_aero(:,:)    = ccm(:,:,1)
    3329        mass_solu_aero_pi(:,:) = ccm(:,:,2)
    3330     END IF
    3331 
    3332     if (ok_newmicro) then
    3333        IF (iflag_rrtm.NE.0) THEN
     3358
     3359
     3360    !
     3361    ! Appeler le rayonnement mais calculer tout d'abord l'albedo du sol.
     3362    !
     3363    IF (MOD(itaprad,radpas).EQ.0) THEN
     3364
     3365       !
     3366       !jq - introduce the aerosol direct and first indirect radiative forcings
     3367       !jq - Johannes Quaas, 27/11/2003 (quaas@lmd.jussieu.fr)
     3368       IF (flag_aerosol .gt. 0) THEN
     3369          IF (iflag_rrtm .EQ. 0) THEN !--old radiation
     3370             IF (.NOT. aerosol_couple) THEN
     3371                !
     3372                CALL readaerosol_optic( &
     3373                     debut, new_aod, flag_aerosol, itap, jD_cur-jD_ref, &
     3374                     pdtphys, pplay, paprs, t_seri, rhcl, presnivs,  &
     3375                     mass_solu_aero, mass_solu_aero_pi,  &
     3376                     tau_aero, piz_aero, cg_aero,  &
     3377                     tausum_aero, tau3d_aero)
     3378             ENDIF
     3379          ELSE                       ! RRTM radiation
     3380             IF (aerosol_couple .AND. config_inca == 'aero' ) THEN
     3381                abort_message='config_inca=aero et rrtm=1 impossible'
     3382                call abort_physic(modname,abort_message,1)
     3383             ELSE
     3384                !
    33343385#ifdef CPP_RRTM
    3335           IF (ok_cdnc.AND.NRADLP.NE.3) THEN
     3386                IF (NSW.EQ.6) THEN
     3387                   !--new aerosol properties
     3388                   !
     3389                   CALL readaerosol_optic_rrtm( debut, aerosol_couple, &
     3390                        new_aod, flag_aerosol, itap, jD_cur-jD_ref, &
     3391                        pdtphys, pplay, paprs, t_seri, rhcl, presnivs,  &
     3392                        tr_seri, mass_solu_aero, mass_solu_aero_pi,  &
     3393                        tau_aero_sw_rrtm, piz_aero_sw_rrtm, cg_aero_sw_rrtm,  &
     3394                        tausum_aero, tau3d_aero)
     3395
     3396                ELSE IF (NSW.EQ.2) THEN
     3397                   !--for now we use the old aerosol properties
     3398                   !
     3399                   CALL readaerosol_optic( &
     3400                        debut, new_aod, flag_aerosol, itap, jD_cur-jD_ref, &
     3401                        pdtphys, pplay, paprs, t_seri, rhcl, presnivs,  &
     3402                        mass_solu_aero, mass_solu_aero_pi,  &
     3403                        tau_aero, piz_aero, cg_aero,  &
     3404                        tausum_aero, tau3d_aero)
     3405                   !
     3406                   !--natural aerosols
     3407                   tau_aero_sw_rrtm(:,:,1,:)=tau_aero(:,:,3,:)
     3408                   piz_aero_sw_rrtm(:,:,1,:)=piz_aero(:,:,3,:)
     3409                   cg_aero_sw_rrtm (:,:,1,:)=cg_aero (:,:,3,:)
     3410                   !--all aerosols
     3411                   tau_aero_sw_rrtm(:,:,2,:)=tau_aero(:,:,2,:)
     3412                   piz_aero_sw_rrtm(:,:,2,:)=piz_aero(:,:,2,:)
     3413                   cg_aero_sw_rrtm (:,:,2,:)=cg_aero (:,:,2,:)
     3414                ELSE
     3415                   abort_message='Only NSW=2 or 6 are possible with ' &
     3416                        // 'aerosols and iflag_rrtm=1'
     3417                   call abort_physic(modname,abort_message,1)
     3418                ENDIF
     3419
     3420                !--call LW optical properties for tropospheric aerosols
     3421                !--only works for INCA aerosol (aerosol_couple = TRUE)
     3422                CALL aeropt_lw_rrtm(aerosol_couple,paprs,tr_seri)
     3423                !
     3424#else
     3425                abort_message='You should compile with -rrtm if running ' &
     3426                     // 'with iflag_rrtm=1'
     3427                call abort_physic(modname,abort_message,1)
     3428#endif
     3429                !
     3430             ENDIF
     3431          ENDIF
     3432       ELSE
     3433          tausum_aero(:,:,:) = 0.
     3434          mass_solu_aero(:,:) = 0.
     3435          mass_solu_aero_pi(:,:) = 0.
     3436          IF (iflag_rrtm .EQ. 0) THEN !--old radiation
     3437             tau_aero(:,:,:,:) = 1.e-15
     3438             piz_aero(:,:,:,:) = 1.
     3439             cg_aero(:,:,:,:)  = 0.
     3440          ELSE
     3441             tau_aero_sw_rrtm(:,:,:,:) = 1.e-15
     3442             tau_aero_lw_rrtm(:,:,:,:) = 1.e-15
     3443             piz_aero_sw_rrtm(:,:,:,:) = 1.0
     3444             cg_aero_sw_rrtm(:,:,:,:)  = 0.0
     3445          ENDIF
     3446       ENDIF
     3447       !
     3448       !--STRAT AEROSOL
     3449       !--updates tausum_aero,tau_aero,piz_aero,cg_aero
     3450       IF (flag_aerosol_strat.GT.0) THEN
     3451          IF (prt_level .GE.10) THEN
     3452             PRINT *,'appel a readaerosolstrat', mth_cur
     3453          ENDIF
     3454          IF (iflag_rrtm.EQ.0) THEN
     3455           IF (flag_aerosol_strat.EQ.1) THEN
     3456             CALL readaerosolstrato(debut)
     3457           ELSE
     3458             abort_message='flag_aerosol_strat must equal 1 for rrtm=0'
     3459             CALL abort_physic(modname,abort_message,1)
     3460           ENDIF
     3461          ELSE
     3462#ifdef CPP_RRTM
     3463            IF (flag_aerosol_strat.EQ.1) THEN
     3464             CALL readaerosolstrato1_rrtm(debut)
     3465            ELSEIF (flag_aerosol_strat.EQ.2) THEN
     3466             CALL stratosphere_mask(t_seri, pplay, latitude_deg)
     3467             CALL readaerosolstrato2_rrtm(debut)
     3468            ELSE
     3469             abort_message='flag_aerosol_strat must equal 1 or 2 for rrtm=1'
     3470             CALL abort_physic(modname,abort_message,1)
     3471            ENDIF
     3472#else
     3473             abort_message='You should compile with -rrtm if running ' &
     3474                  // 'with iflag_rrtm=1'
     3475             CALL abort_physic(modname,abort_message,1)
     3476#endif
     3477          ENDIF
     3478       ENDIF
     3479       !--fin STRAT AEROSOL
     3480       !     
     3481
     3482       ! Calculer les parametres optiques des nuages et quelques
     3483       ! parametres pour diagnostiques:
     3484       !
     3485       IF (aerosol_couple.AND.config_inca=='aero') THEN
     3486          mass_solu_aero(:,:)    = ccm(:,:,1)
     3487          mass_solu_aero_pi(:,:) = ccm(:,:,2)
     3488       END IF
     3489
     3490       IF (ok_newmicro) then
     3491          IF (iflag_rrtm.NE.0) THEN
     3492#ifdef CPP_RRTM
     3493             IF (ok_cdnc.AND.NRADLP.NE.3) THEN
    33363494             abort_message='RRTM choix incoherent NRADLP doit etre egal a 3 ' &
    33373495                  // 'pour ok_cdnc'
    3338              call abort_physic(modname,abort_message,1)
    3339           endif
     3496             CALL abort_physic(modname,abort_message,1)
     3497             ENDIF
    33403498#else
    33413499
    3342           abort_message='You should compile with -rrtm if running with ' &
    3343                // 'iflag_rrtm=1'
    3344           call abort_physic(modname,abort_message,1)
     3500             abort_message='You should compile with -rrtm if running with '//'iflag_rrtm=1'
     3501             CALL abort_physic(modname,abort_message,1)
    33453502#endif
     3503          ENDIF
     3504          CALL newmicro (ok_cdnc, bl95_b0, bl95_b1, &
     3505               paprs, pplay, t_seri, cldliq, cldfra, &
     3506               cldtau, cldemi, cldh, cldl, cldm, cldt, cldq, &
     3507               flwp, fiwp, flwc, fiwc, &
     3508               mass_solu_aero, mass_solu_aero_pi, &
     3509               cldtaupi, re, fl, ref_liq, ref_ice, &
     3510               ref_liq_pi, ref_ice_pi)
     3511       ELSE
     3512          CALL nuage (paprs, pplay, &
     3513               t_seri, cldliq, cldfra, cldtau, cldemi, &
     3514               cldh, cldl, cldm, cldt, cldq, &
     3515               ok_aie, &
     3516               mass_solu_aero, mass_solu_aero_pi, &
     3517               bl95_b0, bl95_b1, &
     3518               cldtaupi, re, fl)
    33463519       ENDIF
    3347        CALL newmicro (ok_cdnc, bl95_b0, bl95_b1, &
    3348             paprs, pplay, t_seri, cldliq, cldfra, &
    3349             cldtau, cldemi, cldh, cldl, cldm, cldt, cldq, &
    3350             flwp, fiwp, flwc, fiwc, &
    3351             mass_solu_aero, mass_solu_aero_pi, &
    3352             cldtaupi, re, fl, ref_liq, ref_ice, &
    3353             ref_liq_pi, ref_ice_pi)
    3354     else
    3355        CALL nuage (paprs, pplay, &
    3356             t_seri, cldliq, cldfra, cldtau, cldemi, &
    3357             cldh, cldl, cldm, cldt, cldq, &
    3358             ok_aie, &
    3359             mass_solu_aero, mass_solu_aero_pi, &
    3360             bl95_b0, bl95_b1, &
    3361             cldtaupi, re, fl)
    3362     endif
    3363     !
    3364     !IM betaCRF
    3365     !
    3366     cldtaurad   = cldtau
    3367     cldtaupirad = cldtaupi
    3368     cldemirad   = cldemi
    3369     cldfrarad   = cldfra
    3370 
    3371     !
    3372     if(lon1_beta.EQ.-180..AND.lon2_beta.EQ.180..AND. &
    3373          lat1_beta.EQ.90..AND.lat2_beta.EQ.-90.) THEN
    3374        !
    3375        ! global
    3376        !
    3377        DO k=1, klev
    3378           DO i=1, klon
    3379              if (pplay(i,k).GE.pfree) THEN
    3380                 beta(i,k) = beta_pbl
    3381              else
    3382                 beta(i,k) = beta_free
    3383              endif
    3384              if (mskocean_beta) THEN
    3385                 beta(i,k) = beta(i,k) * pctsrf(i,is_oce)
    3386              endif
    3387              cldtaurad(i,k)   = cldtau(i,k) * beta(i,k)
    3388              cldtaupirad(i,k) = cldtaupi(i,k) * beta(i,k)
    3389              cldemirad(i,k)   = cldemi(i,k) * beta(i,k)
    3390              cldfrarad(i,k)   = cldfra(i,k) * beta(i,k)
    3391           ENDDO
    3392        ENDDO
    3393        !
    3394     else
    3395        !
    3396        ! regional
    3397        !
    3398        DO k=1, klev
    3399           DO i=1,klon
    3400              !
    3401              if (longitude_deg(i).ge.lon1_beta.AND. &
    3402                   longitude_deg(i).le.lon2_beta.AND. &
    3403                   latitude_deg(i).le.lat1_beta.AND. &
    3404                   latitude_deg(i).ge.lat2_beta) THEN
    3405                 if (pplay(i,k).GE.pfree) THEN
     3520       !
     3521       !IM betaCRF
     3522       !
     3523       cldtaurad   = cldtau
     3524       cldtaupirad = cldtaupi
     3525       cldemirad   = cldemi
     3526       cldfrarad   = cldfra
     3527
     3528       !
     3529       IF (lon1_beta.EQ.-180..AND.lon2_beta.EQ.180..AND. &
     3530           lat1_beta.EQ.90..AND.lat2_beta.EQ.-90.) THEN
     3531          !
     3532          ! global
     3533          !
     3534          DO k=1, klev
     3535             DO i=1, klon
     3536                IF (pplay(i,k).GE.pfree) THEN
    34063537                   beta(i,k) = beta_pbl
    3407                 else
     3538                ELSE
    34083539                   beta(i,k) = beta_free
    3409                 endif
    3410                 if (mskocean_beta) THEN
     3540                ENDIF
     3541                IF (mskocean_beta) THEN
    34113542                   beta(i,k) = beta(i,k) * pctsrf(i,is_oce)
    3412                 endif
     3543                ENDIF
    34133544                cldtaurad(i,k)   = cldtau(i,k) * beta(i,k)
    34143545                cldtaupirad(i,k) = cldtaupi(i,k) * beta(i,k)
    34153546                cldemirad(i,k)   = cldemi(i,k) * beta(i,k)
    34163547                cldfrarad(i,k)   = cldfra(i,k) * beta(i,k)
    3417              endif
     3548             ENDDO
     3549          ENDDO
     3550          !
     3551       ELSE
     3552          !
     3553          ! regional
     3554          !
     3555          DO k=1, klev
     3556             DO i=1,klon
     3557                !
     3558                IF (longitude_deg(i).ge.lon1_beta.AND. &
     3559                    longitude_deg(i).le.lon2_beta.AND. &
     3560                    latitude_deg(i).le.lat1_beta.AND.  &
     3561                    latitude_deg(i).ge.lat2_beta) THEN
     3562                   IF (pplay(i,k).GE.pfree) THEN
     3563                      beta(i,k) = beta_pbl
     3564                   ELSE
     3565                      beta(i,k) = beta_free
     3566                   ENDIF
     3567                   IF (mskocean_beta) THEN
     3568                      beta(i,k) = beta(i,k) * pctsrf(i,is_oce)
     3569                   ENDIF
     3570                   cldtaurad(i,k)   = cldtau(i,k) * beta(i,k)
     3571                   cldtaupirad(i,k) = cldtaupi(i,k) * beta(i,k)
     3572                   cldemirad(i,k)   = cldemi(i,k) * beta(i,k)
     3573                   cldfrarad(i,k)   = cldfra(i,k) * beta(i,k)
     3574                ENDIF
    34183575             !
     3576             ENDDO
    34193577          ENDDO
    3420        ENDDO
    3421        !
    3422     endif
    3423     !
    3424     ! Appeler le rayonnement mais calculer tout d'abord l'albedo du sol.
    3425     !
    3426     IF (MOD(itaprad,radpas).EQ.0) THEN
    3427 
    3428        !albedo SB >>> 
    3429        if(ok_chlorophyll)then
     3578       !
     3579       ENDIF
     3580
     3581       !lecture de la chlorophylle pour le nouvel albedo de Sunghye Baek
     3582       IF (ok_chlorophyll) THEN
    34303583          print*,"-- reading chlorophyll"
    3431           call readchlorophyll(debut)
    3432        endif
    3433        !do i=1,klon
    3434        !if(chl_con(i)>1.) print*,i,chl_con(i),pctsrf(i,is_ter)
    3435        !enddo
    3436        !albedo SB <<<
     3584          CALL readchlorophyll(debut)
     3585       ENDIF
    34373586
    34383587!--if ok_suntime_rrtm we use ancillay data for RSUN
     
    34833632               cldtaupirad, &
    34843633               topswai_aero, solswai_aero)
    3485 
    34863634#endif
    34873635       ELSE
     
    34983646             print *,' ->radlwsw, number 1 '
    34993647          ENDIF
    3500 
    35013648          !
    35023649          CALL radlwsw &
     
    35693716                                !albedo SB <<<
    35703717                     t_seri,q_seri,wo, &
    3571                      cldfra, cldemi, cldtau, &
     3718                     cldfrarad, cldemirad, cldtaurad, &
    35723719                     ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, flag_aerosol, &
    35733720                     flag_aerosol_strat, &
     
    36383785    !
    36393786    radsol=solsw*swradcorr+sollw
     3787
    36403788    if (ok_4xCO2atm) then
    36413789       radsolp=solswp*swradcorr+sollwp
     
    36543802    ENDDO
    36553803
    3656     CALL add_phys_tend(du0,dv0,d_t_swr,dq0,dql0,dqi0,paprs,'SW',abortphy)
    3657     CALL add_phys_tend(du0,dv0,d_t_lwr,dq0,dql0,dqi0,paprs,'LW',abortphy)
     3804    CALL add_phys_tend(du0,dv0,d_t_swr,dq0,dql0,dqi0,paprs,'SW',abortphy,flag_inhib_tend)
     3805    CALL add_phys_tend(du0,dv0,d_t_lwr,dq0,dql0,dqi0,paprs,'LW',abortphy,flag_inhib_tend)
    36583806
    36593807    !
     
    37393887       ! ajout des tendances de la trainee de l'orographie
    37403888       CALL add_phys_tend(d_u_oro,d_v_oro,d_t_oro,dq0,dql0,dqi0,paprs,'oro', &
    3741             abortphy)
     3889            abortphy,flag_inhib_tend)
    37423890       !----------------------------------------------------------------------
    37433891       !
     
    37853933       ! ajout des tendances de la portance de l'orographie
    37863934       CALL add_phys_tend(d_u_lif, d_v_lif, d_t_lif, dq0, dql0, dqi0, paprs, &
    3787             'lif', abortphy)
     3935            'lif', abortphy,flag_inhib_tend)
    37883936    ENDIF ! fin de test sur ok_orolf
    37893937
     
    38083956       d_t_hin(:, :)=0.
    38093957       CALL add_phys_tend(du_gwd_hines, dv_gwd_hines, d_t_hin, dq0, dql0, &
    3810             dqi0, paprs, 'hin', abortphy)
     3958            dqi0, paprs, 'hin', abortphy,flag_inhib_tend)
    38113959    ENDIF
    38123960
     
    38253973
    38263974       CALL add_phys_tend(du_gwd_front, dv_gwd_front, dt0, dq0, dql0, dqi0, &
    3827             paprs, 'front_gwd_rando', abortphy)
     3975            paprs, 'front_gwd_rando', abortphy,flag_inhib_tend)
    38283976    ENDIF
    38293977
     
    38333981            du_gwd_rando, dv_gwd_rando, east_gwstress, west_gwstress)
    38343982       CALL add_phys_tend(du_gwd_rando, dv_gwd_rando, dt0, dq0, dql0, dqi0, &
    3835             paprs, 'flott_gwd_rando', abortphy)
     3983            paprs, 'flott_gwd_rando', abortphy,flag_inhib_tend)
    38363984       zustr_gwd_rando=0.
    38373985       zvstr_gwd_rando=0.
     
    38964044       ! ajout de la tendance d'humidite due au methane
    38974045       CALL add_phys_tend(du0, dv0, dt0, d_q_ch4*dtime, dql0, dqi0, paprs, &
    3898             'q_ch4', abortphy)
     4046            'q_ch4', abortphy,flag_inhib_tend)
    38994047    END IF
    39004048    !
     
    39774125       sh_in(:,:) = qx(:,:,ivap)
    39784126    END IF
     4127
     4128#ifdef CPP_Dust
     4129      CALL       phytracr_spl ( debut,lafin , jD_cur,jH_cur,iflag_con,       &  ! I
     4130                      pdtphys,ftsol,                                   &  ! I
     4131                      t,q_seri,paprs,pplay,RHcl,                  &  ! I
     4132                      pmfu, pmfd, pen_u, pde_u, pen_d, pde_d,          &  ! I
     4133                      coefh(1:klon,1:klev,is_ave), cdragh, cdragm, u1, v1,                 &  ! I
     4134                      u_seri, v_seri, latitude_deg, longitude_deg,  &
     4135                      pphis,pctsrf,pmflxr,pmflxs,prfl,psfl,            &  ! I
     4136                      da,phi,phi2,d1a,dam,mp,ep,sigd,sij,clw,elij,     &  ! I
     4137                      epmlmMm,eplaMm,upwd,dnwd,itop_con,ibas_con,      &  ! I
     4138                      ev,wdtrainA,  wdtrainM,wght_cvfd,              &  ! I
     4139                      fm_therm, entr_therm, rneb,                      &  ! I
     4140                      beta_prec_fisrt,beta_prec, & !I
     4141                      zu10m,zv10m,wstar,ale_bl,ale_wake,               &  ! I
     4142                      d_tr_dyn,tr_seri)
     4143
     4144#else
    39794145
    39804146    call phytrac ( &
     
    40024168         d_tr_dyn, &                                 !<<RomP
    40034169         tr_seri)
     4170#endif
    40044171
    40054172    IF (offline) THEN
     
    43334500    !On effectue les sorties:
    43344501
     4502#ifdef CPP_Dust
     4503  CALL phys_output_write_spl(itap, pdtphys, paprs, pphis,  &
     4504       pplay, lmax_th, aerosol_couple,                 &
     4505       ok_ade, ok_aie, ivap, new_aod, ok_sync,         &
     4506       ptconv, read_climoz, clevSTD,                   &
     4507       ptconvth, d_t, qx, d_qx, d_tr_dyn, zmasse,      &
     4508       flag_aerosol, flag_aerosol_strat, ok_cdnc)
     4509#else
    43354510    CALL phys_output_write(itap, pdtphys, paprs, pphis,  &
    43364511         pplay, lmax_th, aerosol_couple,                 &
     
    43394514         ptconvth, d_t, qx, d_qx, zmasse,                &
    43404515         flag_aerosol, flag_aerosol_strat, ok_cdnc)
    4341 
    4342     include "write_histday_seri.h"
     4516#endif
     4517
    43434518
    43444519    CALL write_paramLMDZ_phy(itap,nid_ctesGCM,ok_sync)
  • LMDZ5/branches/testing/libf/phylmd/phytrac_mod.F90

    r2408 r2641  
    570570    CASE('inca')
    571571       !    -- CHIMIE INCA  config_inca = aero or chem --
    572 
    573        CALL tracinca(&
    574             nstep,    julien,   gmtime,         lafin,     &
    575             pdtphys,  t_seri,   paprs,          pplay,     &
    576             pmfu,     upwd,     ftsol,  pctsrf, pphis,     &
    577             pphi,     albsol,   sh,             rh,        &
    578             cldfra,   rneb,     diafra,         cldliq,    &
    579             itop_con, ibas_con, pmflxr,         pmflxs,    &
    580             prfl,     psfl,     aerosol_couple, flxmass_w, &
    581             tau_aero, piz_aero, cg_aero,        ccm,       &
    582             rfname,                                        &
    583             tr_seri,  source)     
    584 
     572       ! Appel fait en fin de phytrac pour avoir les emissions modifiees par
     573       ! la couche limite et la convection avant le calcul de la chimie
    585574    CASE('repr')
    586575       !   -- CHIMIE REPROBUS --
     
    895884    END IF !  lessivage
    896885
     886
     887    !    -- CHIMIE INCA  config_inca = aero or chem --
     888    IF (type_trac == 'inca') THEN
     889
     890       CALL tracinca(&
     891            nstep,    julien,   gmtime,         lafin,     &
     892            pdtphys,  t_seri,   paprs,          pplay,     &
     893            pmfu,     upwd,     ftsol,  pctsrf, pphis,     &
     894            pphi,     albsol,   sh,             rh,        &
     895            cldfra,   rneb,     diafra,         cldliq,    &
     896            itop_con, ibas_con, pmflxr,         pmflxs,    &
     897            prfl,     psfl,     aerosol_couple, flxmass_w, &
     898            tau_aero, piz_aero, cg_aero,        ccm,       &
     899            rfname,                                        &
     900            tr_seri,  source)     
     901       
     902       
     903    ENDIF
    897904    !=============================================================
    898905    !   Ecriture des sorties
  • LMDZ5/branches/testing/libf/phylmd/radlwsw_m.F90

    r2542 r2641  
    465465        PWV(i,k) = MAX (q(iof+i,k), 1.0e-12)
    466466        PQS(i,k) = PWV(i,k)
     467!       Confert from  column density of ozone in a cell, in kDU, to a mass fraction
    467468        POZON(i,k, :) = wo(iof+i, k, :) * RG * dobson_u * 1e3 &
    468469             / (paprs(iof+i, k) - paprs(iof+i, k+1))
  • LMDZ5/branches/testing/libf/phylmd/rrtm/aeropt_5wv_rrtm.F90

    r2594 r2641  
    9494  REAL :: od670aer(klon)  ! epaisseur optique aerosol extinction 670 nm
    9595  REAL :: fac
    96   REAL :: zdp1(klon,klev)
    9796  INTEGER, ALLOCATABLE, DIMENSION(:)  :: aerosol_name
    9897  INTEGER :: nb_aer, itau
    9998  LOGICAL :: ok_itau
    10099 
    101   REAL :: dh(KLON,KLEV)
     100  REAL :: zdh(klon,klev)
    102101 
    103102   ! Soluble components 1- BC soluble; 2- POM soluble; 3- SO4 acc.; 4- SO4 coarse; 5 seasalt super-coarse; 6 seasalt coarse; 7 seasalt acc.
     
    106105  REAL :: alpha_aeri_5wv(las,naero_insoluble)         ! Ext. coeff. ** m2/g
    107106
    108   REAL, DIMENSION(klon,klev,naero_tot) :: mass_temp
    109  
    110107  !
    111108  ! Proprietes optiques
    112109  !
    113110  REAL :: fact_RH(nbre_RH)
    114   LOGICAL :: used_tau(naero_tot)
    115111  INTEGER :: n
    116112
     
    209205  ai(:) = 0.
    210206  tausum(:,:,:) = 0.
     207  tau(:,:,:,:)=0.
    211208
    212209  DO k=1, klev
    213210    DO i=1, klon
    214211      zrho=pplay(i,k)/t_seri(i,k)/RD                  ! kg/m3
    215       dh(i,k)=pdel(i,k)/(RG*zrho)
    216 !CDIR UNROLL=naero_spc
    217       mass_temp(i,k,:) = m_allaer(i,k,:) / zrho / 1.e+9
    218       zdp1(i,k)=pdel(i,k)/(RG*delt)     ! air mass auxiliary  variable --> zdp1 [kg/(m^2 *s)]
     212      zdh(i,k)=pdel(i,k)/(RG*zrho)                    ! m
    219213    ENDDO
    220214  ENDDO
     
    270264  !     
    271265
    272 !CDIR ON_ADB(RH_tab)
    273 !CDIR ON_ADB(fact_RH)
    274 !CDIR NOVECTOR
    275266  DO n=1,nbre_RH-1
    276267    fact_RH(n)=1./(RH_tab(n+1)-RH_tab(n))
    277268  ENDDO
    278269   
    279   DO k=1, KLEV
    280 !CDIR ON_ADB(RH_tab)
    281 !CDIR ON_ADB(fact_RH)
    282     DO i=1, KLON
     270  DO k=1, klev
     271    DO i=1, klon
    283272      rh(i,k)=MIN(RHcl(i,k)*100.,RH_MAX)
    284273      RH_num(i,k) = INT( rh(i,k)/10. + 1.)
     
    289278  ENDDO
    290279
    291 !CDIR SHORTLOOP 
    292   used_tau(:)=.FALSE.
    293    
    294280  DO m=1,nb_aer   ! tau is only computed for each mass   
    295281    fac=1.0
     
    330316    ENDIF
    331317
    332     IF (soluble) then
    333       used_tau(spsol)=.TRUE.
    334     ELSE
    335       used_tau(naero_soluble+spinsol)=.TRUE.
    336     ENDIF
    337 
    338318    aerindex=aerosol_name(m)
    339319
    340320    DO la=1,las
    341321
     322    !--only 550, 670 and 865 nm are used
     323    IF (la.NE.la550.AND.la.NE.la670.AND.la.NE.la865) CYCLE
     324
    342325      IF (soluble) THEN            ! For soluble aerosol
    343326
    344           DO k=1, KLEV
    345             DO i=1, KLON
     327          DO k=1, klev
     328            DO i=1, klon
    346329              tau_ae5wv_int = alpha_aers_5wv(RH_num(i,k),la,spsol)+DELTA(i,k)* &
    347330                             (alpha_aers_5wv(RH_num(i,k)+1,la,spsol) - &
    348331                              alpha_aers_5wv(RH_num(i,k),la,spsol))
    349               tau(i,k,la,aerindex) = mass_temp(i,k,aerindex)*1000.*zdp1(i,k)*   &
    350                                     tau_ae5wv_int*delt*fac
     332              tau(i,k,la,aerindex) = m_allaer(i,k,aerindex)/1.e6*zdh(i,k)*tau_ae5wv_int*fac
    351333              tausum(i,la,aerindex)=tausum(i,la,aerindex)+tau(i,k,la,aerindex)
    352334            ENDDO
     
    355337      ELSE                         ! For insoluble aerosol
    356338
    357         DO k=1, KLEV
    358           DO i=1, KLON
     339        DO k=1, klev
     340          DO i=1, klon
    359341            tau_ae5wv_int = alpha_aeri_5wv(la,spinsol)
    360             tau(i,k,la,aerindex) = mass_temp(i,k,aerindex)*1000.*zdp1(i,k)* &
    361                                    tau_ae5wv_int*delt*fac
     342            tau(i,k,la,aerindex) = m_allaer(i,k,aerindex)/1.e6*zdh(i,k)*tau_ae5wv_int*fac
    362343            tausum(i,la,aerindex)= tausum(i,la,aerindex)+tau(i,k,la,aerindex)
    363344          ENDDO
     
    369350  ENDDO     ! Boucle sur les masses de traceurs
    370351
    371   DO m=1,naero_tot
    372     IF (.NOT.used_tau(m)) tau(:,:,:,m)=0.
    373   ENDDO 
    374 
    375   DO i=1, klon
    376      od550aer(i)=0.
    377      DO m=1,naero_tot
    378         od550aer(i)=od550aer(i)+tausum(i,la550,m)
    379      END DO
    380   END DO
    381 
    382   DO i=1, klon
    383      od670aer(i)=0.
    384      DO m=1,naero_tot
    385         od670aer(i)=od670aer(i)+tausum(i,la670,m)
    386      END DO
    387   END DO
    388 
    389   DO i=1, klon
    390      od865aer(i)=0.
    391      DO m=1,naero_tot
    392         od865aer(i)=od865aer(i)+tausum(i,la865,m)
    393      END DO
    394   END DO
    395 
    396   DO i=1, klon
    397      DO k=1, KLEV
    398         ec550aer(i,k)=0.
    399         DO m=1,naero_tot
    400            ec550aer(i,k)=ec550aer(i,k)+tau(i,k,la550,m)/dh(i,k)
    401         END DO
    402      END DO
    403   END DO
    404  
    405   DO i=1, klon
    406     ai(i)=-LOG(MAX(od670aer(i),1.e-8)/MAX(od865aer(i),1.e-8))/LOG(670./865.)
    407   ENDDO
     352!--AOD calculations for diagnostics
     353  od550aer(:)=SUM(tausum(:,la550,:),dim=2)
     354  od670aer(:)=SUM(tausum(:,la670,:),dim=2)
     355  od865aer(:)=SUM(tausum(:,la865,:),dim=2)
     356
     357!--extinction coefficient for diagnostic
     358  ec550aer(:,:)=SUM(tau(:,:,la550,:),dim=3)/zdh(:,:)
     359
     360!--aerosol index
     361  ai(:)=-LOG(MAX(od670aer(:),1.e-8)/MAX(od865aer(:),1.e-8))/LOG(670./865.)
    408362
    409363  od550lt1aer(:)=tausum(:,la550,id_ASSO4M_phy)+tausum(:,la550,id_ASBCM_phy) +tausum(:,la550,id_AIBCM_phy)+ &
  • LMDZ5/branches/testing/libf/phylmd/rrtm/aeropt_6bands_rrtm.F90

    r2408 r2641  
    3636  !
    3737  ! Output arguments:
    38   ! 1= total aerosols
    39   ! 2= natural aerosols
     38  ! 2= total aerosols
     39  ! 1= natural aerosols
    4040  !
    4141  REAL, DIMENSION(klon,klev,2,nbands_sw_rrtm), INTENT(out) :: tau_allaer ! epaisseur optique aerosol
     
    6666  REAL :: Fact_RH(nbre_RH)
    6767  REAL :: fac
    68   REAL :: zdp1(klon,klev)
     68  REAL :: zdh(klon,klev)
    6969  INTEGER, ALLOCATABLE, DIMENSION(:)   :: aerosol_name
    7070  INTEGER :: nb_aer
    7171
    72   REAL, DIMENSION(klon,klev,naero_tot) :: mass_temp
    73   REAL, DIMENSION(klon,klev,naero_tot) :: mass_temp_pi
    7472  REAL, DIMENSION(klon,klev,naero_tot,nbands_sw_rrtm) ::  tau_ae
    7573  REAL, DIMENSION(klon,klev,naero_tot,nbands_sw_rrtm) ::  tau_ae_pi
    7674  REAL, DIMENSION(klon,klev,naero_tot,nbands_sw_rrtm) ::  piz_ae
    7775  REAL, DIMENSION(klon,klev,naero_tot,nbands_sw_rrtm) ::  cg_ae
    78 
    79 
    8076  !
    8177  ! Proprietes optiques
     
    8985
    9086  INTEGER :: id
    91   LOGICAL :: used_aer(naero_tot)
    9287  REAL :: tmp_var, tmp_var_pi
    9388
     
    277272  spsol = 0
    278273  spinsol = 0
     274
    279275  IF (NSW.NE.nbands_sw_rrtm) THEN
    280276     print *,'Erreur NSW doit etre egal a 6 pour cette routine'
     
    282278  ENDIF
    283279
    284   DO k=1, klev
    285     DO i=1, klon
    286 !CDIR UNROLL=naero_tot
    287       mass_temp(i,k,:) = m_allaer(i,k,:) / zrho(i,k) / 1.e+9  !--kg/kg
    288 !CDIR UNROLL=naero_tot
    289       mass_temp_pi(i,k,:) = m_allaer_pi(i,k,:) / zrho(i,k) / 1.e+9
    290       zdp1(i,k)=pdel(i,k)/(RG*delt)      ! air mass auxiliary  variable --> zdp1 [kg/(m^2 *s)]
    291     ENDDO
    292   ENDDO
     280  zdh(:,:)=pdel(:,:)/(RG*zrho(:,:))      ! m
    293281
    294282  IF (flag_aerosol .EQ. 1) THEN
     
    339327  !      compute optical_thickness_at_gridpoint_per_species
    340328
    341 !!CDIR ON_ADB(RH_tab)
    342 !CDIR ON_ADB(fact_RH)
    343 !CDIR SHORTLOOP
    344329  DO n=1,nbre_RH-1
    345330    fact_RH(n)=1./(RH_tab(n+1)-RH_tab(n))
    346331  ENDDO
    347332   
    348   DO k=1, KLEV
    349 !CDIR ON_ADB(fact_RH)
    350     DO i=1, KLON
     333  DO k=1, klev
     334    DO i=1, klon
    351335      rh(i,k)=MIN(RHcl(i,k)*100.,RH_MAX)
    352336      RH_num(i,k) = INT(rh(i,k)/10. + 1.)
     
    357341  ENDDO
    358342
    359   used_aer(:)=.FALSE.
     343  tau_ae(:,:,:,:)=0.
     344  tau_ae_pi(:,:,:,:)=0.
     345  piz_ae(:,:,:,:)=0.
     346  cg_ae(:,:,:,:)=0.
    360347   
    361348  DO m=1,nb_aer   ! tau is only computed for each mass
     
    398385
    399386    id=aerosol_name(m)
    400     used_aer(id)=.TRUE.
    401387
    402388    IF (soluble) THEN
    403389
    404        DO k=1, KLEV
    405          DO i=1, KLON
    406            tmp_var=mass_temp(i,k,spsol)*1000.*zdp1(i,k)*delt*fac
    407            tmp_var_pi=mass_temp_pi(i,k,spsol)*1000.*zdp1(i,k)*delt*fac
     390       DO k=1, klev
     391         DO i=1, klon
     392           tmp_var=m_allaer(i,k,spsol)/1.e6*zdh(i,k)*fac
     393           tmp_var_pi=m_allaer_pi(i,k,spsol)/1.e6*zdh(i,k)*fac
    408394
    409395           DO inu=1,NSW
     
    432418     ELSE    ! For all aerosol insoluble components
    433419
    434        DO k=1, KLEV
    435          DO i=1, KLON
    436            tmp_var=mass_temp(i,k,naero_soluble+ spinsol)*1000.*zdp1(i,k)*delt*fac
    437            tmp_var_pi=mass_temp_pi(i,k,naero_soluble+spinsol)*1000.*zdp1(i,k)*delt*fac
     420       DO k=1, klev
     421         DO i=1, klon
     422           tmp_var=m_allaer(i,k,naero_soluble+spinsol)/1.e6*zdh(i,k)*fac
     423           tmp_var_pi=m_allaer_pi(i,k,naero_soluble+spinsol)/1.e6*zdh(i,k)*fac
    438424
    439425           DO inu=1,NSW
     
    454440  ENDDO  ! nb_aer 
    455441
    456   DO m=1,naero_tot
    457     IF (.NOT. used_aer(m)) THEN
    458       tau_ae(:,:,m,:)=0.
    459       tau_ae_pi(:,:,m,:)=0.
    460       piz_ae(:,:,m,:)=0.
    461       cg_ae(:,:,m,:)=0.
    462     ENDIF
    463   ENDDO
    464 
    465442  DO inu=1, NSW
    466      DO k=1, KLEV
    467        DO i=1, KLON
     443     DO k=1, klev
     444       DO i=1, klon
    468445!--anthropogenic aerosol
    469446         tau_allaer(i,k,2,inu)=tau_ae(i,k,id_ASSO4M_phy,inu)+tau_ae(i,k,id_CSSO4M_phy,inu)+ &
     
    536513    ENDDO
    537514   
    538 !--???????
    539   inu=1
    540   DO i=1, KLON
    541      absvisaer(i)=SUM((1-piz_allaer(i,:,:,inu))*tau_allaer(i,:,:,inu))
    542   END DO       
     515!--waveband 2 and all aerosol
     516  inu=2
     517  DO i=1, klon
     518     absvisaer(i)=SUM((1-piz_allaer(i,:,2,inu))*tau_allaer(i,:,2,inu))
     519  ENDDO
    543520
    544521  DEALLOCATE(aerosol_name)
  • LMDZ5/branches/testing/libf/phylmd/rrtm/rrtm_ecrt_140gp.F90

    r2160 r2641  
    3131 & JPINPX 
    3232USE YOERAD   , ONLY : NLW      ,NOVLP
    33 USE YOERDI   , ONLY :    RCH4     ,RN2O    ,RCFC11  ,RCFC12
     33!MPL/IM 20160915 on prend GES de phylmd USE YOERDI   , ONLY :    RCH4     ,RN2O    ,RCFC11  ,RCFC12
    3434USE YOESW    , ONLY : RAER
    3535
     
    113113REAL(KIND=JPRB) :: ZHOOK_HANDLE
    114114
     115!MPL/IM 20160915 on prend GES de phylmd
     116#include "clesphys.h"
    115117! ***
    116118
     
    400402
    401403!     ------------------------------------------------------------------
    402 
     404 
    403405IF (LHOOK) CALL DR_HOOK('RRTM_ECRT_140GP',1,ZHOOK_HANDLE)
    404406END SUBROUTINE RRTM_ECRT_140GP
  • LMDZ5/branches/testing/libf/phylmd/rrtm/srtm_srtm_224gp_mcica.F90

    r1999 r2641  
    1616
    1717USE PARSRTM  , ONLY : JPLAY
    18 USE YOERDI   , ONLY : RCH4   , RN2O   
     18!MPL/IM 20160915 on prend GES de phylmd USE YOERDI   , ONLY : RCH4   , RN2O   
    1919USE YOERAD   , ONLY : NAER
    2020USE YOESRTAER, ONLY : RSRTAUA, RSRPIZA, RSRASYA
     
    133133#include "srtm_setcoef.intfb.h"
    134134#include "srtm_spcvrt_mcica.intfb.h"
    135 
     135!MPL/IM 20160915 on prend GES de phylmd
     136#include "clesphys.h"
    136137
    137138!-----------------------------------------------------------------------
  • LMDZ5/branches/testing/libf/phylmd/rrtm/suecrad.F90

    r2160 r2641  
    245245#include "naerad.h"
    246246#include "namrgri.h"
     247!MPL/IM 20160915 on prend GES de phylmd
    247248#include "clesphys.h"
    248249
     
    449450
    450451! Valeurs LMDZ (physiq.def) MPL 18052010
    451 RCCO2   = 348.E-06_JPRB
    452 RCCH4   = 1.65E-06_JPRB
    453 RCN2O   = 306.E-09_JPRB
    454 RCCFC11 = 280.E-12_JPRB
    455 RCCFC12 = 484.E-12_JPRB
    456 print *,'SUECRAD-1'
    457 
     452!RCCO2   = 348.E-06_JPRB
     453!RCCH4   = 1.65E-06_JPRB
     454!RCN2O   = 306.E-09_JPRB
     455!RCCFC11 = 280.E-12_JPRB
     456!RCCFC12 = 484.E-12_JPRB
     457
     458!MPL/IM 20160915 on prend GES de phylmd
     459RCCO2   = CO2_ppm * 1.0e-06
     460RCCH4   = CH4_ppb * 1.0e-09
     461RCN2O   = N2O_ppb * 1.0e-09
     462RCCFC11 = CFC11_ppt * 1.0e-12
     463RCCFC12 = CFC12_ppt * 1.0e-12
     464!print *,'LMDZSUECRAD-1 RCCO2=',RCCO2
     465!print *,'LMDZSUECRAD-1 RCCH4=',RCCH4
     466!print *,'LMDZSUECRAD-1 RCN2O=',RCN2O
     467!print *,'LMDZSUECRAD-1 RCCFC11=',RCCFC11
     468!print *,'LMDZSUECRAD-1 RCCFC12=',RCCFC12
    458469!     ------------------------------------------------------------------
    459470
  • LMDZ5/branches/testing/libf/phylmd/rrtm/surdi.F90

    r2056 r2641  
    5454USE YOERDI   , ONLY : RRAE     ,&
    5555! & RCARDI   ,RCH4     ,RN2O     ,RO3      ,RCFC11   ,&
    56  & RCFC12, &   
     56! & RCFC12, &   
    5757 & REPCLC   ,REPH2O   ,RSUNDUR  ,&
    5858 & RCCO2    ,RCCH4    ,RCN2O    ,RCCFC11  ,RCCFC12
     
    6161IMPLICIT NONE
    6262
     63!MPL/IM 20160915 on prend GES de phylmd
    6364!#include "clesphys.h"
    6465REAL(KIND=JPRB) :: ZAIRMWG, ZC11MWG, ZC12MWG, ZCH4MWG, ZCO2MWG, ZN2OMWG, ZO3MWG
  • LMDZ5/branches/testing/libf/phylmd/rrtm/swr.F90

    r2056 r2641  
    192192    ZCLOUD(JL) = ZSS1(JL)
    193193  ELSEIF (NOVLP == 2) THEN
    194    stop 'provisoire pour verifier option novlp=1b'
     194!IM150716  stop 'provisoire pour verifier option novlp=1b'
     195   print*,'rrtm provisoire pour verifier option novlp=2 maximum'
    195196!* maximum
    196197    ZCLOUD(JL) = MAX( ZSS1(JL) , ZCLOUD(JL) )
     
    198199!++MODIFCODE
    199200  ELSEIF ((NOVLP == 3).OR.((NOVLP  >=  5).AND.(NOVLP /= 8))) THEN
    200    stop 'provisoire pour verifier option novlp=1c'
     201!IM150716  stop 'provisoire pour verifier option novlp=1c'
     202    print*,'rrtm provisoire pour verifier option novlp=3 random'
    201203!--MODIFCODE
    202204!* random
  • LMDZ5/branches/testing/libf/phylmd/tracinca_mod.F90

    r2488 r2641  
    138138 
    139139#ifdef INCA
    140     IF (config_inca == 'aero') THEN
     140    IF (config_inca == 'aero' .OR. config_inca == 'chem') THEN
    141141       zpmfu(:,:)=pmfu(:,:)       
    142142    ELSE IF (config_inca == 'aeNP') THEN
     
    150150         pphi,cell_area,nstep,rneb,t_seri, &     
    151151         rh,tau_aero,piz_aero,cg_aero,   &
    152          rfname,ccm,lafin, config_inca)
     152         rfname,ccm,lafin)
    153153#endif
    154154
  • LMDZ5/branches/testing/libf/phylmd/wake.F90

    r2542 r2641  
    22! $Id$
    33
    4 SUBROUTINE wake(p, ph, pi, dtime, sigd_con, &
     4SUBROUTINE wake(p, ph, pi, dtime, &
    55                te0, qe0, omgb, &
    66                dtdwn, dqdwn, amdwn, amup, dta, dqa, &
    7                 wdtpbl, wdqpbl, udtpbl, udqpbl, &
    8                 deltatw, deltaqw, dth, hw, sigmaw, wape, fip, gfl, &
    9                 dtls, dqls, ktopw, omgbdth, dp_omgb, wdens, tu, qu, &
    10                 dtke, dqke, dtpbl, dqpbl, omg, dp_deltomg, spread, cstar, &
    11                 d_deltat_gw, d_deltatw2, d_deltaqw2)
     7                sigd_con, &
     8                deltatw, deltaqw, sigmaw, wdens, &                          ! state variables
     9                dth, hw, wape, fip, gfl, &
     10                dtls, dqls, ktopw, omgbdth, dp_omgb, tu, qu, &
     11                dtke, dqke, omg, dp_deltomg, spread, cstar, &
     12                d_deltat_gw, &
     13                d_deltatw2, d_deltaqw2, d_sigmaw2, d_wdens2)                ! tendencies
    1214
    1315
     
    3335  ! le declenchement de nouvelles colonnes convectives.
    3436
    35   ! Variables d'etat : deltatw    : ecart de temperature wake-undisturbed
    36   ! area
    37   ! deltaqw    : ecart d'humidite wake-undisturbed area
    38   ! sigmaw     : fraction d'aire occupee par la poche.
     37  ! State variables :
     38  ! deltatw    : temperature difference between wake and off-wake regions
     39  ! deltaqw    : specific humidity difference between wake and off-wake regions
     40  ! sigmaw     : fractional area covered by wakes.
     41  ! wdens      : number of wakes per unit area
    3942
    4043  ! Variable de sortie :
     
    5356  ! omg    : Delta_omg =vertical velocity diff. wake-undist. (Pa/s)
    5457  ! dp_deltomg  : vertical gradient of omg (s-1)
    55   ! spread  : spreading term in dt_wake and dq_wake
     58  ! spread  : spreading term in d_t_wake and d_q_wake
    5659  ! deltatw     : updated temperature difference (T_w-T_u).
    5760  ! deltaqw     : updated humidity difference (q_w-q_u).
     
    126129  REAL, DIMENSION (klon, klev),     INTENT(IN)          :: te0, qe0
    127130  REAL, DIMENSION (klon, klev),     INTENT(IN)          :: dtdwn, dqdwn
    128   REAL, DIMENSION (klon, klev),     INTENT(IN)          :: wdtpbl, wdqpbl, udtpbl, udqpbl ! UNUSED
    129131  REAL, DIMENSION (klon, klev),     INTENT(IN)          :: amdwn, amup
    130132  REAL, DIMENSION (klon, klev),     INTENT(IN)          :: dta, dqa
     
    133135  !
    134136  ! Input/Output
     137  ! State variables
    135138  REAL, DIMENSION (klon, klev),     INTENT(INOUT)       :: deltatw, deltaqw
    136139  REAL, DIMENSION (klon),           INTENT(INOUT)       :: sigmaw
     140  REAL, DIMENSION (klon),           INTENT(INOUT)       :: wdens
    137141
    138142  ! Sorties
     
    143147  REAL, DIMENSION (klon, klev),     INTENT(OUT)         :: dtls, dqls
    144148  REAL, DIMENSION (klon, klev),     INTENT(OUT)         :: dtke, dqke
    145   REAL, DIMENSION (klon, klev),     INTENT(OUT)         :: dtpbl, dqpbl
    146149  REAL, DIMENSION (klon, klev),     INTENT(OUT)         :: spread
    147   REAL, DIMENSION (klon, klev),     INTENT(OUT)         :: d_deltatw2, d_deltaqw2
    148150  REAL, DIMENSION (klon, klev+1),   INTENT(OUT)         :: omgbdth, omg
    149151  REAL, DIMENSION (klon, klev),     INTENT(OUT)         :: dp_omgb, dp_deltomg
    150152  REAL, DIMENSION (klon, klev),     INTENT(OUT)         :: d_deltat_gw
    151153  REAL, DIMENSION (klon),           INTENT(OUT)         :: hw, wape, fip, gfl, cstar
    152   REAL, DIMENSION (klon),           INTENT(OUT)         :: wdens
    153154  INTEGER, DIMENSION (klon),        INTENT(OUT)         :: ktopw
     155  ! Tendencies of state variables
     156  REAL, DIMENSION (klon, klev),     INTENT(OUT)         :: d_deltatw2, d_deltaqw2
     157  REAL, DIMENSION (klon),           INTENT(OUT)         :: d_sigmaw2, d_wdens2
    154158
    155159  ! Variables internes
     
    157161
    158162  ! Variables à fixer
    159   REAL alon
    160   LOGICAL, SAVE :: first = .TRUE.
     163  REAL                                                  :: alon
     164  LOGICAL, SAVE                                         :: first = .TRUE.
    161165  !$OMP THREADPRIVATE(first)
    162   REAL, SAVE ::  stark, wdens_ref, coefgw, alpk, crep_upper, crep_sol 
     166  REAL, SAVE                                            :: stark, wdens_ref, coefgw, alpk
     167  REAL, SAVE                                            :: crep_upper, crep_sol 
    163168  !$OMP THREADPRIVATE(stark, wdens_ref, coefgw, alpk, crep_upper, crep_sol)
    164169
    165   REAL delta_t_min
    166   INTEGER nsub
    167   REAL dtimesub
    168   REAL sigmad, hwmin, wapecut
    169   REAL :: sigmaw_max
    170   REAL :: dens_rate
    171   REAL wdens0
     170  REAL                                                  :: delta_t_min
     171  INTEGER                                               :: nsub
     172  REAL                                                  :: dtimesub
     173  REAL                                                  :: sigmad, hwmin, wapecut
     174  REAL                                                  :: sigmaw_max
     175  REAL                                                  :: dens_rate
     176  REAL                                                  :: wdens0
    172177  ! IM 080208
    173   LOGICAL, DIMENSION (klon) :: gwake
     178  LOGICAL, DIMENSION (klon)                             :: gwake
    174179
    175180  ! Variables de sauvegarde
    176   REAL, DIMENSION (klon, klev) :: deltatw0
    177   REAL, DIMENSION (klon, klev) :: deltaqw0
    178   REAL, DIMENSION (klon, klev) :: te, qe
    179   REAL, DIMENSION (klon) :: sigmaw0, sigmaw1
     181  REAL, DIMENSION (klon, klev)                          :: deltatw0
     182  REAL, DIMENSION (klon, klev)                          :: deltaqw0
     183  REAL, DIMENSION (klon, klev)                          :: te, qe
     184  REAL, DIMENSION (klon)                                :: sigmaw0, sigmaw1
    180185
    181186  ! Variables pour les GW
    182   REAL, DIMENSION (klon) :: ll
    183   REAL, DIMENSION (klon, klev) :: n2
    184   REAL, DIMENSION (klon, klev) :: cgw
    185   REAL, DIMENSION (klon, klev) :: tgw
     187  REAL, DIMENSION (klon)                                :: ll
     188  REAL, DIMENSION (klon, klev)                          :: n2
     189  REAL, DIMENSION (klon, klev)                          :: cgw
     190  REAL, DIMENSION (klon, klev)                          :: tgw
    186191
    187192  ! Variables liées au calcul de hw
    188   REAL, DIMENSION (klon) :: ptop_provis, ptop, ptop_new
    189   REAL, DIMENSION (klon) :: sum_dth
    190   REAL, DIMENSION (klon) :: dthmin
    191   REAL, DIMENSION (klon) :: z, dz, hw0
    192   INTEGER, DIMENSION (klon) :: ktop, kupper
     193  REAL, DIMENSION (klon)                                :: ptop_provis, ptop, ptop_new
     194  REAL, DIMENSION (klon)                                :: sum_dth
     195  REAL, DIMENSION (klon)                                :: dthmin
     196  REAL, DIMENSION (klon)                                :: z, dz, hw0
     197  INTEGER, DIMENSION (klon)                             :: ktop, kupper
    193198
    194199  ! Sub-timestep tendencies and related variables
    195   REAL d_deltatw(klon, klev), d_deltaqw(klon, klev)
    196   REAL d_te(klon, klev), d_qe(klon, klev)
    197   REAL d_sigmaw(klon), alpha(klon)
    198   REAL q0_min(klon), q1_min(klon)
    199   LOGICAL wk_adv(klon), ok_qx_qw(klon)
    200   REAL epsilon
     200  REAL, DIMENSION (klon, klev)                          :: d_deltatw, d_deltaqw
     201  REAL, DIMENSION (klon, klev)                          :: d_te, d_qe
     202  REAL, DIMENSION (klon)                                :: d_sigmaw, alpha
     203  REAL, DIMENSION (klon)                                :: q0_min, q1_min
     204  LOGICAL, DIMENSION (klon)                             :: wk_adv, ok_qx_qw
     205  REAL, SAVE                                            :: epsilon
     206  !$OMP THREADPRIVATE(epsilon)
    201207  DATA epsilon/1.E-15/
    202208
    203209  ! Autres variables internes
    204   INTEGER isubstep, k, i
    205 
    206   REAL, DIMENSION (klon) :: sum_thu, sum_tu, sum_qu, sum_thvu
    207   REAL, DIMENSION (klon) :: sum_dq, sum_rho
    208   REAL, DIMENSION (klon) :: sum_dtdwn, sum_dqdwn
    209   REAL, DIMENSION (klon) :: av_thu, av_tu, av_qu, av_thvu
    210   REAL, DIMENSION (klon) :: av_dth, av_dq, av_rho
    211   REAL, DIMENSION (klon) :: av_dtdwn, av_dqdwn
    212 
    213   REAL, DIMENSION (klon, klev) :: rho, rhow
    214   REAL, DIMENSION (klon, klev+1) :: rhoh
    215   REAL, DIMENSION (klon, klev) :: rhow_moyen
    216   REAL, DIMENSION (klon, klev) :: zh
    217   REAL, DIMENSION (klon, klev+1) :: zhh
    218   REAL, DIMENSION (klon, klev) :: epaisseur1, epaisseur2
    219 
    220   REAL, DIMENSION (klon, klev) :: the, thu
    221 
    222   ! REAL, DIMENSION(klon,klev) :: d_deltatw, d_deltaqw
    223 
    224   REAL, DIMENSION (klon, klev+1) :: omgbw
    225   REAL, DIMENSION (klon) :: pupper
    226   REAL, DIMENSION (klon) :: omgtop
    227   REAL, DIMENSION (klon, klev) :: dp_omgbw
    228   REAL, DIMENSION (klon) :: ztop, dztop
    229   REAL, DIMENSION (klon, klev) :: alpha_up
    230 
    231   REAL, DIMENSION (klon) :: rre1, rre2
    232   REAL :: rrd1, rrd2
    233   REAL, DIMENSION (klon, klev) :: th1, th2, q1, q2
    234   REAL, DIMENSION (klon, klev) :: d_th1, d_th2, d_dth
    235   REAL, DIMENSION (klon, klev) :: d_q1, d_q2, d_dq
    236   REAL, DIMENSION (klon, klev) :: omgbdq
    237 
    238   REAL, DIMENSION (klon) :: ff, gg
    239   REAL, DIMENSION (klon) :: wape2, cstar2, heff
    240 
    241   REAL, DIMENSION (klon, klev) :: crep
    242 
    243   REAL, DIMENSION (klon, klev) :: ppi
     210  INTEGER                                               ::isubstep, k, i
     211
     212  REAL                                                  :: sigmaw_targ
     213
     214  REAL, DIMENSION (klon)                                :: sum_thu, sum_tu, sum_qu, sum_thvu
     215  REAL, DIMENSION (klon)                                :: sum_dq, sum_rho
     216  REAL, DIMENSION (klon)                                :: sum_dtdwn, sum_dqdwn
     217  REAL, DIMENSION (klon)                                :: av_thu, av_tu, av_qu, av_thvu
     218  REAL, DIMENSION (klon)                                :: av_dth, av_dq, av_rho
     219  REAL, DIMENSION (klon)                                :: av_dtdwn, av_dqdwn
     220
     221  REAL, DIMENSION (klon, klev)                          :: rho, rhow
     222  REAL, DIMENSION (klon, klev+1)                        :: rhoh
     223  REAL, DIMENSION (klon, klev)                          :: rhow_moyen
     224  REAL, DIMENSION (klon, klev)                          :: zh
     225  REAL, DIMENSION (klon, klev+1)                        :: zhh
     226  REAL, DIMENSION (klon, klev)                          :: epaisseur1, epaisseur2
     227
     228  REAL, DIMENSION (klon, klev)                          :: the, thu
     229
     230  REAL, DIMENSION (klon, klev+1)                        :: omgbw
     231  REAL, DIMENSION (klon)                                :: pupper
     232  REAL, DIMENSION (klon)                                :: omgtop
     233  REAL, DIMENSION (klon, klev)                          :: dp_omgbw
     234  REAL, DIMENSION (klon)                                :: ztop, dztop
     235  REAL, DIMENSION (klon, klev)                          :: alpha_up
     236
     237  REAL, DIMENSION (klon)                                :: rre1, rre2
     238  REAL                                                  :: rrd1, rrd2
     239  REAL, DIMENSION (klon, klev)                          :: th1, th2, q1, q2
     240  REAL, DIMENSION (klon, klev)                          :: d_th1, d_th2, d_dth
     241  REAL, DIMENSION (klon, klev)                          :: d_q1, d_q2, d_dq
     242  REAL, DIMENSION (klon, klev)                          :: omgbdq
     243
     244  REAL, DIMENSION (klon)                                :: ff, gg
     245  REAL, DIMENSION (klon)                                :: wape2, cstar2, heff
     246                                                       
     247  REAL, DIMENSION (klon, klev)                          :: crep
     248                                                       
     249  REAL, DIMENSION (klon, klev)                          :: ppi
    244250
    245251  ! cc nrlmd
    246   REAL, DIMENSION (klon) :: death_rate, nat_rate
    247   REAL, DIMENSION (klon, klev) :: entr
    248   REAL, DIMENSION (klon, klev) :: detr
     252  REAL, DIMENSION (klon)                                :: death_rate, nat_rate
     253  REAL, DIMENSION (klon, klev)                          :: entr
     254  REAL, DIMENSION (klon, klev)                          :: detr
     255
     256  REAL, DIMENSION(klon)                                 :: sigmaw_in   ! pour les prints
    249257
    250258  ! -------------------------------------------------------------------------
     
    312320  ! Les densites peuvent evoluer si les poches debordent
    313321  ! (voir au tout debut de la boucle sur les substeps)
    314   wdens = wdens_ref
     322  wdens(:) = wdens_ref
    315323
    316324  ! print*,'stark',stark
     
    347355    END DO
    348356  END DO
     357  DO i = 1, klon
     358   sigmaw_in(i) = sigmaw(i)
     359  END DO
    349360  ! sigmaw1=sigmaw
    350361  ! IF (sigd_con.GT.sigmaw1) THEN
     
    353364  DO i = 1, klon
    354365    ! c      sigmaw(i) = amax1(sigmaw(i),sigd_con(i))
    355     sigmaw(i) = amax1(sigmaw(i), sigmad)
    356     sigmaw(i) = amin1(sigmaw(i), 0.99)
     366!jyg<
     367!!    sigmaw(i) = amax1(sigmaw(i), sigmad)
     368!!    sigmaw(i) = amin1(sigmaw(i), 0.99)
     369    sigmaw_targ = min(max(sigmaw(i), sigmad),0.99)
     370    d_sigmaw2(i) = sigmaw_targ - sigmaw(i)
     371    sigmaw(i) = sigmaw_targ
     372!>jyg
    357373    sigmaw0(i) = sigmaw(i)
    358374    wape(i) = 0.
    359375    wape2(i) = 0.
    360376    d_sigmaw(i) = 0.
     377    d_wdens2(i) = 0.
    361378    ktopw(i) = 0
    362379  END DO
     
    433450        n2(i, k) = 0
    434451      ELSE
    435         n2(i, k) = amax1(0., -rg**2/the(i,k)*rho(i,k)*(the(i,k+1)-the(i, &
    436           k-1))/(p(i,k+1)-p(i,k-1)))
     452        n2(i, k) = amax1(0., -rg**2/the(i,k)*rho(i,k)*(the(i,k+1)-the(i,k-1))/ &
     453                             (p(i,k+1)-p(i,k-1)))
    437454      END IF
    438455      zh(i, k) = (zhh(i,k)+zhh(i,k+1))/2
     
    504521      IF (dth(i,k)>-delta_t_min .AND. dth(i,k-1)<-delta_t_min .AND. &
    505522          ptop_provis(i)==ph(i,1)) THEN
    506         ptop_provis(i) = ((dth(i,k)+delta_t_min)*p(i,k-1)-(dth(i, &
    507           k-1)+delta_t_min)*p(i,k))/(dth(i,k)-dth(i,k-1))
     523        ptop_provis(i) = ((dth(i,k)+delta_t_min)*p(i,k-1)- &
     524                          (dth(i,k-1)+delta_t_min)*p(i,k))/(dth(i,k)-dth(i,k-1))
    508525      END IF
    509526    END DO
     
    602619        deltatw(i, k) = 0.
    603620        deltaqw(i, k) = 0.
     621        d_deltatw2(i,k) = -deltatw0(i,k)
     622        d_deltaqw2(i,k) = -deltaqw0(i,k)
    604623      END IF
    605624    END DO
     
    671690    av_dqdwn(i) = sum_dqdwn(i)/hw0(i)
    672691
    673     wape(i) = -rg*hw0(i)*(av_dth(i)+epsim1*(av_thu(i)*av_dq(i)+av_dth(i)*av_qu(i &
    674       )+av_dth(i)*av_dq(i)))/av_thvu(i)
     692    wape(i) = -rg*hw0(i)*(av_dth(i)+ &
     693        epsim1*(av_thu(i)*av_dq(i)+av_dth(i)*av_qu(i)+av_dth(i)*av_dq(i)))/av_thvu(i)
     694
    675695  END DO
    676696
     
    686706        deltaqw(i, k) = 0.
    687707        dth(i, k) = 0.
     708        d_deltatw2(i,k) = -deltatw0(i,k)
     709        d_deltaqw2(i,k) = -deltaqw0(i,k)
    688710      END IF
    689711    END DO
     
    695717      cstar(i) = 0.
    696718      hw(i) = hwmin
    697       sigmaw(i) = amax1(sigmad, sigd_con(i))
     719!jyg<
     720!!      sigmaw(i) = amax1(sigmad, sigd_con(i))
     721      sigmaw_targ = max(sigmad, sigd_con(i))
     722      d_sigmaw2(i) = d_sigmaw2(i) + sigmaw_targ - sigmaw(i)
     723      sigmaw(i) = sigmaw_targ
     724!>jyg
    698725      fip(i) = 0.
    699726      gwake(i) = .FALSE.
     
    708735  ! --------------------------
    709736  DO i = 1, klon
    710     q0_min(i) = min((qe(i,1)-sigmaw(i)*deltaqw(i,1)), (qe(i, &
    711       1)+(1.-sigmaw(i))*deltaqw(i,1)))
     737    q0_min(i) = min((qe(i,1)-sigmaw(i)*deltaqw(i,1)), &
     738                    (qe(i,1)+(1.-sigmaw(i))*deltaqw(i,1)))
    712739  END DO
    713740  DO k = 2, klev
    714741    DO i = 1, klon
    715       q1_min(i) = min((qe(i,k)-sigmaw(i)*deltaqw(i,k)), (qe(i, &
    716         k)+(1.-sigmaw(i))*deltaqw(i,k)))
     742      q1_min(i) = min((qe(i,k)-sigmaw(i)*deltaqw(i,k)), &
     743                      (qe(i,k)+(1.-sigmaw(i))*deltaqw(i,k)))
    717744      IF (q1_min(i)<=q0_min(i)) THEN
    718745        q0_min(i) = q1_min(i)
     
    752779      IF (wk_adv(i) .AND. cstar(i)>0.01) THEN
    753780        omg(i, kupper(i)+1) = -rg*amdwn(i, kupper(i)+1)/sigmaw(i) + &
    754           rg*amup(i, kupper(i)+1)/(1.-sigmaw(i))
    755         wdens0 = (sigmaw(i)/(4.*3.14))*((1.-sigmaw(i))*omg(i,kupper(i)+1)/(( &
    756           ph(i,1)-pupper(i))*cstar(i)))**(2)
     781                               rg*amup(i, kupper(i)+1)/(1.-sigmaw(i))
     782        wdens0 = (sigmaw(i)/(4.*3.14))* &
     783          ((1.-sigmaw(i))*omg(i,kupper(i)+1)/((ph(i,1)-pupper(i))*cstar(i)))**(2)
    757784        IF (wdens(i)<=wdens0*1.1) THEN
    758785          wdens(i) = wdens0
     
    770797      IF (wk_adv(i)) THEN
    771798        gfl(i) = 2.*sqrt(3.14*wdens(i)*sigmaw(i))
    772         sigmaw(i) = amin1(sigmaw(i), sigmaw_max)
    773       END IF
    774     END DO
     799!jyg<
     800!!        sigmaw(i) = amin1(sigmaw(i), sigmaw_max)
     801        sigmaw_targ = min(sigmaw(i), sigmaw_max)
     802        d_sigmaw2(i) = d_sigmaw2(i) + sigmaw_targ - sigmaw(i)
     803        sigmaw(i) = sigmaw_targ
     804!>jyg
     805      END IF
     806    END DO
     807
    775808    DO i = 1, klon
    776809      IF (wk_adv(i)) THEN
     
    783816          death_rate(i) = 0.
    784817        END IF
     818
    785819        d_sigmaw(i) = gfl(i)*cstar(i)*dtimesub - death_rate(i)*sigmaw(i)* &
    786820          dtimesub
     
    798832      END IF
    799833    END DO
    800 
    801834
    802835    ! calcul de la difference de vitesse verticale poche - zone non perturbee
     
    10061039
    10071040          d_deltatw(i, k) = dtimesub/(ph(i,k)-ph(i,k+1))* &
    1008             (rrd1*omg(i,k)*sigmaw(i)*d_th1(i,k)-rrd2*omg(i,k+1)*(1.-sigmaw( &
    1009             i))*d_th2(i,k+1)-(1.-alpha_up(i,k))*omgbdth(i,k)-alpha_up(i,k+1)* &
    1010             omgbdth(i,k+1))*ppi(i, k)
     1041            (rrd1*omg(i,k)*sigmaw(i)*d_th1(i,k) - &
     1042             rrd2*omg(i,k+1)*(1.-sigmaw(i))*d_th2(i,k+1)- &
     1043             (1.-alpha_up(i,k))*omgbdth(i,k)- &
     1044             alpha_up(i,k+1)*omgbdth(i,k+1))*ppi(i, k)
    10111045          ! print*,'d_deltatw=',d_deltatw(i,k)
    10121046
    10131047          d_deltaqw(i, k) = dtimesub/(ph(i,k)-ph(i,k+1))* &
    1014             (rrd1*omg(i,k)*sigmaw(i)*d_q1(i,k)-rrd2*omg(i,k+1)*(1.-sigmaw( &
    1015             i))*d_q2(i,k+1)-(1.-alpha_up(i,k))*omgbdq(i,k)-alpha_up(i,k+1)* &
    1016             omgbdq(i,k+1))
     1048            (rrd1*omg(i,k)*sigmaw(i)*d_q1(i,k)- &
     1049             rrd2*omg(i,k+1)*(1.-sigmaw(i))*d_q2(i,k+1)- &
     1050             (1.-alpha_up(i,k))*omgbdq(i,k)- &
     1051             alpha_up(i,k+1)*omgbdq(i,k+1))
    10171052          ! print*,'d_deltaqw=',d_deltaqw(i,k)
    10181053
     
    10241059          ! C
    10251060          ! -----------------------------------------------------------------
    1026           d_te(i, k) = dtimesub*((rre1(i)*omg(i,k)*sigmaw(i)*d_th1(i, &
    1027             k)-rre2(i)*omg(i,k+1)*(1.-sigmaw(i))*d_th2(i,k+1))/(ph(i,k)-ph(i, &
    1028             k+1)) &                ! cc nrlmd     $
    1029                                    ! -sigmaw(i)*(1.-sigmaw(i))*dth(i,k)*dp_deltomg(i,k)
    1030             -sigmaw(i)*(1.-sigmaw(i))*dth(i,k)*(omg(i,k)-omg(i,k+1))/(ph(i, &
    1031             k)-ph(i,k+1)) &        ! cc
    1032             )*ppi(i, k)
    1033 
    1034           d_qe(i, k) = dtimesub*((rre1(i)*omg(i,k)*sigmaw(i)*d_q1(i, &
    1035             k)-rre2(i)*omg(i,k+1)*(1.-sigmaw(i))*d_q2(i,k+1))/(ph(i,k)-ph(i, &
    1036             k+1)) &                ! cc nrlmd     $
    1037                                    ! -sigmaw(i)*(1.-sigmaw(i))*deltaqw(i,k)*dp_deltomg(i,k)
    1038             -sigmaw(i)*(1.-sigmaw(i))*deltaqw(i,k)*(omg(i,k)-omg(i, &
    1039             k+1))/(ph(i,k)-ph(i,k+1)) & ! cc
    1040             )
    1041           ! cc nrlmd
     1061          d_te(i, k) = dtimesub*((rre1(i)*omg(i,k)*sigmaw(i)*d_th1(i,k)- &
     1062                                  rre2(i)*omg(i,k+1)*(1.-sigmaw(i))*d_th2(i,k+1))/ &
     1063                                 (ph(i,k)-ph(i,k+1)) &
     1064                                 -sigmaw(i)*(1.-sigmaw(i))*dth(i,k)*(omg(i,k)-omg(i,k+1))/ &
     1065                                 (ph(i,k)-ph(i,k+1)) )*ppi(i, k)
     1066
     1067          d_qe(i, k) = dtimesub*((rre1(i)*omg(i,k)*sigmaw(i)*d_q1(i,k)- &
     1068                                  rre2(i)*omg(i,k+1)*(1.-sigmaw(i))*d_q2(i,k+1))/ &
     1069                                 (ph(i,k)-ph(i,k+1)) &
     1070                                 -sigmaw(i)*(1.-sigmaw(i))*deltaqw(i,k)*(omg(i,k)-omg(i,k+1))/ &
     1071                                 (ph(i,k)-ph(i,k+1)) )
    10421072        ELSE IF (wk_adv(i) .AND. k==kupper(i)) THEN
    1043           d_te(i, k) = dtimesub*((rre1(i)*omg(i,k)*sigmaw(i)*d_th1(i, &
    1044             k)/(ph(i,k)-ph(i,k+1))))*ppi(i, k)
    1045 
    1046           d_qe(i, k) = dtimesub*((rre1(i)*omg(i,k)*sigmaw(i)*d_q1(i, &
    1047             k)/(ph(i,k)-ph(i,k+1))))
     1073          d_te(i, k) = dtimesub*(rre1(i)*omg(i,k)*sigmaw(i)*d_th1(i,k)/(ph(i,k)-ph(i,k+1)))*ppi(i, k)
     1074
     1075          d_qe(i, k) = dtimesub*(rre1(i)*omg(i,k)*sigmaw(i)*d_q1(i,k)/(ph(i,k)-ph(i,k+1)))
    10481076
    10491077        END IF
     
    10671095          crep(i, k) = crep_sol*(ph(i,kupper(i))-ph(i,k))/ &
    10681096            (ph(i,kupper(i))-ph(i,1))
    1069           crep(i, k) = crep(i, k) + crep_upper*(ph(i,1)-ph(i,k))/(p(i,1)-ph(i &
    1070             ,kupper(i)))
     1097          crep(i, k) = crep(i, k) + crep_upper*(ph(i,1)-ph(i,k))/ &
     1098            (p(i,1)-ph(i,kupper(i)))
    10711099
    10721100
     
    10911119          ! print*,'dtKE= ',dtKE(i,k),' dqKE= ',dqKE(i,k)
    10921120
    1093 !jyg<
    1094 !!
    1095 !!---------------------------------------------------------------
    1096 !! The change of delta_T due to PBL (vertical diffusion plus thermal plumes)
    1097 !! is accounted for by the PBL and the Thermals schemes. It is now set to zero
    1098 !! within the Wake scheme.
    1099 !!---------------------------------------------------------------
    1100           dtPBL(i,k) = 0.
    1101           dqPBL(i,k) = 0.
    1102 !
    1103 !!          dtPBL(i,k)=wdtPBL(i,k) - udtPBL(i,k)
    1104 !!          dqPBL(i,k)=wdqPBL(i,k) - udqPBL(i,k)
    1105 !
    1106 !!          dtpbl(i, k) = (wdtpbl(i,k)/sigmaw(i)-udtpbl(i,k)/(1.-sigmaw(i)))
    1107 !!          dqpbl(i, k) = (wdqpbl(i,k)/sigmaw(i)-udqpbl(i,k)/(1.-sigmaw(i)))
    1108           ! print*,'dtPBL= ',dtPBL(i,k),' dqPBL= ',dqPBL(i,k)
    1109 !>jyg
    11101121!
    11111122
     
    11451156
    11461157          IF (dtimesub*tgw(i,k)<1.E-10) THEN
    1147             d_deltatw(i, k) = dtimesub*(ff(i)+dtke(i,k)+dtpbl(i,k) & ! cc
    1148                                                                      ! $
    1149                                                                      ! -spread(i,k)*deltatw(i,k)
    1150               -entr(i,k)*deltatw(i,k)/sigmaw(i)-(death_rate(i)*sigmaw( &
    1151               i)+detr(i,k))*deltatw(i,k)/(1.-sigmaw(i)) & ! cc
    1152               -tgw(i,k)*deltatw(i,k))
     1158            d_deltatw(i, k) = dtimesub*(ff(i)+dtke(i,k) - &
     1159               entr(i,k)*deltatw(i,k)/sigmaw(i) - &
     1160               (death_rate(i)*sigmaw(i)+detr(i,k))*deltatw(i,k)/(1.-sigmaw(i)) - & ! cc
     1161               tgw(i,k)*deltatw(i,k) )
    11531162          ELSE
    1154             d_deltatw(i, k) = 1/tgw(i, k)*(1-exp(-dtimesub*tgw(i, &
    1155               k)))*(ff(i)+dtke(i,k)+dtpbl(i,k) & ! cc     $
    1156                                                  ! -spread(i,k)*deltatw(i,k)
    1157               -entr(i,k)*deltatw(i,k)/sigmaw(i)-(death_rate(i)*sigmaw( &
    1158               i)+detr(i,k))*deltatw(i,k)/(1.-sigmaw(i)) & ! cc
    1159               -tgw(i,k)*deltatw(i,k))
     1163            d_deltatw(i, k) = 1/tgw(i, k)*(1-exp(-dtimesub*tgw(i,k)))* &
     1164               (ff(i)+dtke(i,k) - &
     1165                entr(i,k)*deltatw(i,k)/sigmaw(i) - &
     1166                (death_rate(i)*sigmaw(i)+detr(i,k))*deltatw(i,k)/(1.-sigmaw(i)) - &
     1167                tgw(i,k)*deltatw(i,k) )
    11601168          END IF
    11611169
     
    11641172          gg(i) = d_deltaqw(i, k)/dtimesub
    11651173
    1166           d_deltaqw(i, k) = dtimesub*(gg(i)+dqke(i,k)+dqpbl(i,k) & ! cc     $
    1167                                                                    ! -spread(i,k)*deltaqw(i,k))
    1168             -entr(i,k)*deltaqw(i,k)/sigmaw(i)-(death_rate(i)*sigmaw(i)+detr( &
    1169             i,k))*deltaqw(i,k)/(1.-sigmaw(i)))
     1174          d_deltaqw(i, k) = dtimesub*(gg(i)+dqke(i,k) - &
     1175            entr(i,k)*deltaqw(i,k)/sigmaw(i) - &
     1176            (death_rate(i)*sigmaw(i)+detr(i,k))*deltaqw(i,k)/(1.-sigmaw(i)))
    11701177          ! cc
    11711178
     
    12391246      IF (wk_adv(i)) THEN
    12401247        sigmaw(i) = sigmaw(i) + d_sigmaw(i)
     1248!jyg<
     1249        d_sigmaw2(i) = d_sigmaw2(i) + d_sigmaw(i)
     1250!>jyg
    12411251      END IF
    12421252    END DO
     
    12581268        IF (wk_adv(i) .AND. ptop_provis(i)==ph(i,1) .AND. &
    12591269            dth(i,k)>-delta_t_min .AND. dth(i,k-1)<-delta_t_min) THEN
    1260           ptop_provis(i) = ((dth(i,k)+delta_t_min)*p(i,k-1)-(dth(i, &
    1261             k-1)+delta_t_min)*p(i,k))/(dth(i,k)-dth(i,k-1))
     1270          ptop_provis(i) = ((dth(i,k)+delta_t_min)*p(i,k-1) - &
     1271                            (dth(i,k-1)+delta_t_min)*p(i,k))/(dth(i,k)-dth(i,k-1))
    12621272        END IF
    12631273      END DO
     
    13311341        IF (wk_adv(i) .AND. k<=ktop(i) .AND. ptop_new(i)==ptop(i) .AND. &
    13321342            dth(i,k)>-delta_t_min .AND. dth(i,k-1)<-delta_t_min) THEN
    1333           ptop_new(i) = ((dth(i,k)+delta_t_min)*p(i,k-1)-(dth(i, &
    1334             k-1)+delta_t_min)*p(i,k))/(dth(i,k)-dth(i,k-1))
     1343          ptop_new(i) = ((dth(i,k)+delta_t_min)*p(i,k-1) - &
     1344                         (dth(i,k-1)+delta_t_min)*p(i,k))/(dth(i,k)-dth(i,k-1))
    13351345        END IF
    13361346      END DO
     
    13591369          deltatw(i, k) = 0.
    13601370          deltaqw(i, k) = 0.
     1371          d_deltatw2(i,k) = -deltatw0(i,k)
     1372          d_deltaqw2(i,k) = -deltaqw0(i,k)
    13611373        END IF
    13621374      END DO
     
    14491461        av_dqdwn(i) = sum_dqdwn(i)/hw0(i)
    14501462
    1451         wape(i) = -rg*hw0(i)*(av_dth(i)+epsim1*(av_thu(i)*av_dq(i)+av_dth(i)* &
    1452           av_qu(i)+av_dth(i)*av_dq(i)))/av_thvu(i)
     1463        wape(i) = -rg*hw0(i)*(av_dth(i)+epsim1*(av_thu(i)*av_dq(i) + &
     1464                              av_dth(i)*av_qu(i)+av_dth(i)*av_dq(i)))/av_thvu(i)
    14531465      END IF
    14541466    END DO
     
    14631475            deltaqw(i, k) = 0.
    14641476            dth(i, k) = 0.
     1477            d_deltatw2(i,k) = -deltatw0(i,k)
     1478            d_deltaqw2(i,k) = -deltaqw0(i,k)
    14651479          END IF
    14661480        END IF
     
    14741488          cstar(i) = 0.
    14751489          hw(i) = hwmin
    1476           sigmaw(i) = max(sigmad, sigd_con(i))
     1490!jyg<
     1491!!          sigmaw(i) = max(sigmad, sigd_con(i))
     1492          sigmaw_targ = max(sigmad, sigd_con(i))
     1493          d_sigmaw2(i) = d_sigmaw2(i) + sigmaw_targ - sigmaw(i)
     1494          sigmaw(i) = sigmaw_targ
     1495!>jyg
    14771496          fip(i) = 0.
    14781497          gwake(i) = .FALSE.
     
    14861505  END DO ! end sub-timestep loop
    14871506
    1488   ! -----------------------------------------------------------------
    1489   ! Get back to tendencies per second
    1490 
    1491   DO k = 1, klev
    1492     DO i = 1, klon
    1493 
    1494       ! cc nrlmd        IF ( wk_adv(i) .AND. k .LE. kupper(i)) THEN
    1495       IF (ok_qx_qw(i) .AND. k<=kupper(i)) THEN
    1496         ! cc
    1497         dtls(i, k) = dtls(i, k)/dtime
    1498         dqls(i, k) = dqls(i, k)/dtime
    1499         d_deltatw2(i, k) = d_deltatw2(i, k)/dtime
    1500         d_deltaqw2(i, k) = d_deltaqw2(i, k)/dtime
    1501         d_deltat_gw(i, k) = d_deltat_gw(i, k)/dtime
    1502         ! c      print*,'k,dqls,omg,entr,detr',k,dqls(i,k),omg(i,k),entr(i,k)
    1503         ! c     $         ,death_rate(i)*sigmaw(i)
    1504       END IF
    1505     END DO
    1506   END DO
    15071507
    15081508
     
    16321632      av_dqdwn(i) = sum_dqdwn(i)/hw0(i)
    16331633
    1634       wape2(i) = -rg*hw0(i)*(av_dth(i)+epsim1*(av_thu(i)*av_dq(i)+av_dth(i)* &
    1635         av_qu(i)+av_dth(i)*av_dq(i)))/av_thvu(i)
     1634      wape2(i) = -rg*hw0(i)*(av_dth(i)+epsim1*(av_thu(i)*av_dq(i) + &
     1635                             av_dth(i)*av_qu(i)+av_dth(i)*av_dq(i)))/av_thvu(i)
    16361636    END IF
    16371637  END DO
     1638
     1639
    16381640
    16391641  ! Prognostic variable update
     
    16501652        deltaqw(i, k) = 0.
    16511653        dth(i, k) = 0.
     1654        d_deltatw2(i,k) = -deltatw0(i,k)
     1655        d_deltaqw2(i,k) = -deltaqw0(i,k)
    16521656      END IF
    16531657    END DO
     
    16631667        cstar2(i) = 0.
    16641668        hw(i) = hwmin
    1665         sigmaw(i) = amax1(sigmad, sigd_con(i))
     1669!jyg<
     1670!!      sigmaw(i) = amax1(sigmad, sigd_con(i))
     1671      sigmaw_targ = max(sigmad, sigd_con(i))
     1672      d_sigmaw2(i) = d_sigmaw2(i) + sigmaw_targ - sigmaw(i)
     1673      sigmaw(i) = sigmaw_targ
     1674!>jyg
    16661675        fip(i) = 0.
    16671676        gwake(i) = .FALSE.
     
    17261735        deltatw(i, k) = 0.
    17271736        deltaqw(i, k) = 0.
     1737        d_deltatw2(i,k) = -deltatw0(i,k)
     1738        d_deltaqw2(i,k) = -deltaqw0(i,k)
    17281739      END IF
    17291740    END DO
     
    17341745    IF (((wape(i)>=wape2(i)) .AND. (wape2(i)<=1.0)) .OR. (ktopw(i)<=2) .OR. &
    17351746        .NOT. ok_qx_qw(i)) THEN
     1747      ktopw(i) = 0
    17361748      wape(i) = 0.
    17371749      cstar(i) = 0.
     
    17491761    ! c     $          wape(i),wape2(i),ktopw(i),OK_qx_qw(i)
    17501762  END DO
     1763
     1764  ! -----------------------------------------------------------------
     1765  ! Get back to tendencies per second
     1766
     1767  DO k = 1, klev
     1768    DO i = 1, klon
     1769
     1770      ! cc nrlmd        IF ( wk_adv(i) .AND. k .LE. kupper(i)) THEN
     1771      IF (ok_qx_qw(i) .AND. k<=kupper(i)) THEN
     1772        ! cc
     1773        dtls(i, k) = dtls(i, k)/dtime
     1774        dqls(i, k) = dqls(i, k)/dtime
     1775        d_deltatw2(i, k) = d_deltatw2(i, k)/dtime
     1776        d_deltaqw2(i, k) = d_deltaqw2(i, k)/dtime
     1777        d_deltat_gw(i, k) = d_deltat_gw(i, k)/dtime
     1778        ! c      print*,'k,dqls,omg,entr,detr',k,dqls(i,k),omg(i,k),entr(i,k)
     1779        ! c     $         ,death_rate(i)*sigmaw(i)
     1780      END IF
     1781    END DO
     1782  END DO
     1783!jyg<
     1784  DO i = 1, klon
     1785    d_sigmaw2(i) = d_sigmaw2(i)/dtime
     1786    d_wdens2(i) = d_wdens2(i)/dtime
     1787  ENDDO
     1788!>jyg
     1789
    17511790
    17521791
     
    17921831      IF (wk_adv(i)) THEN
    17931832        x = qe(i, k) + (zeta(i,k)-sigmaw(i))*deltaqw(i, k) + d_qe(i, k) + &
    1794           (zeta(i,k)-sigmaw(i))*d_deltaqw(i, k) - d_sigmaw(i)*(deltaqw(i,k)+ &
    1795           d_deltaqw(i,k))
     1833          (zeta(i,k)-sigmaw(i))*d_deltaqw(i, k) - d_sigmaw(i) * &
     1834          (deltaqw(i,k)+d_deltaqw(i,k))
    17961835        a = -d_sigmaw(i)*d_deltaqw(i, k)
    17971836        b = d_qe(i, k) + (zeta(i,k)-sigmaw(i))*d_deltaqw(i, k) - &
     
    18071846          ELSE
    18081847            IF (a>0.) THEN
    1809               alpha1(i) = 0.9*min((2.*c)/(-b+sqrt(discrim)), (-b+sqrt(discrim &
    1810                 ))/(2.*a))
     1848              alpha1(i) = 0.9*min( (2.*c)/(-b+sqrt(discrim)), &
     1849                                   (-b+sqrt(discrim))/(2.*a) )
    18111850            ELSE IF (a==0.) THEN
    18121851              alpha1(i) = 0.9*(-c/b)
    18131852            ELSE
    18141853              ! print*,'a,b,c discrim',a,b,c discrim
    1815               alpha1(i) = 0.9*max((2.*c)/(-b+sqrt(discrim)), (-b+sqrt(discrim &
    1816                 ))/(2.*a))
     1854              alpha1(i) = 0.9*max( (2.*c)/(-b+sqrt(discrim)), &
     1855                                   (-b+sqrt(discrim))/(2.*a))
    18171856            END IF
    18181857          END IF
     
    18271866
    18281867
     1868
     1869
  • LMDZ5/branches/testing/libf/phymar/physiq_mod.F90

    r2435 r2641  
    2929      USE mod_phys_lmdz_para, only : jj_nb
    3030      USE phys_state_var_mod, only : phys_state_var_init
     31      USE vertical_layers_mod, ONLY: ap, bp
    3132! Modules LMDZ utilisés pour LMDZ-MAR:
    3233      USE control_mod     
     
    5253#include "dimensions.h"
    5354! Include LMDZ utilisés ici pour MAR-LMDZ:
    54 #include "comvert.h"
    5555#include "YOMCST.h"
    5656
  • LMDZ5/branches/testing/makelmdz

    r2435 r2641  
    2727sisvat=false
    2828rrtm=false
     29rrtm=false
     30dust=false
    2931full=""
    3032
     
    110112[-sisvat true/false]  : compile with/without sisvat package (default: false)
    111113[-rrtm true/false]    : compile with/without rrtm package (default: false)
     114[-dust true/false]    : compile with/without the dust package from Boucher et al. (default: false)
    112115[-parallel none/mpi/omp/mpi_omp] : parallelism (default: none) : mpi, openmp or mixted mpi_openmp
    113116[-g GRI]                   : grid configuration in dyn3d/GRI_xy.h  (default: reg, inclues a zoom)
     
    173176      "-rrtm")
    174177          rrtm="$2" ; shift ; shift ;;
     178
     179      "-dust")
     180          dust="$2" ; shift ; shift ;;
    175181     
    176182      "-mem")
     
    447453   CPP_KEY="$CPP_KEY CPP_RRTM"
    448454   src_dirs="$src_dirs phy${physique}/rrtm"
     455fi
     456
     457if [[ "$dust" == "true" ]]
     458then
     459   CPP_KEY="$CPP_KEY CPP_Dust"
     460   src_dirs="$src_dirs phy${physique}/Dust"
    449461fi
    450462
  • LMDZ5/branches/testing/makelmdz_fcm

    r2435 r2641  
    2525sisvat=false
    2626rrtm=false
     27dust=false
    2728chimie=false
    2829parallel=none
     
    4647PHY_COMMON_PATH=$LMDGCM/.void_dir
    4748RRTM_PATH=$LMDGCM/.void_dir
     49DUST_PATH=$LMDGCM/.void_dir
    4850SISVAT_PATH=$LMDGCM/.void_dir
    4951COSP_PATH=$LMDGCM/.void_dir
     
    8789[-sisvat true/false]  : compile with/without sisvat package (default: false)
    8890[-rrtm true/false]    : compile with/without rrtm package (default: false)
     91[-dust true/false]    : compile with/without the dust package by Boucher and co (default: false)
    8992[-parallel none/mpi/omp/mpi_omp] : parallelism (default: none) : mpi, openmp or mixted mpi_openmp
    9093[-g GRI]                   : grid configuration in dyn3d/GRI_xy.h  (default: reg, inclues a zoom)
     
    138141      "-rrtm")
    139142          rrtm="$2" ; shift ; shift ;;
     143
     144      "-dust")
     145          dust="$2" ; shift ; shift ;;
    140146
    141147      "-chimie")
     
    351357fi
    352358
     359if [[ "$dust" == "true" ]]
     360then
     361   CPP_KEY="$CPP_KEY CPP_Dust"
     362   DUST_PATH="$LIBFGCM/%PHYS/Dust"
     363fi
     364
    353365if [[ $io == ioipsl ]]
    354366then
     
    580592echo "%DYN_PHYS_SUB  $DYN_PHYS_SUB_PATH" >> $config_fcm
    581593echo "%RRTM          $RRTM_PATH"     >> $config_fcm
     594echo "%DUST          $DUST_PATH"     >> $config_fcm
    582595echo "%SISVAT        $SISVAT_PATH"   >> $config_fcm
    583596echo "%COSP          $COSP_PATH"     >> $config_fcm
Note: See TracChangeset for help on using the changeset viewer.