Changeset 1114


Ignore:
Timestamp:
Mar 3, 2009, 5:40:26 PM (16 years ago)
Author:
jghattas
Message:

Creation du module infotrac:

  • contient les variables de advtrac.h
  • contient la subroutine iniadvtrac renommer en infotrac_init
  • le nombre des traceurs est lu dans tracer.def en dynamique (ou par default ou recu par INCA)
  • ce module est utilise dans la dynamique et la physique
  • contient aussi la variable nbtr qui avant etait stockee dans dimphy

Le fichier advtrac.h n'existe plus.
La compilation ne prend plus en compte le nombre de traceur.

/JG

Location:
LMDZ4/branches/LMDZ4-dev
Files:
2 added
4 deleted
61 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/LMDZ4-dev/libf/bibio/initdynav.F

    r761 r1114  
    55c
    66      subroutine initdynav(infile,day0,anne0,tstep,t_ops,t_wrt
    7      .                     ,nq,fileid)
     7     .                     ,fileid)
    88
    99       USE IOIPSL
     10       USE infotrac, ONLY : nqtot, ttext
    1011
    1112      implicit none
     
    2829C      t_ops: frequence de l'operation pour IOIPSL
    2930C      t_wrt: frequence d'ecriture sur le fichier
    30 C      nq: nombre de traceurs
    3131C
    3232C   Sortie:
     
    4848#include "description.h"
    4949#include "serre.h"
    50 #include "advtrac.h"
    5150
    5251C   Arguments
     
    5655      real tstep, t_ops, t_wrt
    5756      integer fileid
    58       integer nq
    5957      integer thoriid, zvertiid
    6058
     
    136134C  Traceurs
    137135C
    138         DO iq=1,nq
     136        DO iq=1,nqtot
    139137          call histdef(fileid, ttext(iq), ttext(iq), '-',
    140138     .             iip1, jjp1, thoriid, llm, 1, llm, zvertiid,
  • LMDZ4/branches/LMDZ4-dev/libf/bibio/initfluxsto.F

    r761 r1114  
    33!
    44      subroutine initfluxsto
    5      .  (infile,tstep,t_ops,t_wrt,nq,
     5     .  (infile,tstep,t_ops,t_wrt,
    66     .                    fileid,filevid,filedid)
    77
     
    2727C      t_ops: frequence de l'operation pour IOIPSL
    2828C      t_wrt: frequence d'ecriture sur le fichier
    29 C      nq: nombre de traceurs
    3029C
    3130C   Sortie:
     
    5554      real tstep, t_ops, t_wrt
    5655      integer fileid, filevid,filedid
    57       integer nq,ndex(1)
     56      integer ndex(1)
    5857      real nivd(1)
    5958
  • LMDZ4/branches/LMDZ4-dev/libf/bibio/inithist.F

    r761 r1114  
    22! $Header$
    33!
    4       subroutine inithist(infile,day0,anne0,tstep,t_ops,t_wrt,nq,fileid,
     4      subroutine inithist(infile,day0,anne0,tstep,t_ops,t_wrt,fileid,
    55     .                    filevid)
    66
    77       USE IOIPSL
     8       USE infotrac, ONLY : nqtot, ttext
    89
    910      implicit none
     
    4748#include "description.h"
    4849#include "serre.h"
    49 #include "advtrac.h"
    5050
    5151C   Arguments
     
    5555      real tstep, t_ops, t_wrt
    5656      integer fileid, filevid
    57       integer nq
    5857
    5958C   Variables locales
     
    154153C  Traceurs
    155154C
    156         DO iq=1,nq
     155        DO iq=1,nqtot
    157156          call histdef(fileid, ttext(iq),  ttext(iq), '-',
    158157     .             iip1, jjp1, thoriid, llm, 1, llm, zvertiid,
  • LMDZ4/branches/LMDZ4-dev/libf/bibio/writedynav.F

    r524 r1114  
    22! $Header$
    33!
    4       subroutine writedynav( histid, nq, time, vcov,
     4      subroutine writedynav( histid, time, vcov,
    55     ,                          ucov,teta,ppk,phi,q,masse,ps,phis)
    66
    77      USE ioipsl
     8      USE infotrac, ONLY : nqtot, ttext
    89      implicit none
    910
     
    1516C   Entree:
    1617C      histid: ID du fichier histoire
    17 C      nqmx: nombre maxi de traceurs
    1818C      time: temps de l'ecriture
    1919C      vcov: vents v covariants
     
    4545#include "description.h"
    4646#include "serre.h"
    47 #include "advtrac.h"
    4847
    4948C
     
    5150C
    5251
    53       INTEGER histid, nq
     52      INTEGER histid
    5453      REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm)
    5554      REAL teta(ip1jmp1*llm),phi(ip1jmp1,llm),ppk(ip1jmp1*llm)                 
    5655      REAL ps(ip1jmp1),masse(ip1jmp1,llm)                   
    5756      REAL phis(ip1jmp1)                 
    58       REAL q(ip1jmp1,llm,nq)
     57      REAL q(ip1jmp1,llm,nqtot)
    5958      integer time
    6059
     
    119118C  Traceurs
    120119C
    121         DO iq=1,nq
     120        DO iq=1,nqtot
    122121          call histwrite(histid, ttext(iq), itau_w, q(:,:,iq),
    123122     .                   iip1*jjp1*llm, ndex3d)
  • LMDZ4/branches/LMDZ4-dev/libf/bibio/writehist.F

    r524 r1114  
    22! $Header$
    33!
    4       subroutine writehist( histid, histvid, nq, time, vcov,
     4      subroutine writehist( histid, histvid, time, vcov,
    55     ,                          ucov,teta,phi,q,masse,ps,phis)
    66
    77      USE ioipsl
     8      USE infotrac, ONLY : nqtot, ttext
    89      implicit none
    910
     
    1617C      histid: ID du fichier histoire
    1718C      histvid:ID du fichier histoire pour les vents V (appele a disparaitre)
    18 C      nqmx: nombre maxi de traceurs
    1919C      time: temps de l'ecriture
    2020C      vcov: vents v covariants
     
    4646#include "description.h"
    4747#include "serre.h"
    48 #include "advtrac.h"
    4948
    5049C
     
    5251C
    5352
    54       INTEGER histid, nq, histvid
     53      INTEGER histid, histvid
    5554      REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm)
    5655      REAL teta(ip1jmp1,llm),phi(ip1jmp1,llm)                   
    5756      REAL ps(ip1jmp1),masse(ip1jmp1,llm)                   
    5857      REAL phis(ip1jmp1)                 
    59       REAL q(ip1jmp1,llm,nq)
     58      REAL q(ip1jmp1,llm,nqtot)
    6059      integer time
    6160
     
    102101C  Traceurs
    103102C
    104         DO iq=1,nq
     103        DO iq=1,nqtot
    105104          call histwrite(histid, ttext(iq), itau_w, q(:,:,iq),
    106105     .                   iip1*jjp1*llm, ndexu)
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/addfi.F

    r524 r1114  
    22! $Header$
    33!
    4       SUBROUTINE addfi(nq, pdt, leapf, forward,
     4      SUBROUTINE addfi(pdt, leapf, forward,
    55     S          pucov, pvcov, pteta, pq   , pps ,
    66     S          pdufi, pdvfi, pdhfi,pdqfi, pdpfi  )
     7
     8      USE infotrac, ONLY : nqtot
    79      IMPLICIT NONE
    810c
     
    5254c    -----------
    5355c
    54       INTEGER nq
    55 
    5656      REAL pdt
    5757c
    5858      REAL pvcov(ip1jm,llm),pucov(ip1jmp1,llm)
    59       REAL pteta(ip1jmp1,llm),pq(ip1jmp1,llm,nq),pps(ip1jmp1)
     59      REAL pteta(ip1jmp1,llm),pq(ip1jmp1,llm,nqtot),pps(ip1jmp1)
    6060c
    6161      REAL pdvfi(ip1jm,llm),pdufi(ip1jmp1,llm)
    62       REAL pdqfi(ip1jmp1,llm,nq),pdhfi(ip1jmp1,llm),pdpfi(ip1jmp1)
     62      REAL pdqfi(ip1jmp1,llm,nqtot),pdhfi(ip1jmp1,llm),pdpfi(ip1jmp1)
    6363c
    6464      LOGICAL leapf,forward
     
    125125      ENDDO
    126126
    127       DO iq = 3, nq
     127      DO iq = 3, nqtot
    128128         DO k = 1,llm
    129129            DO j = 1,ip1jmp1
     
    148148
    149149
    150       DO iq = 1, nq
     150      DO iq = 1, nqtot
    151151        DO  k    = 1, llm
    152152          DO  ij   = 1, iim
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/advtrac.F

    r960 r1114  
    1515c            M.A Filiberti (04/2002)
    1616c
     17      USE infotrac
     18
    1719      IMPLICIT NONE
    1820c
     
    2830#include "ener.h"
    2931#include "description.h"
    30 #include "advtrac.h"
    3132
    3233c-------------------------------------------------------------------
     
    3940      INTEGER iapptrac
    4041      REAL pbaru(ip1jmp1,llm),pbarv(ip1jm,llm)
    41       REAL q(ip1jmp1,llm,nqmx),masse(ip1jmp1,llm)
     42      REAL q(ip1jmp1,llm,nqtot),masse(ip1jmp1,llm)
    4243      REAL p( ip1jmp1,llmp1 ),teta(ip1jmp1,llm)
    4344      REAL pk(ip1jmp1,llm)
     
    5253      REAL pbarug(ip1jmp1,llm),pbarvg(ip1jm,llm),wg(ip1jmp1,llm)
    5354      REAL (kind=kind(1.d0)) :: t_initial, t_final, tps_cpu
    54       real cpuadv(nqmx)
    55       common/cpuadv/cpuadv
    56 
    5755      INTEGER iadvtr
    5856      INTEGER ij,l,iq,iiq
     
    6967      REAL psppm(iim,jjp1) ! pression  au sol
    7068      REAL unatppm(iim,jjp1,llm),vnatppm(iim,jjp1,llm)
    71       REAL qppm(iim*jjp1,llm,nqmx)
     69      REAL qppm(iim*jjp1,llm,nqtot)
    7270      REAL fluxwppm(iim,jjp1,llm)
    7371      REAL apppm(llmp1), bpppm(llmp1)
     
    153151c     Appel des sous programmes d'advection
    154152c-----------------------------------------------------------
    155       do iq=1,nqmx
     153      do iq=1,nqtot
    156154c        call clock(t_initial)
    157155        if(iadv(iq) == 0) cycle
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/caladvtrac.F

    r960 r1114  
    88     *                   flxw, pk)
    99c
     10      USE infotrac
    1011      IMPLICIT NONE
    1112c
     
    2425#include "comconst.h"
    2526#include "control.h"
    26 #include "advtrac.h"
    2727
    2828c   Arguments:
    2929c   ----------
    3030      REAL pbaru( ip1jmp1,llm ),pbarv( ip1jm,llm),masse(ip1jmp1,llm)
    31       REAL p( ip1jmp1,llmp1),q( ip1jmp1,llm,nqmx),dq( ip1jmp1,llm,2 )
     31      REAL p( ip1jmp1,llmp1),q( ip1jmp1,llm,nqtot),dq( ip1jmp1,llm,2 )
    3232      REAL teta( ip1jmp1,llm),pk( ip1jmp1,llm)
    3333      REAL               :: flxw(ip1jmp1,llm)
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/calfis.F

    r960 r1114  
    44C
    55C
    6       SUBROUTINE calfis(nq,
    7      $                  lafin,
     6      SUBROUTINE calfis(lafin,
    87     $                  rdayvrai,
    98     $                  heure,
     
    3231c    Auteur :  P. Le Van, F. Hourdin
    3332c   .........
     33      USE infotrac
    3434
    3535      IMPLICIT NONE
     
    9090#include "paramet.h"
    9191#include "temps.h"
    92 #include "advtrac.h"
    93 
    94       INTEGER ngridmx,nq
     92
     93      INTEGER ngridmx
    9594      PARAMETER( ngridmx = 2+(jjm-1)*iim - 1/jjm   )
    9695
     
    109108      REAL pteta(iip1,jjp1,llm)
    110109      REAL pmasse(iip1,jjp1,llm)
    111       REAL pq(iip1,jjp1,llm,nqmx)
     110      REAL pq(iip1,jjp1,llm,nqtot)
    112111      REAL pphis(iip1,jjp1)
    113112      REAL pphi(iip1,jjp1,llm)
     
    116115      REAL pducov(iip1,jjp1,llm)
    117116      REAL pdteta(iip1,jjp1,llm)
    118       REAL pdq(iip1,jjp1,llm,nqmx)
     117      REAL pdq(iip1,jjp1,llm,nqtot)
    119118c
    120119      REAL pps(iip1,jjp1)
     
    125124      REAL pdufi(iip1,jjp1,llm)
    126125      REAL pdhfi(iip1,jjp1,llm)
    127       REAL pdqfi(iip1,jjp1,llm,nqmx)
     126      REAL pdqfi(iip1,jjp1,llm,nqtot)
    128127      REAL pdpsfi(iip1,jjp1)
    129128
     
    142141c
    143142      REAL zufi(ngridmx,llm), zvfi(ngridmx,llm)
    144       REAL ztfi(ngridmx,llm),zqfi(ngridmx,llm,nqmx)
     143      REAL ztfi(ngridmx,llm),zqfi(ngridmx,llm,nqtot)
    145144c
    146145      REAL pcvgu(ngridmx,llm), pcvgv(ngridmx,llm)
     
    148147c
    149148      REAL zdufi(ngridmx,llm),zdvfi(ngridmx,llm)
    150       REAL zdtfi(ngridmx,llm),zdqfi(ngridmx,llm,nqmx)
     149      REAL zdtfi(ngridmx,llm),zdqfi(ngridmx,llm,nqtot)
    151150      REAL zdpsrf(ngridmx)
    152151c
     
    275274c   ---------------
    276275c
    277       DO iq=1,nq
     276      DO iq=1,nqtot
    278277          iiq=niadv(iq)
    279278         DO l=1,llm
     
    444443      CALL physiq (ngridmx,
    445444     .             llm,
    446      .             nq,
    447445     .             debut,
    448446     .             lafin,
     
    505503c   ---------------------
    506504
    507       DO iq=1,nqmx
     505      DO iq=1,nqtot
    508506         DO l=1,llm
    509507            DO i=1,iip1
     
    526524      pdqfi=0.
    527525C
    528       DO iq=1,nq
     526      DO iq=1,nqtot
    529527         iiq=niadv(iq)
    530528         DO l=1,llm
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/create_etat0_limit.F

    r1016 r1114  
    55       USE dimphy
    66       USE comgeomphy
    7 
     7       USE infotrac
    88c
    99c
     
    2828#include "paramet.h"
    2929#include "indicesol.h"
    30 #include "advtrac.h"
    3130#include  "control.h"
    3231      REAL :: masque(iip1,jjp1)
    3332!      REAL :: pctsrf(iim*(jjm-1)+2, nbsrf)
    3433
    35 c initialisation traceurs
    36       hadv_flg(:) = 0.
    37       vadv_flg(:) = 0.
    38       conv_flg(:) = 0.
    39       pbl_flg(:)  = 0.
    40       tracnam(:)  = '        '
    41       nprath = 1
    42       nbtrac = 0
    43       mmt_adj(:,:,:,:) = 1
    44 
    4534      IF (config_inca /= 'none') THEN
    4635#ifdef INCA
    4736         call init_const_lmdz(
    48      $        nbtrac,anneeref,dayref,
     37     $        nbtr,anneeref,dayref,
    4938     $        iphysiq, day_step,nday)
    5039#endif
    51          print *, 'nbtrac =' , nbtrac
     40         print *, 'nbtr =' , nbtr
    5241      END IF
    5342
    54       CALL Init_Phys_lmdz(iim,jjp1,llm,nqmx-2,1,(jjm-1)*iim+2)
     43      CALL Init_Phys_lmdz(iim,jjp1,llm,1,(jjm-1)*iim+2)
    5544      call InitComgeomphy
    5645
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/dynetat0.F

    r541 r1114  
    22! $Header$
    33!
    4       SUBROUTINE dynetat0(fichnom,nq,vcov,ucov,
     4      SUBROUTINE dynetat0(fichnom,vcov,ucov,
    55     .                    teta,q,masse,ps,phis,time)
     6
     7      USE infotrac
    68      IMPLICIT NONE
    79
     
    3234#include "serre.h"
    3335#include "logic.h"
    34 #include "advtrac.h"
    3536
    3637c   Arguments:
     
    3839
    3940      CHARACTER*(*) fichnom
    40       INTEGER nq
    4141      REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm),teta(ip1jmp1,llm)
    42       REAL q(ip1jmp1,llm,nq),masse(ip1jmp1,llm)
     42      REAL q(ip1jmp1,llm,nqtot),masse(ip1jmp1,llm)
    4343      REAL ps(ip1jmp1),phis(ip1jmp1)
    4444
     
    315315
    316316
    317       IF(nq.GE.1) THEN
    318       DO iq=1,nq
     317      IF(nqtot.GE.1) THEN
     318      DO iq=1,nqtot
    319319        ierr =  NF_INQ_VARID (nid, tname(iq), nvarid)
    320320        IF (ierr .NE. NF_NOERR) THEN
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/dynredem.F

    r960 r1114  
    33!
    44c
    5       SUBROUTINE dynredem0(fichnom,iday_end,phis,nq)
     5      SUBROUTINE dynredem0(fichnom,iday_end,phis)
    66      USE IOIPSL
     7      USE infotrac
    78      IMPLICIT NONE
    89c=======================================================================
     
    2223#include "description.h"
    2324#include "serre.h"
    24 #include "advtrac.h"
    2525
    2626c   Arguments:
     
    2929      REAL phis(ip1jmp1)
    3030      CHARACTER*(*) fichnom
    31       INTEGER nq
    3231
    3332c   Local:
     
    458457      dims4(3) = idim_s
    459458      dims4(4) = idim_tim
    460       IF(nq.GE.1) THEN
    461       DO iq=1,nq
     459      IF(nqtot.GE.1) THEN
     460      DO iq=1,nqtot
    462461cIM 220306 BEG
    463462#ifdef NC_DOUBLE
     
    508507      END
    509508      SUBROUTINE dynredem1(fichnom,time,
    510      .                     vcov,ucov,teta,q,nq,masse,ps)
     509     .                     vcov,ucov,teta,q,masse,ps)
     510      USE infotrac
    511511      IMPLICIT NONE
    512512c=================================================================
     
    519519#include "comvert.h"
    520520#include "comgeom.h"
    521 #include "advtrac.h"
    522521#include "temps.h"
    523522#include "control.h"
    524523
    525       INTEGER nq, l
     524      INTEGER l
    526525      REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm)
    527526      REAL teta(ip1jmp1,llm)                   
    528527      REAL ps(ip1jmp1),masse(ip1jmp1,llm)                   
    529       REAL q(ip1jmp1,llm,nq)
     528      REAL q(ip1jmp1,llm,nqtot)
    530529      CHARACTER*(*) fichnom
    531530     
     
    633632      END IF
    634633
    635       IF(nq.GE.1) THEN
    636       do iq=1,nq
     634      IF(nqtot.GE.1) THEN
     635      do iq=1,nqtot
    637636
    638637         IF (config_inca == 'none') THEN
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/etat0_netcdf.F

    r1108 r1114  
    99      USE ioipsl
    1010      USE dimphy
     11      USE infotrac
    1112      USE fonte_neige_mod
    1213      USE pbl_surface_mod
     
    3334      LOGICAL interbar
    3435      REAL :: latfi(klon), lonfi(klon)
    35       REAL :: orog(iip1,jjp1), rugo(iip1,jjp1), masque(iip1,jjp1),
    36      . psol(iip1, jjp1), phis(iip1, jjp1)
     36      REAL :: orog(iip1,jjp1), rugo(iip1,jjp1), masque(iip1,jjp1)
     37      REAL :: psol(iip1, jjp1), phis(iip1, jjp1)
    3738      REAL :: p3d(iip1, jjp1, llm+1)
    3839      REAL :: uvent(iip1, jjp1, llm)
    3940      REAL :: vvent(iip1, jjm, llm)
    4041      REAL :: t3d(iip1, jjp1, llm), tpot(iip1, jjp1, llm)
    41       REAL :: q3d(iip1, jjp1, llm,nqmx), qsat(iip1, jjp1, llm)
     42      REAL, ALLOCATABLE, DIMENSION(:,:,:,:) :: q3d
     43      REAL :: qsat(iip1, jjp1, llm)
    4244      REAL :: tsol(klon), qsol(klon), sn(klon)
    4345      REAL :: tsolsrf(klon,nbsrf), qsolsrf(klon,nbsrf),snsrf(klon,nbsrf)
     
    6466      !
    6567      INTEGER :: i,j, ig, l, ji,ii1,ii2
    66       INTEGER :: nq
    6768      REAL :: xpi
    6869      !
     
    165166      print*,'dtvr',dtvr
    166167
     168
     169
    167170      CALL inicons0()
    168171      CALL inigeom()
    169       !
     172
     173! Initialisation pour traceurs
     174      CALL infotrac_init
     175      ALLOCATE(q3d(iip1,jjp1,llm,nqtot))
     176
     177
    170178      CALL inifilr()
    171179      CALL phys_state_var_init()
     
    624632      phis(iip1,:) = phis(1,:)
    625633
    626 C init pour traceurs
    627       call iniadvtrac(nq)
    628634C Ecriture
    629635      CALL inidissip( lstardis, nitergdiv, nitergrot, niterh   ,
     
    649655     *                phi,w, pbaru,pbarv,time+iday-dayref   )
    650656       print*,'sortie caldyn0'     
    651       CALL dynredem0("start.nc",dayref,phis,nqmx)
     657      CALL dynredem0("start.nc",dayref,phis)
    652658      print*,'sortie dynredem0'
    653       CALL dynredem1("start.nc",0.0,vvent,uvent,tpot,q3d,nqmx,masse ,
     659      CALL dynredem1("start.nc",0.0,vvent,uvent,tpot,q3d,masse ,
    654660     .                            psol)
    655661      print*,'sortie dynredem1'
     
    742748      visu_file='Etat0_visu.nc'
    743749      CALL initdynav(visu_file,dayref,anneeref,time_step,
    744      .              t_ops, t_wrt, nqmx, visuid)
    745       CALL writedynav(visuid, nqmx, itau,vvent ,
     750     .              t_ops, t_wrt, visuid)
     751      CALL writedynav(visuid, itau,vvent ,
    746752     .                uvent,tpot,pk,phi,q3d,masse,psol,phis)
    747753      else
     
    750756      print*,'entree histclo'
    751757      CALL histclo
     758
     759      DEALLOCATE(q3d)
     760
    752761      RETURN
    753762      !
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/fluxstokenc.F

    r697 r1114  
    5656        CALL initfluxsto( 'fluxstoke',
    5757     .  time_step,istdyn* time_step,istdyn* time_step,
    58      . nqmx, fluxid,fluxvid,fluxdid)
     58     . fluxid,fluxvid,fluxdid)
    5959       
    6060        ndex(1) = 0
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/gcm.F

    r1108 r1114  
    1111
    1212      USE filtreg_mod
     13      USE infotrac
    1314
    1415!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    7071#include "iniprint.h"
    7172#include "tracstoke.h"
    72 #include "advtrac.h"
    7373
    7474      INTEGER         longcles
     
    8585      REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm) ! vents covariants
    8686      REAL teta(ip1jmp1,llm)                 ! temperature potentielle
    87       REAL q(ip1jmp1,llm,nqmx)               ! champs advectes
     87      REAL, ALLOCATABLE, DIMENSION(:,:,:):: q! champs advectes
    8888      REAL ps(ip1jmp1)                       ! pression  au sol
    8989      REAL p (ip1jmp1,llmp1  )               ! pression aux interfac.des couches
     
    139139c    variables pour l'initialisation de la physique :
    140140c    ------------------------------------------------
    141       INTEGER ngridmx,nq
     141      INTEGER ngridmx
    142142      PARAMETER( ngridmx = 2+(jjm-1)*iim - 1/jjm   )
    143143      REAL zcufi(ngridmx),zcvfi(ngridmx)
     
    156156      dynhist_file = 'dyn_hist.nc'
    157157      dynhistave_file = 'dyn_hist_ave.nc'
    158 
    159 c initialisation Anne
    160       hadv_flg(:) = 0.
    161       vadv_flg(:) = 0.
    162       conv_flg(:) = 0.
    163       pbl_flg(:)  = 0.
    164       tracnam(:)  = '        '
    165       nprath = 1
    166       nbtrac = 0
    167       mmt_adj(:,:,:,:) = 1
    168158
    169159
     
    217207! dynamique -> physique pour l'initialisation
    218208#ifdef CPP_PHYS
    219       CALL Init_Phys_lmdz(iim,jjp1,llm,nqmx-2,1,(jjm-1)*iim+2)
     209      CALL Init_Phys_lmdz(iim,jjp1,llm,1,(jjm-1)*iim+2)
    220210      call InitComgeomphy
    221211#endif
     
    224214      IF (config_inca /= 'none') THEN
    225215#ifdef INCA
    226       call init_const_lmdz(nbtrac,anneeref,dayref,iphysiq,day_step,nday)
     216      call init_const_lmdz(nbtr,anneeref,dayref,iphysiq,day_step,nday)
    227217      call init_inca_para(iim,jjm+1,klon,1,klon_mpi_para_nb,0)
    228218#endif
     
    239229c   Initialisation des traceurs
    240230c   ---------------------------
    241 c  Choix du schema pour l'advection
    242 c  dans fichier trac.def ou via INCA
    243 
    244        call iniadvtrac(nq)
    245 c
     231c  Choix du nombre de traceurs et du schema pour l'advection
     232c  dans fichier traceur.def, par default ou via INCA
     233      call infotrac_init
     234
     235c Allocation de la tableau q : champs advectes   
     236      allocate(q(ip1jmp1,llm,nqtot))
     237
    246238c-----------------------------------------------------------------------
    247239c   Lecture de l'etat initial :
     
    251243      if (read_start) then
    252244#ifdef CPP_IOIPSL
    253          CALL dynetat0("start.nc",nqmx,vcov,ucov,
     245         CALL dynetat0("start.nc",vcov,ucov,
    254246     .              teta,q,masse,ps,phis, time_0)
    255247c       write(73,*) 'ucov',ucov
     
    274266     .                 'AVANT iniacademic AVANT AVANT AVANT AVANT'
    275267      if (.not.read_start) then
    276          CALL iniacademic(nqmx,vcov,ucov,teta,q,masse,ps,phis,time_0)
     268         CALL iniacademic(vcov,ucov,teta,q,masse,ps,phis,time_0)
    277269      endif
    278270
     
    396388
    397389#ifdef CPP_IOIPSL
    398       CALL dynredem0("restart.nc", day_end, phis, nqmx)
     390      CALL dynredem0("restart.nc", day_end, phis)
    399391
    400392      ecripar = .TRUE.
     
    405397      t_wrt = iecri * daysec
    406398      CALL inithist(dynhist_file,day_ref,annee_ref,time_step,
    407      .              t_ops, t_wrt, nqmx, histid, histvid)
     399     .              t_ops, t_wrt, histid, histvid)
    408400
    409401      t_ops = iperiod * time_step
    410402      t_wrt = periodav * daysec
    411403      CALL initdynav(dynhistave_file,day_ref,annee_ref,time_step,
    412      .              t_ops, t_wrt, nqmx, histaveid)
     404     .              t_ops, t_wrt, histaveid)
    413405
    414406      dtav = iperiod*dtvr/daysec
     
    437429
    438430
    439       CALL leapfrog(ucov,vcov,teta,ps,masse,phis,nq,q,clesphy0,
     431      CALL leapfrog(ucov,vcov,teta,ps,masse,phis,q,clesphy0,
    440432     .              time_0)
    441433
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/iniacademic.F

    r1108 r1114  
    44c
    55c
    6       SUBROUTINE iniacademic(nq,vcov,ucov,teta,q,masse,ps,phis,time_0)
     6      SUBROUTINE iniacademic(vcov,ucov,teta,q,masse,ps,phis,time_0)
    77
    88      USE filtreg_mod
     9      USE infotrac, ONLY : nqtot
    910
    1011c%W%    %G%
     
    4849c   ----------
    4950
    50       integer nq
    5151      real time_0
    5252
     
    5454      REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm) ! vents covariants
    5555      REAL teta(ip1jmp1,llm)                 ! temperature potentielle
    56       REAL q(ip1jmp1,llm,nq)               ! champs advectes
     56      REAL q(ip1jmp1,llm,nqtot)               ! champs advectes
    5757      REAL ps(ip1jmp1)                       ! pression  au sol
    5858      REAL masse(ip1jmp1,llm)                ! masse d'air
     
    160160      q(:,:,1   )=1.e-10
    161161      q(:,:,2   )=1.e-15
    162       q(:,:,3:nq)=0.
     162      q(:,:,3:nqtot)=0.
    163163
    164164
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/integrd.F

    r524 r1114  
    3232#include "temps.h"
    3333#include "serre.h"
    34 #include "advtrac.h"
    3534
    3635c   Arguments:
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/leapfrog.F

    r1060 r1114  
    22c
    33c
    4       SUBROUTINE leapfrog(ucov,vcov,teta,ps,masse,phis,nq,q,clesphy0,
     4      SUBROUTINE leapfrog(ucov,vcov,teta,ps,masse,phis,q,clesphy0,
    55     &                    time_0)
    66
     
    88cIM : pour sortir les param. du modele dans un fis. netcdf 110106
    99      USE IOIPSL
     10      USE infotrac
    1011
    1112      IMPLICIT NONE
     
    5657#include "com_io_dyn.h"
    5758#include "iniprint.h"
    58 #include "advtrac.h"
    59 c#include "tracstoke.h"
    60 
    6159#include "academic.h"
    6260
    6361! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique
    6462! #include "clesphys.h"
    65 
    66       integer nq
    6763
    6864      INTEGER         longcles
     
    7672      REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm) ! vents covariants
    7773      REAL teta(ip1jmp1,llm)                 ! temperature potentielle
    78       REAL q(ip1jmp1,llm,nqmx)               ! champs advectes
     74      REAL q(ip1jmp1,llm,nqtot)               ! champs advectes
    7975      REAL ps(ip1jmp1)                       ! pression  au sol
    8076      REAL p (ip1jmp1,llmp1  )               ! pression aux interfac.des couches
     
    9793c   tendances dynamiques
    9894      REAL dv(ip1jm,llm),du(ip1jmp1,llm)
    99       REAL dteta(ip1jmp1,llm),dq(ip1jmp1,llm,nqmx),dp(ip1jmp1)
     95      REAL dteta(ip1jmp1,llm),dq(ip1jmp1,llm,nqtot),dp(ip1jmp1)
    10096
    10197c   tendances de la dissipation
     
    105101c   tendances physiques
    106102      REAL dvfi(ip1jm,llm),dufi(ip1jmp1,llm)
    107       REAL dtetafi(ip1jmp1,llm),dqfi(ip1jmp1,llm,nqmx),dpfi(ip1jmp1)
     103      REAL dtetafi(ip1jmp1,llm),dqfi(ip1jmp1,llm,nqtot),dpfi(ip1jmp1)
    108104
    109105c   variables pour le fichier histoire
     
    190186      itaufin   = nday*day_step
    191187      itaufinp1 = itaufin +1
    192 
     188      modname="leapfrog"
     189     
    193190
    194191      itau = 0
     
    372369c
    373370
    374         CALL calfis( nq, lafin ,rdayvrai,time  ,
     371        CALL calfis( lafin ,rdayvrai,time  ,
    375372     $               ucov,vcov,teta,q,masse,ps,p,pk,phis,phi ,
    376373     $               du,dv,dteta,dq,
     
    384381c      ajout des tendances physiques:
    385382c      ------------------------------
    386           CALL addfi( nqmx, dtphys, leapf, forward   ,
     383          CALL addfi( dtphys, leapf, forward   ,
    387384     $                  ucov, vcov, teta , q   ,ps ,
    388385     $                 dufi, dvfi, dtetafi , dqfi ,dpfi  )
     
    533530               ENDIF
    534531#ifdef CPP_IOIPSL
    535               CALL writedynav(histaveid, nqmx, itau,vcov ,
     532              CALL writedynav(histaveid, itau,vcov ,
    536533     ,                          ucov,teta,pk,phi,q,masse,ps,phis)
    537534               call bilan_dyn (2,dtvr*iperiod,dtvr*day_step*periodav,
     
    556553        enddo
    557554#ifdef CPP_IOIPSL
    558 c        CALL writehist(histid,histvid, nqmx,itau,vcov,
     555c        CALL writehist(histid,histvid,itau,vcov,
    559556c     s                       ucov,teta,phi,q,masse,ps,phis)
    560557#else
     
    570567#ifdef CPP_IOIPSL
    571568       CALL dynredem1("restart.nc",0.0,
    572      ,                     vcov,ucov,teta,q,nqmx,masse,ps)
     569     ,                     vcov,ucov,teta,q,masse,ps)
    573570#endif
    574571
     
    639636               ENDIF
    640637#ifdef CPP_IOIPSL
    641               CALL writedynav(histaveid, nqmx, itau,vcov ,
     638              CALL writedynav(histaveid, itau,vcov ,
    642639     ,                          ucov,teta,pk,phi,q,masse,ps,phis)
    643640               call bilan_dyn (2,dtvr*iperiod,dtvr*day_step*periodav,
     
    657654        enddo
    658655#ifdef CPP_IOIPSL
    659 c       CALL writehist( histid, histvid, nqmx, itau,vcov ,
     656c       CALL writehist( histid, histvid, itau,vcov ,
    660657c    ,                           ucov,teta,phi,q,masse,ps,phis)
    661658#else
     
    669666                 IF(itau.EQ.itaufin)
    670667     . CALL dynredem1("restart.nc",0.0,
    671      .                     vcov,ucov,teta,q,nqmx,masse,ps)
     668     .                     vcov,ucov,teta,q,masse,ps)
    672669#endif
    673670
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/test_period.F

    r524 r1114  
    99c                           teta, q , p et phis                 ..........
    1010c
     11      USE infotrac
    1112c     IMPLICIT NONE
    1213c
     
    1718c
    1819      REAL ucov(ip1jmp1,llm), vcov(ip1jm,llm), teta(ip1jmp1,llm) ,
    19      ,      q(ip1jmp1,llm,nqmx), p(ip1jmp1,llmp1), phis(ip1jmp1)
     20     ,      q(ip1jmp1,llm,nqtot), p(ip1jmp1,llmp1), phis(ip1jmp1)
    2021c
    2122c   .....  Variables  locales  .....
     
    6869     
    6970c
    70       DO nq =1, nqmx
     71      DO nq =1, nqtot
    7172        DO l =1, llm
    7273          DO ij = 1, ip1jmp1, iip1
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/write_grads_dyn.h

    r524 r1114  
    2424      string10='teta'
    2525      CALL wrgrads(1,llm,teta,string10,string10)
    26       do iq=1,nqmx
     26      do iq=1,nqtot
    2727         string10='q'
    2828         write(string10(2:2),'(i1)') iq
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/addfi_p.F

    r774 r1114  
    22! $Header$
    33!
    4       SUBROUTINE addfi_p(nq, pdt, leapf, forward,
     4      SUBROUTINE addfi_p(pdt, leapf, forward,
    55     S          pucov, pvcov, pteta, pq   , pps ,
    66     S          pdufi, pdvfi, pdhfi,pdqfi, pdpfi  )
    77      USE parallel
     8      USE infotrac, ONLY : nqtot
    89      IMPLICIT NONE
    910c
     
    5354c    -----------
    5455c
    55       INTEGER nq
    56 
    5756      REAL pdt
    5857c
    5958      REAL pvcov(ip1jm,llm),pucov(ip1jmp1,llm)
    60       REAL pteta(ip1jmp1,llm),pq(ip1jmp1,llm,nq),pps(ip1jmp1)
     59      REAL pteta(ip1jmp1,llm),pq(ip1jmp1,llm,nqtot),pps(ip1jmp1)
    6160c
    6261      REAL pdvfi(ip1jm,llm),pdufi(ip1jmp1,llm)
    63       REAL pdqfi(ip1jmp1,llm,nq),pdhfi(ip1jmp1,llm),pdpfi(ip1jmp1)
     62      REAL pdqfi(ip1jmp1,llm,nqtot),pdhfi(ip1jmp1,llm),pdpfi(ip1jmp1)
    6463c
    6564      LOGICAL leapf,forward
     
    166165      ENDDO
    167166
    168       DO iq = 3, nq
     167      DO iq = 3, nqtot
    169168c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    170169         DO k = 1,llm
     
    208207
    209208      if (pole_nord) then
    210         DO iq = 1, nq
     209        DO iq = 1, nqtot
    211210c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    212211          DO  k    = 1, llm
     
    225224     
    226225      if (pole_sud) then
    227         DO iq = 1, nq
     226        DO iq = 1, nqtot
    228227c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    229228          DO  k    = 1, llm
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/advtrac_p.F

    r985 r1114  
    2222      USE Vampir
    2323      USE times
     24      USE infotrac
    2425      IMPLICIT NONE
    2526c
     
    3536#include "ener.h"
    3637#include "description.h"
    37 #include "advtrac.h"
    3838
    3939c-------------------------------------------------------------------
     
    4646      INTEGER iapptrac
    4747      REAL pbaru(ip1jmp1,llm),pbarv(ip1jm,llm)
    48       REAL q(ip1jmp1,llm,nqmx),masse(ip1jmp1,llm)
     48      REAL q(ip1jmp1,llm,nqtot),masse(ip1jmp1,llm)
    4949      REAL p( ip1jmp1,llmp1 ),teta(ip1jmp1,llm)
    5050      REAL pk(ip1jmp1,llm)
     
    5959      REAL,SAVE::pbarug(ip1jmp1,llm),pbarvg(ip1jm,llm),wg(ip1jmp1,llm)
    6060      REAL (kind=kind(1.d0)) :: t_initial, t_final, tps_cpu
    61       real cpuadv(nqmx)
    62       common/cpuadv/cpuadv
    63 
    6461      INTEGER iadvtr
    6562      INTEGER ij,l,iq,iiq
     
    7673      REAL psppm(iim,jjp1) ! pression  au sol
    7774      REAL unatppm(iim,jjp1,llm),vnatppm(iim,jjp1,llm)
    78       REAL qppm(iim*jjp1,llm,nqmx)
     75      REAL qppm(iim*jjp1,llm,nqtot)
    7976      REAL fluxwppm(iim,jjp1,llm)
    8077      REAL apppm(llmp1), bpppm(llmp1)
     
    8885      REAL,SAVE :: teta_tmp(ip1jmp1,llm)
    8986      REAL,SAVE :: pk_tmp(ip1jmp1,llm)
    90      
     87
    9188      ijb_u=ij_begin
    9289      ije_u=ij_end
     
    196193      call Register_SwapFieldHallo(pk_tmp,pk_tmp,ip1jmp1,llm,
    197194     *                             jj_Nb_vanleer,1,1,Request_vanleer)
    198       do j=1,nqmx
     195      do j=1,nqtot
    199196        call Register_SwapFieldHallo(q(1,1,j),q(1,1,j),ip1jmp1,llm,
    200197     *                             jj_nb_vanleer,0,0,Request_vanleer)
     
    279276c     Appel des sous programmes d'advection
    280277c-----------------------------------------------------------
    281       do iq=1,nqmx
     278      do iq=1,nqtot
    282279c        call clock(t_initial)
    283280        if(iadv(iq) == 0) cycle
     
    479476c$OMP END MASTER
    480477
    481         do j=1,nqmx
     478        do j=1,nqtot
    482479          call Register_SwapFieldHallo(q(1,1,j),q(1,1,j),ip1jmp1,llm,
    483480     *                             jj_nb_caldyn,0,0,Request_vanleer)
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/caladvtrac_p.F

    r960 r1114  
    88     *                   flxw, pk, iapptrac)
    99      USE parallel
     10      USE infotrac
    1011c
    1112      IMPLICIT NONE
     
    2526#include "comconst.h"
    2627#include "control.h"
    27 #include "advtrac.h"
    2828
    2929c   Arguments:
    3030c   ----------
    3131      REAL pbaru( ip1jmp1,llm ),pbarv( ip1jm,llm),masse(ip1jmp1,llm)
    32       REAL p( ip1jmp1,llmp1),q( ip1jmp1,llm,nqmx),dq( ip1jmp1,llm,2 )
     32      REAL p( ip1jmp1,llmp1),q( ip1jmp1,llm,nqtot),dq( ip1jmp1,llm,2 )
    3333      REAL teta( ip1jmp1,llm),pk( ip1jmp1,llm)
    3434      REAL               :: flxw(ip1jmp1,llm)
     
    4848      REAL finmasse(ip1jmp1,llm), dtvrtrac
    4949     
    50 
    5150cc
    5251c
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/calfis_p.F

    r1000 r1114  
    44C
    55C
    6       SUBROUTINE calfis_p(nq,
    7      $                  lafin,
     6      SUBROUTINE calfis_p(lafin,
    87     $                  rdayvrai,
    98     $                  heure,
     
    4039      USE Times
    4140      USE IOPHY
     41      USE infotrac
     42
    4243      IMPLICIT NONE
    4344c=======================================================================
     
    9899#include "paramet.h"
    99100#include "temps.h"
    100 #include "advtrac.h"
    101 
    102       INTEGER ngridmx,nq
     101
     102      INTEGER ngridmx
    103103      PARAMETER( ngridmx = 2+(jjm-1)*iim - 1/jjm   )
    104104
     
    119119      REAL pteta(iip1,jjp1,llm)
    120120      REAL pmasse(iip1,jjp1,llm)
    121       REAL pq(iip1,jjp1,llm,nqmx)
     121      REAL pq(iip1,jjp1,llm,nqtot)
    122122      REAL pphis(iip1,jjp1)
    123123      REAL pphi(iip1,jjp1,llm)
     
    126126      REAL pducov(iip1,jjp1,llm)
    127127      REAL pdteta(iip1,jjp1,llm)
    128       REAL pdq(iip1,jjp1,llm,nqmx)
     128      REAL pdq(iip1,jjp1,llm,nqtot)
    129129c
    130130      REAL pps(iip1,jjp1)
     
    135135      REAL pdufi(iip1,jjp1,llm)
    136136      REAL pdhfi(iip1,jjp1,llm)
    137       REAL pdqfi(iip1,jjp1,llm,nqmx)
     137      REAL pdqfi(iip1,jjp1,llm,nqtot)
    138138      REAL pdpsfi(iip1,jjp1)
    139139
     
    253253      ALLOCATE(zphi(klon,llm),zphis(klon))
    254254      ALLOCATE(zufi(klon,llm), zvfi(klon,llm))
    255       ALLOCATE(ztfi(klon,llm),zqfi(klon,llm,nqmx))
     255      ALLOCATE(ztfi(klon,llm),zqfi(klon,llm,nqtot))
    256256      ALLOCATE(pcvgu(klon,llm), pcvgv(klon,llm))
    257257      ALLOCATE(pcvgt(klon,llm), pcvgq(klon,llm,2))
    258258c      ALLOCATE(pvervel(klon,llm))
    259259      ALLOCATE(zdufi(klon,llm),zdvfi(klon,llm))
    260       ALLOCATE(zdtfi(klon,llm),zdqfi(klon,llm,nqmx))
     260      ALLOCATE(zdtfi(klon,llm),zdqfi(klon,llm,nqtot))
    261261      ALLOCATE(zdpsrf(klon))
    262262      ALLOCATE(zdufi2(klon+iim,llm),zdvfi2(klon+iim,llm))
     
    335335c
    336336
    337       DO iq=1,nq
     337      DO iq=1,nqtot
    338338         iiq=niadv(iq)
    339339c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
     
    527527cc$OMP  PARALLEL DEFAULT(NONE)
    528528cc$OMP+ PRIVATE(i,l,offset,iq)
    529 cc$OMP+ SHARED(klon_omp_nb,nq,klon_omp_begin,
     529cc$OMP+ SHARED(klon_omp_nb,nqtot,klon_omp_begin,
    530530cc$OMP+        debut,lafin,rdayvrai,heure,dtphys,zplev,zplay,
    531531cc$OMP+        zphi,zphis,presnivs,clesphy0,zufi,zvfi,ztfi,
     
    549549        allocate(zvfi_omp(klon,llm))
    550550        allocate(ztfi_omp(klon,llm))
    551         allocate(zqfi_omp(klon,llm,nq))
     551        allocate(zqfi_omp(klon,llm,nqtot))
    552552c        allocate(pvervel_omp(klon,llm))
    553553        allocate(zdufi_omp(klon,llm))
    554554        allocate(zdvfi_omp(klon,llm))
    555555        allocate(zdtfi_omp(klon,llm))
    556         allocate(zdqfi_omp(klon,llm,nq))
     556        allocate(zdqfi_omp(klon,llm,nqtot))
    557557        allocate(zdpsrf_omp(klon))
    558558        allocate(flxwfi_omp(klon,llm))
     
    609609      enddo
    610610       
    611       do iq=1,nq
     611      do iq=1,nqtot
    612612        do l=1,llm
    613613          do i=1,klon
     
    641641      enddo
    642642       
    643       do iq=1,nq
     643      do iq=1,nqtot
    644644        do l=1,llm
    645645          do i=1,klon
     
    664664      CALL physiq (klon,
    665665     .             llm,
    666      .             nq,
    667666     .             debut,
    668667     .             lafin,
     
    743742      enddo
    744743       
    745       do iq=1,nq
     744      do iq=1,nqtot
    746745        do l=1,llm
    747746          do i=1,klon
     
    775774      enddo
    776775       
    777       do iq=1,nq
     776      do iq=1,nqtot
    778777        do l=1,llm
    779778          do i=1,klon
     
    937936c   ---------------------
    938937
    939       DO iq=1,nqmx
     938      DO iq=1,nqtot
    940939c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    941940         DO l=1,llm
     
    976975C
    977976
    978       DO iq=1,nq
     977      DO iq=1,nqtot
    979978         iiq=niadv(iq)
    980979c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/create_etat0_limit.F

    r1017 r1114  
    88       USE mod_const_mpi
    99       USE phys_state_var_mod     
     10       USE infotrac
    1011       IMPLICIT NONE
    1112c
     
    3132#include "paramet.h"
    3233#include "indicesol.h"
    33 #include "advtrac.h"
    3434#include  "control.h"
    3535#include "clesphys.h"
     
    3737!      REAL :: pctsrf(iim*(jjm-1)+2, nbsrf)
    3838
    39 c initialisation traceurs
    40       hadv_flg(:) = 0.
    41       vadv_flg(:) = 0.
    42       conv_flg(:) = 0.
    43       pbl_flg(:)  = 0.
    44       tracnam(:)  = '        '
    45       nprath = 1
    46       nbtrac = 0
    47       mmt_adj(:,:,:,:) = 1
    48 
    4939      IF (config_inca /= 'none') THEN
    5040#ifdef INCA
    5141         call init_const_lmdz(
    52      $        nbtrac,anneeref,dayref,
     42     $        nbtr,anneeref,dayref,
    5343     $        iphysiq,day_step,nday)
    5444#endif
    55          print *, 'nbtrac =' , nbtrac
     45         print *, 'nbtr =' , nbtr
    5646      END IF
    5747
     
    5949
    6050
    61       CALL Init_Phys_lmdz(iim,jjp1,llm,nqmx-2,1,(/(jjm-1)*iim+2/))
     51      CALL Init_Phys_lmdz(iim,jjp1,llm,1,(/(jjm-1)*iim+2/))
    6252      PRINT *,'---> klon=',klon
    6353
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/dynetat0.F

    r774 r1114  
    22! $Header$
    33!
    4       SUBROUTINE dynetat0(fichnom,nq,vcov,ucov,
     4      SUBROUTINE dynetat0(fichnom,vcov,ucov,
    55     .                    teta,q,masse,ps,phis,time)
     6      USE infotrac
    67      IMPLICIT NONE
    78
     
    3233#include "serre.h"
    3334#include "logic.h"
    34 #include "advtrac.h"
    3535
    3636c   Arguments:
     
    3838
    3939      CHARACTER*(*) fichnom
    40       INTEGER nq
    4140      REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm),teta(ip1jmp1,llm)
    42       REAL q(ip1jmp1,llm,nq),masse(ip1jmp1,llm)
     41      REAL q(ip1jmp1,llm,nqtot),masse(ip1jmp1,llm)
    4342      REAL ps(ip1jmp1),phis(ip1jmp1)
    4443
     
    5352
    5453c-----------------------------------------------------------------------
    55 
    5654c  Ouverture NetCDF du fichier etat initial
    5755
     
    315313
    316314
    317       IF(nq.GE.1) THEN
    318       DO iq=1,nq
     315      DO iq=1,nqtot
    319316        ierr =  NF_INQ_VARID (nid, tname(iq), nvarid)
    320317        IF (ierr .NE. NF_NOERR) THEN
     
    334331        ENDIF
    335332      ENDDO
    336       ENDIF
    337333
    338334      ierr = NF_INQ_VARID (nid, "masse", nvarid)
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/dynredem.F

    r1000 r1114  
    33!
    44c
    5       SUBROUTINE dynredem0(fichnom,iday_end,phis,nq)
     5      SUBROUTINE dynredem0(fichnom,iday_end,phis)
    66      USE IOIPSL
     7      USE infotrac
    78      IMPLICIT NONE
    89c=======================================================================
     
    2223#include "description.h"
    2324#include "serre.h"
    24 #include "advtrac.h"
    2525
    2626c   Arguments:
     
    2929      REAL phis(ip1jmp1)
    3030      CHARACTER*(*) fichnom
    31       INTEGER nq
    3231
    3332c   Local:
     
    458457      dims4(3) = idim_s
    459458      dims4(4) = idim_tim
    460       IF(nq.GE.1) THEN
    461       DO iq=1,nq
     459
     460      DO iq=1,nqtot
    462461cIM 220306 BEG
    463462#ifdef NC_DOUBLE
     
    469468      ierr = NF_PUT_ATT_TEXT (nid, nvarid, "title", 12,ttext(iq))
    470469      ENDDO
    471       ENDIF
    472470c
    473471      dims4(1) = idim_rlonv
     
    508506      END
    509507      SUBROUTINE dynredem1(fichnom,time,
    510      .                     vcov,ucov,teta,q,nq,masse,ps)
     508     .                     vcov,ucov,teta,q,masse,ps)
     509      USE infotrac
    511510      IMPLICIT NONE
    512511c=================================================================
     
    519518#include "comvert.h"
    520519#include "comgeom.h"
    521 #include "advtrac.h"
    522520#include "temps.h"
    523521#include "control.h"
    524522
    525       INTEGER nq, l
     523      INTEGER l
    526524      REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm)
    527525      REAL teta(ip1jmp1,llm)                   
    528526      REAL ps(ip1jmp1),masse(ip1jmp1,llm)                   
    529       REAL q(ip1jmp1,llm,nq)
     527      REAL q(ip1jmp1,llm,nqtot)
    530528      CHARACTER*(*) fichnom
    531529     
     
    633631      END IF
    634632
    635       IF(nq.GE.1) THEN
    636       do iq=1,nq
     633      do iq=1,nqtot
    637634
    638635         IF (config_inca == 'none') THEN
     
    704701     
    705702      ENDDO
    706       ENDIF
    707703c
    708704      ierr = NF_INQ_VARID(nid, "masse", nvarid)
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/dynredem_p.F

    r1085 r1114  
    33!
    44c
    5       SUBROUTINE dynredem0_p(fichnom,iday_end,phis,nq)
     5      SUBROUTINE dynredem0_p(fichnom,iday_end,phis)
    66      USE IOIPSL
    77      USE parallel
     8      USE infotrac
    89      IMPLICIT NONE
    910c=======================================================================
     
    2324#include "description.h"
    2425#include "serre.h"
    25 #include "advtrac.h"
    2626
    2727c   Arguments:
     
    3030      REAL phis(ip1jmp1)
    3131      CHARACTER*(*) fichnom
    32       INTEGER nq
    3332
    3433c   Local:
     
    5453      INTEGER yyears0,jjour0, mmois0
    5554      character*30 unites
    56 
    5755
    5856c-----------------------------------------------------------------------
     
    461459      dims4(3) = idim_s
    462460      dims4(4) = idim_tim
    463       IF(nq.GE.1) THEN
    464       DO iq=1,nq
     461
     462      DO iq=1,nqtot
    465463cIM 220306 BEG
    466464#ifdef NC_DOUBLE
     
    472470      ierr = NF_PUT_ATT_TEXT (nid, nvarid, "title", 12,ttext(iq))
    473471      ENDDO
    474       ENDIF
    475472c
    476473      dims4(1) = idim_rlonv
     
    513510      END
    514511      SUBROUTINE dynredem1_p(fichnom,time,
    515      .                     vcov,ucov,teta,q,nq,masse,ps)
     512     .                     vcov,ucov,teta,q,masse,ps)
    516513      USE parallel
     514      USE infotrac
    517515      IMPLICIT NONE
    518516c=================================================================
     
    525523#include "comvert.h"
    526524#include "comgeom.h"
    527 #include "advtrac.h"
    528525#include "temps.h"
    529526#include "control.h"
    530527
    531       INTEGER nq, l
     528      INTEGER l
    532529      REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm)
    533530      REAL teta(ip1jmp1,llm)                   
    534531      REAL ps(ip1jmp1),masse(ip1jmp1,llm)                   
    535       REAL q(ip1jmp1,llm,nq)
     532      REAL q(ip1jmp1,llm,nqtot)
    536533      CHARACTER*(*) fichnom
    537534     
     
    559556      call Gather_Field(ps,ip1jmp1,1,0)
    560557     
    561       do iq=1,nq
     558      do iq=1,nqtot
    562559        call Gather_Field(q(1,1,iq),ip1jmp1,llm,0)
    563560      enddo
     
    660657      END IF
    661658
    662       IF(nq.GE.1) THEN
    663       do iq=1,nq
     659      do iq=1,nqtot
    664660
    665661         IF (config_inca == 'none') THEN
     
    731727     
    732728      ENDDO
    733       ENDIF
    734 
    735729
    736730
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/etat0_netcdf.F

    r1108 r1114  
    1313      USE phys_state_var_mod
    1414      USE filtreg_mod
     15      USE infotrac
    1516      !
    1617      IMPLICIT NONE
     
    3940      REAL :: vvent(iip1, jjm, llm)
    4041      REAL :: t3d(iip1, jjp1, llm), tpot(iip1, jjp1, llm)
    41       REAL :: q3d(iip1, jjp1, llm,nqmx), qsat(iip1, jjp1, llm)
     42      REAL :: q3d(iip1, jjp1, llm,nqtot), qsat(iip1, jjp1, llm)
    4243      REAL :: tsol(klon), qsol(klon), sn(klon)
    4344      REAL :: tsolsrf(klon,nbsrf), qsolsrf(klon,nbsrf),snsrf(klon,nbsrf)
     
    625626
    626627C init pour traceurs
    627       call iniadvtrac(nq)
     628      call infotrac_init
    628629C Ecriture
    629630      CALL inidissip( lstardis, nitergdiv, nitergrot, niterh   ,
     
    649650     *                phi,w, pbaru,pbarv,time+iday-dayref   )
    650651       print*,'sortie caldyn0'     
    651       CALL dynredem0("start.nc",dayref,phis,nqmx)
     652      CALL dynredem0("start.nc",dayref,phis)
    652653      print*,'sortie dynredem0'
    653       CALL dynredem1("start.nc",0.0,vvent,uvent,tpot,q3d,nqmx,masse ,
     654      CALL dynredem1("start.nc",0.0,vvent,uvent,tpot,q3d,masse ,
    654655     .                            psol)
    655656      print*,'sortie dynredem1'
     
    743744      visu_file='Etat0_visu.nc'
    744745      CALL initdynav(visu_file,dayref,anneeref,time_step,
    745      .              t_ops, t_wrt, nqmx, visuid)
    746       CALL writedynav(visuid, nqmx, itau,vvent ,
     746     .              t_ops, t_wrt, visuid)
     747      CALL writedynav(visuid, itau,vvent ,
    747748     .                uvent,tpot,pk,phi,q3d,masse,psol,phis)
    748749      else
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/fluxstokenc_p.F

    r1021 r1114  
    6161        CALL initfluxsto_p( 'fluxstoke',
    6262     .  time_step,istdyn* time_step,istdyn* time_step,
    63      . nqmx, fluxid,fluxvid,fluxdid)
     63     . fluxid,fluxvid,fluxdid)
    6464       
    6565        ijb=ij_begin
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/gcm.F

    r1108 r1114  
    1414      USE mod_grid_phy_lmdz
    1515      USE dimphy
     16      USE infotrac
    1617      USE mod_interface_dyn_phys
    1718      USE comgeomphy
     
    6768#include "iniprint.h"
    6869#include "tracstoke.h"
    69 #include "advtrac.h"
    7070
    7171      INTEGER         longcles
     
    8383      REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm) ! vents covariants
    8484      REAL teta(ip1jmp1,llm)                 ! temperature potentielle
    85       REAL q(ip1jmp1,llm,nqmx)              ! champs advectes
     85      REAL, ALLOCATABLE, DIMENSION(:,:,:) :: q ! champs advectes
    8686      REAL ps(ip1jmp1)                       ! pression  au sol
    8787c      REAL p (ip1jmp1,llmp1  )               ! pression aux interfac.des couches
     
    138138c    variables pour l'initialisation de la physique :
    139139c    ------------------------------------------------
    140       INTEGER ngridmx,nq
     140      INTEGER ngridmx
    141141      PARAMETER( ngridmx = 2+(jjm-1)*iim - 1/jjm   )
    142142      REAL zcufi(ngridmx),zcvfi(ngridmx)
     
    159159      dynhistave_file = 'dyn_hist_ave'
    160160
    161 
    162 c initialisation Anne
    163       hadv_flg(:) = 0.
    164       vadv_flg(:) = 0.
    165       conv_flg(:) = 0.
    166       pbl_flg(:)  = 0.
    167       tracnam(:)  = '        '
    168       nprath = 1
    169       nbtrac = 0
    170       mmt_adj(:,:,:,:) = 1
    171 
    172 
    173161c--------------------------------------------------------------------------
    174162c   Iflag_phys controle l'appel a la physique :
     
    219207      call init_parallel
    220208      call Read_Distrib
    221       CALL Init_Phys_lmdz(iim,jjp1,llm,nqmx-2,mpi_size,distrib_phys)
     209      CALL Init_Phys_lmdz(iim,jjp1,llm,mpi_size,distrib_phys)
    222210      CALL set_bands
    223211      CALL Init_interface_dyn_phys
     
    238226#ifdef INCA
    239227         call init_const_lmdz(
    240      $        nbtrac,anneeref,dayref,
     228     $        nbtr,anneeref,dayref,
    241229     $        iphysiq,day_step,nday)
    242230
     
    250238c   Initialisation des traceurs
    251239c   ---------------------------
    252 c  Choix du schema pour l'advection
    253 c  dans fichier trac.def ou via INCA
    254 
    255        call iniadvtrac(nq)
    256 c
     240c  Choix du nombre de traceurs et du schema pour l'advection
     241c  dans fichier traceur.def, par default ou via INCA
     242      call infotrac_init
     243
     244c Allocation de la tableau q : champs advectes   
     245      ALLOCATE(q(ip1jmp1,llm,nqtot))
     246
    257247c-----------------------------------------------------------------------
    258248c   Lecture de l'etat initial :
     
    262252      if (read_start) then
    263253#ifdef CPP_IOIPSL
    264          CALL dynetat0("start.nc",nqmx,vcov,ucov,
     254         CALL dynetat0("start.nc",vcov,ucov,
    265255     .              teta,q,masse,ps,phis, time_0)
    266256c       write(73,*) 'ucov',ucov
     
    277267     .                 'AVANT iniacademic AVANT AVANT AVANT AVANT'
    278268      if (.not.read_start) then
    279          CALL iniacademic(nqmx,vcov,ucov,teta,q,masse,ps,phis,time_0)
     269         CALL iniacademic(vcov,ucov,teta,q,masse,ps,phis,time_0)
    280270      endif
    281 
    282271
    283272c-----------------------------------------------------------------------
     
    414403
    415404#ifdef CPP_IOIPSL
    416       CALL dynredem0_p("restart.nc", day_end, phis, nqmx)
     405      CALL dynredem0_p("restart.nc", day_end, phis)
    417406
    418407      ecripar = .TRUE.
     
    423412      t_wrt = iecri * daysec
    424413      CALL inithist_p(dynhist_file,day_ref,annee_ref,time_step,
    425      .              t_ops, t_wrt, nqmx, histid, histvid)
     414     .              t_ops, t_wrt, histid, histvid)
    426415
    427416      t_ops = iperiod * time_step
    428417      t_wrt = periodav * daysec
    429418      CALL initdynav_p(dynhistave_file,day_ref,annee_ref,time_step,
    430      .              t_ops, t_wrt, nqmx, histaveid)
     419     .              t_ops, t_wrt, histaveid)
    431420
    432421      dtav = iperiod*dtvr/daysec
     
    455444
    456445c$OMP PARALLEL DEFAULT(SHARED) COPYIN(/temps/,/logic/)
    457       CALL leapfrog_p(ucov,vcov,teta,ps,masse,phis,nq,q,clesphy0,
     446      CALL leapfrog_p(ucov,vcov,teta,ps,masse,phis,q,clesphy0,
    458447     .              time_0)
    459448c$OMP END PARALLEL
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/iniacademic.F

    r1108 r1114  
    44c
    55c
    6       SUBROUTINE iniacademic(nq,vcov,ucov,teta,q,masse,ps,phis,time_0)
     6      SUBROUTINE iniacademic(vcov,ucov,teta,q,masse,ps,phis,time_0)
    77
    88      USE filtreg_mod
     9      USE infotrac, ONLY : nqtot
    910
    1011c%W%    %G%
     
    4849c   ----------
    4950
    50       integer nq
    5151      real time_0
    5252
     
    5454      REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm) ! vents covariants
    5555      REAL teta(ip1jmp1,llm)                 ! temperature potentielle
    56       REAL q(ip1jmp1,llm,nq)               ! champs advectes
     56      REAL q(ip1jmp1,llm,nqtot)              ! champs advectes
    5757      REAL ps(ip1jmp1)                       ! pression  au sol
    5858      REAL masse(ip1jmp1,llm)                ! masse d'air
     
    160160      q(:,:,1   )=1.e-10
    161161      q(:,:,2   )=1.e-15
    162       q(:,:,3:nq)=0.
     162      q(:,:,3:nqtot)=0.
    163163
    164164
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/initdynav_p.F

    r1000 r1114  
    44c
    55c
    6       subroutine initdynav_p(infile,day0,anne0,tstep,t_ops,t_wrt
    7      .                     ,nq,fileid)
     6      subroutine initdynav_p(infile,day0,anne0,tstep,t_ops,t_wrt,fileid)
    87
    98       USE IOIPSL
     
    1110       use Write_field
    1211       use misc_mod
     12       USE infotrac
     13
    1314      implicit none
    1415
     
    3031C      t_ops: frequence de l'operation pour IOIPSL
    3132C      t_wrt: frequence d'ecriture sur le fichier
    32 C      nq: nombre de traceurs
    3333C
    3434C   Sortie:
     
    5050#include "description.h"
    5151#include "serre.h"
    52 #include "advtrac.h"
    5352
    5453C   Arguments
     
    5857      real tstep, t_ops, t_wrt
    5958      integer fileid
    60       integer nq
    6159      integer thoriid, zvertiid
    6260
     
    8280     
    8381      INTEGER :: dynave_domain_id
    84      
    8582     
    8683      if (adjust) return
     
    169166C  Traceurs
    170167C
    171         DO iq=1,nq
     168        DO iq=1,nqtot
    172169          call histdef(fileid, ttext(iq), ttext(iq), '-',
    173170     .             iip1, jjn, thoriid, llm, 1, llm, zvertiid,
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/initfluxsto_p.F

    r1000 r1114  
    33!
    44      subroutine initfluxsto_p
    5      .  (infile,tstep,t_ops,t_wrt,nq,
     5     .  (infile,tstep,t_ops,t_wrt,
    66     .                    fileid,filevid,filedid)
    77
     
    3030C      t_ops: frequence de l'operation pour IOIPSL
    3131C      t_wrt: frequence d'ecriture sur le fichier
    32 C      nq: nombre de traceurs
    3332C
    3433C   Sortie:
     
    5857      real tstep, t_ops, t_wrt
    5958      integer fileid, filevid,filedid
    60       integer nq,ndex(1)
     59      integer ndex(1)
    6160      real nivd(1)
    6261
     
    8786      INTEGER :: dynu_domain_id
    8887      INTEGER :: dynv_domain_id
    89 
    9088
    9189C
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/inithist_p.F

    r1000 r1114  
    22! $Header$
    33!
    4       subroutine inithist_p(infile,day0,anne0,tstep,t_ops,t_wrt,nq,
     4      subroutine inithist_p(infile,day0,anne0,tstep,t_ops,t_wrt,
    55     .                      fileid,filevid)
    66
     
    99       use Write_field
    1010       use misc_mod
     11       USE infotrac
    1112
    1213      implicit none
     
    2930C      t_ops: frequence de l'operation pour IOIPSL
    3031C      t_wrt: frequence d'ecriture sur le fichier
    31 C      nq: nombre de traceurs
    3232C
    3333C   Sortie:
     
    5050#include "description.h"
    5151#include "serre.h"
    52 #include "advtrac.h"
    5352
    5453C   Arguments
     
    5857      real tstep, t_ops, t_wrt
    5958      integer fileid, filevid
    60       integer nq
    6159
    6260C   Variables locales
     
    8381      INTEGER :: dynu_domain_id
    8482      INTEGER :: dynv_domain_id
     83
    8584C
    8685C  Initialisations
     
    217216C  Traceurs
    218217C
    219         DO iq=1,nq
     218        DO iq=1,nqtot
    220219          call histdef(fileid, ttext(iq),  ttext(iq), '-',
    221220     .             iip1, jjn, thoriid, llm, 1, llm, zvertiid,
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/integrd_p.F

    r985 r1114  
    3232#include "temps.h"
    3333#include "serre.h"
    34 #include "advtrac.h"
    3534
    3635c   Arguments:
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/leapfrog_p.F

    r1000 r1114  
    99#define CPP_IOIPSL
    1010
    11       SUBROUTINE leapfrog_p(ucov,vcov,teta,ps,masse,phis,nq,q,clesphy0,
     11      SUBROUTINE leapfrog_p(ucov,vcov,teta,ps,masse,phis,q,clesphy0,
    1212     &                    time_0)
    1313
     
    2121       USE vampir
    2222       USE timer_filtre, ONLY : print_filtre_timer
     23       USE infotrac
    2324
    2425      IMPLICIT NONE
     
    6970#include "com_io_dyn.h"
    7071#include "iniprint.h"
    71 
    72 c#include "tracstoke.h"
    73 
    7472#include "academic.h"
    75 !#include "clesphys.h"
    76 #include "advtrac.h"
    7773     
    78       integer nq
    79 
    8074      INTEGER         longcles
    8175      PARAMETER     ( longcles = 20 )
     
    8882      REAL :: vcov(ip1jm,llm),ucov(ip1jmp1,llm) ! vents covariants
    8983      REAL :: teta(ip1jmp1,llm)                 ! temperature potentielle
    90       REAL :: q(ip1jmp1,llm,nqmx)               ! champs advectes
     84      REAL :: q(ip1jmp1,llm,nqtot)              ! champs advectes
    9185      REAL :: ps(ip1jmp1)                       ! pression  au sol
    9286      REAL,SAVE :: p (ip1jmp1,llmp1  )               ! pression aux interfac.des couches
     
    109103c   tendances dynamiques
    110104      REAL,SAVE :: dv(ip1jm,llm),du(ip1jmp1,llm)
    111       REAL,SAVE :: dteta(ip1jmp1,llm),dq(ip1jmp1,llm,nqmx),dp(ip1jmp1)
     105      REAL,SAVE :: dteta(ip1jmp1,llm),dp(ip1jmp1)
     106      REAL,DIMENSION(:,:,:), ALLOCATABLE, SAVE :: dq
    112107
    113108c   tendances de la dissipation
     
    118113      REAL,SAVE :: dvfi(ip1jm,llm),dufi(ip1jmp1,llm)
    119114      REAL,SAVE :: dtetafi(ip1jmp1,llm)
    120       REAL,SAVE :: dqfi(ip1jmp1,llm,nqmx),dpfi(ip1jmp1)
     115      REAL,SAVE :: dpfi(ip1jmp1)
     116      REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: dqfi
    121117
    122118c   variables pour le fichier histoire
     
    186182      type(Request) :: Request_physic
    187183      REAL,SAVE :: dvfi_tmp(iip1,llm),dufi_tmp(iip1,llm)
    188       REAL,SAVE :: dtetafi_tmp(iip1,llm),dqfi_tmp(iip1,llm,nqmx)
     184      REAL,SAVE :: dtetafi_tmp(iip1,llm)
     185      REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: dqfi_tmp
    189186      REAL,SAVE :: dpfi_tmp(iip1)
    190187
     
    195192      INTEGER :: var_time
    196193      LOGICAL :: ok_start_timer=.FALSE.
     194      LOGICAL, SAVE :: firstcall=.TRUE.
    197195
    198196c$OMP MASTER
     
    208206      itaufin   = nday*day_step
    209207      itaufinp1 = itaufin +1
    210 
     208      modname="leapfrog_p"
    211209
    212210      itau = 0
     
    217215          iday = iday+1
    218216         ENDIF
     217
     218c Allocate variables depending on dynamic variable nqtot
     219c$OMP MASTER
     220         IF (firstcall) THEN
     221            firstcall=.FALSE.
     222            ALLOCATE(dq(ip1jmp1,llm,nqtot))
     223            ALLOCATE(dqfi(ip1jmp1,llm,nqtot))
     224            ALLOCATE(dqfi_tmp(iip1,llm,nqtot))
     225         END IF
     226c$OMP END MASTER     
     227c$OMP BARRIER
    219228
    220229c-----------------------------------------------------------------------
     
    455464     &                                jj_Nb_caldyn,0,0,TestRequest)
    456465 
    457         do j=1,nqmx
     466        do j=1,nqtot
    458467         call Register_SwapFieldHallo(q(1,1,j),q(1,1,j),ip1jmp1,llm,
    459468     &                                jj_nb_caldyn,0,0,TestRequest)
     
    490499       call Register_Hallo(p,ip1jmp1,llmp1,1,1,1,1,TestRequest)
    491500       
    492 c       do j=1,nqmx
     501c       do j=1,nqtot
    493502c         call Register_Hallo(q(1,1,j),ip1jmp1,llm,1,1,1,1,
    494503c     *                       TestRequest)
     
    516525        call WriteField_p('pkf',reshape(pkf,(/iip1,jmp1,llm/)))
    517526        call WriteField_p('phis',reshape(phis,(/iip1,jmp1/)))
    518         do j=1,nqmx
     527        do j=1,nqtot
    519528          call WriteField_p('q'//trim(int2str(j)),
    520529     .                reshape(q(:,:,j),(/iip1,jmp1,llm/)))
     
    608617c$OMP BARRIER
    609618!       CALL FTRACE_REGION_BEGIN("integrd")
     619
    610620       CALL integrd_p ( 2,vcovm1,ucovm1,tetam1,psm1,massem1 ,
    611621     $         dv,du,dteta,dq,dp,vcov,ucov,teta,q,ps,masse,phis ,
     
    625635c
    626636c      call WriteField_p('ps',reshape(ps,(/iip1,jmp1/)))
    627 c      do j=1,nqmx
     637c      do j=1,nqtot
    628638c        call WriteField_p('q'//trim(int2str(j)),
    629639c     .                reshape(q(:,:,j),(/iip1,jmp1,llm/)))
     
    669679
    670680c$OMP BARRIER
    671 
    672681         CALL exner_hyb_p(  ip1jmp1, ps, p,alpha,beta,pks, pk, pkf )
    673682c$OMP BARRIER
     
    725734       
    726735c        call SetDistrib(jj_nb_vanleer)
    727         do j=1,nqmx
     736        do j=1,nqtot
    728737 
    729738          call Register_SwapFieldHallo(q(1,1,j),q(1,1,j),ip1jmp1,llm,
     
    756765cc$OMP BARRIER
    757766!        CALL FTRACE_REGION_BEGIN("calfis")
    758         CALL calfis_p( nq, lafin ,rdayvrai,time  ,
     767        CALL calfis_p(lafin ,rdayvrai,time  ,
    759768     $               ucov,vcov,teta,q,masse,ps,p,pk,phis,phi ,
    760769     $               du,dv,dteta,dq,
     
    799808     *                      1,0,0,1,Request_physic)
    800809
    801         do j=1,nqmx
     810        do j=1,nqtot
    802811          call Register_Hallo(dqfi(1,1,j),ip1jmp1,llm,
    803812     *                        1,0,0,1,Request_physic)
     
    842851cc$OMP END MASTER
    843852c     
    844 c      do j=1,nqmx
     853c      do j=1,nqtot
    845854c        call WriteField_p('dqfi'//trim(int2str(j)),
    846855c     .                reshape(dqfi(:,:,j),(/iip1,jmp1,llm/)))
     
    853862         ENDIF
    854863       
    855           CALL addfi_p( nqmx, dtphys, leapf, forward   ,
     864          CALL addfi_p( dtphys, leapf, forward   ,
    856865     $                  ucov, vcov, teta , q   ,ps ,
    857866     $                 dufi, dvfi, dtetafi , dqfi ,dpfi  )
     
    889898     *                               jj_Nb_caldyn,Request_physic)
    890899
    891         do j=1,nqmx
     900        do j=1,nqtot
    892901       
    893902          call Register_SwapField(q(1,1,j),q(1,1,j),ip1jmp1,llm,
     
    954963        CALL pression_p ( ip1jmp1, ap, bp, ps, p                  )
    955964c$OMP BARRIER
    956 
    957 
    958965        CALL exner_hyb_p( ip1jmp1, ps, p,alpha,beta, pks, pk, pkf )
    959966c$OMP BARRIER
     
    12911298c$OMP BARRIER
    12921299c$OMP MASTER
    1293               CALL writedynav_p(histaveid, nqmx, itau,vcov ,
     1300              CALL writedynav_p(histaveid, itau,vcov ,
    12941301     ,                          ucov,teta,pk,phi,q,masse,ps,phis)
    12951302c$OMP END MASTER
     
    13391346#ifdef CPP_IOIPSL
    13401347 
    1341         CALL writehist_p(histid,histvid, nqmx,itau,vcov,
     1348        CALL writehist_p(histid,histvid, itau,vcov,
    13421349     s                       ucov,teta,phi,q,masse,ps,phis)
    13431350
     
    13541361
    13551362       CALL dynredem1_p("restart.nc",0.0,
    1356      ,                     vcov,ucov,teta,q,nqmx,masse,ps)
     1363     ,                     vcov,ucov,teta,q,masse,ps)
    13571364c#endif
    13581365
     
    14371444c$OMP BARRIER
    14381445c$OMP MASTER
    1439               CALL writedynav_p(histaveid, nqmx, itau,vcov ,
     1446              CALL writedynav_p(histaveid, itau,vcov ,
    14401447     ,                          ucov,teta,pk,phi,q,masse,ps,phis)
    14411448               call bilan_dyn_p (2,dtvr*iperiod,dtvr*day_step*periodav,
     
    14801487#ifdef CPP_IOIPSL
    14811488
    1482        CALL writehist_p( histid, histvid, nqmx, itau,vcov ,
     1489       CALL writehist_p( histid, histvid, itau,vcov ,
    14831490     ,                           ucov,teta,phi,q,masse,ps,phis)
    14841491c#else
     
    14871494c      call Gather_Field(teta,ip1jmp1,llm,0)
    14881495c      call Gather_Field(ps,ip1jmp1,1,0)
    1489 c      do iq=1,nqmx
     1496c      do iq=1,nqtot
    14901497c        call Gather_Field(q(1,1,iq),ip1jmp1,llm,0)
    14911498c      enddo
     
    15021509c$OMP MASTER
    15031510                   CALL dynredem1_p("restart.nc",0.0,
    1504      .                               vcov,ucov,teta,q,nqmx,masse,ps)
     1511     .                               vcov,ucov,teta,q,masse,ps)
    15051512c$OMP END MASTER
    15061513                 ENDIF
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/test_period.F

    r774 r1114  
    33!
    44      SUBROUTINE test_period ( ucov, vcov, teta, q, p, phis )
     5      USE infotrac, ONLY : nqtot
    56c
    67c     Auteur : P. Le Van 
     
    1718c
    1819      REAL ucov(ip1jmp1,llm), vcov(ip1jm,llm), teta(ip1jmp1,llm) ,
    19      ,      q(ip1jmp1,llm,nqmx), p(ip1jmp1,llmp1), phis(ip1jmp1)
     20     ,      q(ip1jmp1,llm,nqtot), p(ip1jmp1,llmp1), phis(ip1jmp1)
    2021c
    2122c   .....  Variables  locales  .....
     
    6869     
    6970c
    70       DO nq =1, nqmx
     71      DO nq =1, nqtot
    7172        DO l =1, llm
    7273          DO ij = 1, ip1jmp1, iip1
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/vlspltgen_p.F

    r985 r1114  
    2626      USE Write_Field_p
    2727      USE VAMPIR
     28      USE infotrac, ONLY : nqtot
    2829      IMPLICIT NONE
    2930
     
    3839c   Arguments:
    3940c   ----------
    40       INTEGER iadv(nqmx)
     41      INTEGER iadv(nqtot)
    4142      REAL masse(ip1jmp1,llm),pente_max
    4243      REAL pbaru( ip1jmp1,llm ),pbarv( ip1jm,llm)
    43       REAL q(ip1jmp1,llm,nqmx)
     44      REAL q(ip1jmp1,llm,nqtot)
    4445      REAL w(ip1jmp1,llm),pdt
    4546      REAL p(ip1jmp1,llmp1),teta(ip1jmp1,llm),pk(ip1jmp1,llm)
     
    5152c
    5253      REAL,SAVE :: qsat(ip1jmp1,llm)
    53       REAL,SAVE :: zm(ip1jmp1,llm,nqmx)
     54      REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: zm
    5455      REAL,SAVE :: mu(ip1jmp1,llm)
    5556      REAL,SAVE :: mv(ip1jm,llm)
    5657      REAL,SAVE :: mw(ip1jmp1,llm+1)
    57       REAL,SAVE :: zq(ip1jmp1,llm,nqmx)
     58      REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: zq
    5859      REAL zzpbar, zzw
    5960
     
    6768      REAL tempe(ip1jmp1)
    6869      INTEGER ijb,ije,iq
     70      LOGICAL, SAVE :: firstcall=.TRUE.
     71
    6972      type(request) :: MyRequest1
    7073      type(request) :: MyRequest2
     
    8386        retv = 0.6077667
    8487        rtt  = 273.16
     88
     89c Allocate variables depending on dynamic variable nqtot
     90         IF (firstcall) THEN
     91            firstcall=.FALSE.
     92            ALLOCATE(zm(ip1jmp1,llm,nqtot))
     93            ALLOCATE(zq(ip1jmp1,llm,nqtot))
     94         END IF
    8595
    8696c-- Calcul de Qsat en chaque point
     
    164174       ije=ij_end
    165175
    166       DO iq=1,nqmx
     176      DO iq=1,nqtot
    167177c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    168178        DO l=1,llm
     
    175185
    176186c$OMP BARRIER           
    177       DO iq=1,nqmx
     187      DO iq=1,nqtot
    178188
    179189        if(iadv(iq) == 0) then
     
    245255c$OMP END MASTER       
    246256c$OMP BARRIER
    247       do iq=1,nqmx
     257      do iq=1,nqtot
    248258
    249259        if(iadv(iq) == 0) then
     
    285295c$OMP BARRIER
    286296 
    287       do iq=1,nqmx
     297      do iq=1,nqtot
    288298
    289299        if(iadv(iq) == 0) then
     
    308318
    309319
    310       do iq=1,nqmx
     320      do iq=1,nqtot
    311321
    312322        if(iadv(iq) == 0) then
     
    359369
    360370c$OMP BARRIER
    361       do iq=1,nqmx
     371      do iq=1,nqtot
    362372
    363373        if(iadv(iq) == 0) then
     
    398408
    399409
    400       do iq=1,nqmx
     410      do iq=1,nqtot
    401411
    402412        if(iadv(iq) == 0) then
     
    420430       enddo
    421431
    422       do iq=1,nqmx
     432      do iq=1,nqtot
    423433
    424434        if(iadv(iq) == 0) then
     
    450460
    451461
    452       DO iq=1,nqmx
     462      DO iq=1,nqtot
    453463
    454464c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)         
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/write_grads_dyn.h

    r774 r1114  
    2424      string10='teta'
    2525      CALL wrgrads(1,llm,teta,string10,string10)
    26       do iq=1,nqmx
     26      do iq=1,nqtot
    2727         string10='q'
    2828         write(string10(2:2),'(i1)') iq
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/writedynav_p.F

    r1000 r1114  
    22! $Header$
    33!
    4       subroutine writedynav_p( histid, nq, time, vcov,
     4      subroutine writedynav_p( histid, time, vcov,
    55     ,                          ucov,teta,ppk,phi,q,masse,ps,phis)
    66
     
    88      USE parallel
    99      USE misc_mod
     10      USE infotrac
    1011      implicit none
    1112
     
    1718C   Entree:
    1819C      histid: ID du fichier histoire
    19 C      nqmx: nombre maxi de traceurs
    2020C      time: temps de l'ecriture
    2121C      vcov: vents v covariants
     
    4747#include "description.h"
    4848#include "serre.h"
    49 #include "advtrac.h"
    5049
    5150C
     
    5352C
    5453
    55       INTEGER histid, nq
     54      INTEGER histid
    5655      REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm)
    5756      REAL teta(ip1jmp1,llm),phi(ip1jmp1,llm),ppk(ip1jmp1,llm)                 
    5857      REAL ps(ip1jmp1),masse(ip1jmp1,llm)                   
    5958      REAL phis(ip1jmp1)                 
    60       REAL q(ip1jmp1,llm,nq)
     59      REAL q(ip1jmp1,llm,nqtot)
    6160      integer time
    6261
     
    139138C  Traceurs
    140139C
    141         DO iq=1,nq
     140        DO iq=1,nqtot
    142141          call histwrite(histid, ttext(iq), itau_w, q(ijb:ije,:,iq),
    143142     .                   iip1*jjn*llm, ndex3d)
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/writehist_p.F

    r1000 r1114  
    22! $Header$
    33!
    4       subroutine writehist_p( histid, histvid, nq, time, vcov,
     4      subroutine writehist_p( histid, histvid, time, vcov,
    55     ,                          ucov,teta,phi,q,masse,ps,phis)
    66
     
    88      USE parallel
    99      USE misc_mod
     10      USE infotrac
    1011      implicit none
    1112
     
    1819C      histid: ID du fichier histoire
    1920C      histvid:ID du fichier histoire pour les vents V (appele a disparaitre)
    20 C      nqmx: nombre maxi de traceurs
    2121C      time: temps de l'ecriture
    2222C      vcov: vents v covariants
     
    4848#include "description.h"
    4949#include "serre.h"
    50 #include "advtrac.h"
    5150
    5251C
     
    5453C
    5554
    56       INTEGER histid, nq, histvid
     55      INTEGER histid, histvid
    5756      REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm)
    5857      REAL teta(ip1jmp1,llm),phi(ip1jmp1,llm)                   
    5958      REAL ps(ip1jmp1),masse(ip1jmp1,llm)                   
    6059      REAL phis(ip1jmp1)                 
    61       REAL q(ip1jmp1,llm,nq)
     60      REAL q(ip1jmp1,llm,nqtot)
    6261      integer time
    6362
     
    119118C  Traceurs
    120119C
    121         DO iq=1,nq
     120        DO iq=1,nqtot
    122121          call histwrite(histid, ttext(iq), itau_w, q(ijb:ije,:,iq),
    123122     .                   iip1*jjn*llm, ndexu)
  • LMDZ4/branches/LMDZ4-dev/libf/grid/dimension/makdim

    r795 r1114  
    1 nqmx=$1
    2 shift
    31for i in $* ; do
    42   list=$list.$i
    53done
    6 fichdim=dimensions${list}.t${nqmx}
     4fichdim=dimensions${list}
    75
    86if [ ! -f $fichdim ] ; then
     
    5351!   dimensions.h contient les dimensions du modele
    5452!   ndm est tel que iim=2**ndm
    55 !   nqmx est la dimension de la variable traceur q
    5653!-----------------------------------------------------------------------
    5754
     
    5956
    6057      PARAMETER (iim= $im,jjm=$jm,llm=$lm,ndm=$ndm)
    61 
    62       integer nqmx
    63       parameter (nqmx=$nqmx)
    6458
    6559!-----------------------------------------------------------------------
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/concvl.F

    r987 r1114  
    2525c
    2626      USE dimphy
     27      USE infotrac, ONLY : nbtr
    2728      IMPLICIT none
    2829c======================================================================
     
    6768c
    6869#include "dimensions.h"
    69 cccccc#include "dimphy.h"
    70 c
    71       integer NTRAC
    72       PARAMETER (NTRAC=nqmx-2)
    7370c
    7471       INTEGER iflag_con,iflag_clos
     
    7774       REAL t(klon,klev),q(klon,klev),u(klon,klev),v(klon,klev)
    7875       REAL t_wake(klon,klev),q_wake(klon,klev)
    79        REAL tra(klon,klev,ntrac)
     76       REAL tra(klon,klev,nbtr)
    8077       INTEGER ntra
    8178       REAL work1(klon,klev),work2(klon,klev),ptop2(klon)
     
    8582       REAL d_t(klon,klev),d_q(klon,klev),d_u(klon,klev),d_v(klon,klev)
    8683       REAL dd_t(klon,klev),dd_q(klon,klev)
    87        REAL d_tra(klon,klev,ntrac)
     84       REAL d_tra(klon,klev,nbtr)
    8885       REAL rain(klon),snow(klon)
    8986c
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/conema3.F

    r766 r1114  
    1010
    1111      USE dimphy
     12      USE infotrac, ONLY : nbtr
    1213      IMPLICIT none
    1314c======================================================================
     
    5556c
    5657#include "dimensions.h"
    57 cym#include "dimphy.h"
    5858#include "conema3.h"
    5959      INTEGER i, l,m,itra
    60       INTEGER ntra,ntrac !number of tracers; if no tracer transport
     60      INTEGER ntra       ! if no tracer transport
    6161                         ! is needed, set ntra = 1 (or 0)
    62       PARAMETER (ntrac=nqmx-2)
    6362      REAL dtime
    6463c
     
    9796      REAL,ALLOCATABLE,SAVE :: em_qs(:)
    9897c$OMP THREADPRIVATE(em_qs) 
    99 cym      REAL em_u(klev), em_v(klev), em_tra(klev,ntrac)
     98cym      REAL em_u(klev), em_v(klev), em_tra(klev,nbtr)
    10099      REAL,ALLOCATABLE,SAVE :: em_u(:),em_v(:),em_tra(:,:)
    101100c$OMP THREADPRIVATE(em_u,em_v,em_tra)     
     
    111110      REAL,ALLOCATABLE,SAVE :: em_d_t(:),em_d_q(:)
    112111c$OMP THREADPRIVATE(em_d_t,em_d_q)
    113 cym      REAL em_d_u(klev), em_d_v(klev), em_d_tra(klev,ntrac)
     112cym      REAL em_d_u(klev), em_d_v(klev), em_d_tra(klev,nbtr)
    114113      REAL,ALLOCATABLE,SAVE ::em_d_u(:),em_d_v(:),em_d_tra(:,:)
    115114c$OMP THREADPRIVATE(em_d_u,em_d_v,em_d_tra)     
     
    188187        allocate(em_q(klev))
    189188        allocate(em_qs(klev))
    190         allocate(em_u(klev), em_v(klev), em_tra(klev,ntrac))
     189        allocate(em_u(klev), em_v(klev), em_tra(klev,nbtr))
    191190        allocate(em_ph(klev+1), em_p(klev))
    192191        allocate(em_work1(klev), em_work2(klev))
    193192        allocate(em_d_t(klev), em_d_q(klev))
    194         allocate(em_d_u(klev), em_d_v(klev), em_d_tra(klev,ntrac))
     193        allocate(em_d_u(klev), em_d_v(klev), em_d_tra(klev,nbtr))
    195194        allocate(em_upwd(klev), em_dnwd(klev), em_dnwdbis(klev))
    196195        allocate(emmip(klev))
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/conemav.F

    r766 r1114  
    1010c
    1111      USE dimphy
     12      USE infotrac, ONLY : nbtr
    1213      IMPLICIT none
    1314c======================================================================
     
    4445c
    4546#include "dimensions.h"
    46 cym#include "dimphy.h"
    4747c
    48       integer NTRAC
    49       PARAMETER (NTRAC=nqmx-2)
    5048c
    5149       REAL dtime, paprs(klon,klev+1),pplay(klon,klev)
    5250       REAL t(klon,klev),q(klon,klev),u(klon,klev),v(klon,klev)
    53        REAL tra(klon,klev,ntrac)
     51       REAL tra(klon,klev,nbtr)
    5452       INTEGER ntra
    5553       REAL work1(klon,klev),work2(klon,klev)
    5654c
    5755       REAL d_t(klon,klev),d_q(klon,klev),d_u(klon,klev),d_v(klon,klev)
    58        REAL d_tra(klon,klev,ntrac)
     56       REAL d_tra(klon,klev,nbtr)
    5957       REAL rain(klon),snow(klon)
    6058c
     
    7472       INTEGER i,k,itra
    7573       REAL qs(klon,klev)
    76 cym       REAL cbmf(klon)
    77 cym       SAVE cbmf
    7874       REAL,ALLOCATABLE,SAVE :: cbmf(:)
    7975c$OMP THREADPRIVATE(cbmf)
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/convect3.F

    r766 r1114  
    1919c#################################################################
    2020      USE dimphy
     21      USE infotrac, ONLY : NBTR
    2122
    2223#include "dimensions.h"
    23 cym#include "dimphy.h"
     24      INTEGER NA
    2425      PARAMETER (NA=60)
    2526
    26       integer NTRAC
    27       PARAMETER (NTRAC=nqmx-2)
    2827      REAL DELTAC              ! cld
    2928      PARAMETER (DELTAC=0.01)  ! cld
    3029
    3130      INTEGER NENT(NA)
     31      INTEGER ND, NDP1, NL, NTRA, IFLAG, icb, inb
     32      REAL DTIME, EPMAX, DELT, PRECIP, CAPE
     33      REAL DPLCLDT, DPLCLDR
    3234      REAL T1(ND),R1(ND),RS(ND),U(ND),V(ND),TRA(ND,NTRA)
    3335      REAL P(ND),PH(NDP1)
    3436      REAL FT(ND),FR(ND),FU(ND),FV(ND),FTRA(ND,NTRA)
    3537      REAL SIG(ND),W0(ND)
    36       REAL UENT(NA,NA),VENT(NA,NA),TRAENT(NA,NA,NTRAC),TRATM(NA)
    37       REAL UP(NA),VP(NA),TRAP(NA,NTRAC)
     38      REAL UENT(NA,NA),VENT(NA,NA),TRAENT(NA,NA,NBTR),TRATM(NA)
     39      REAL UP(NA),VP(NA),TRAP(NA,NBTR)
    3840      REAL M(NA),MP(NA),MENT(NA,NA),QENT(NA,NA),ELIJ(NA,NA)
    3941      REAL SIJ(NA,NA),TVP(NA),TV(NA),WATER(NA)
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/dimphy.F90

    r776 r1114  
    55  INTEGER,SAVE :: kfdia
    66  INTEGER,SAVE :: kidia
    7   INTEGER,SAVE :: nbtr
    87  INTEGER,SAVE :: klev
    98  INTEGER,SAVE :: klevp1
     
    1716CONTAINS
    1817 
    19   SUBROUTINE Init_dimphy(klon0,klev0,nbtr0)
     18  SUBROUTINE Init_dimphy(klon0,klev0)
    2019  IMPLICIT NONE
    2120 
    2221    INTEGER, INTENT(in) :: klon0
    2322    INTEGER, INTENT(in) :: klev0
    24     INTEGER, INTENT(in) :: nbtr0
    2523   
    2624    klon=klon0
     
    3129!$OMP MASTER
    3230    klev=klev0
    33     nbtr=nbtr0
    3431    klevp1=klev+1
    3532    klevm1=klev-1
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/ini_histrac.h

    r1030 r1114  
    2323     .                iim,jj_nb,nhori, 1,1,1, -99, 32,
    2424     .                "once",  zsto,zout)
    25          DO it=1,nqmax
     25         DO it=1,nbtr
    2626C champ 2D
    2727         iq=it+2
    2828         iiq=niadv(iq)
    29          CALL histdef(nid_tra, tnom(iq), ttext(iiq), "U/kga",
     29         CALL histdef(nid_tra, tname(iiq), ttext(iiq), "U/kga",
    3030     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    3131     .                "ave(X)", zsto,zout)
    3232         if (lessivage) THEN
    33          CALL histdef(nid_tra, "fl"//tnom(iq),"Flux "//ttext(iiq),
     33         CALL histdef(nid_tra, "fl"//tname(iiq),"Flux "//ttext(iiq),
    3434     .              "U/m2/s",iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    3535     .              "ave(X)", zsto,zout)
     
    3737
    3838c---Ajout Olivia
    39          CALL histdef(nid_tra, "d_tr_th_"//tnom(iq),
     39         CALL histdef(nid_tra, "d_tr_th_"//tname(iiq),
    4040     .                "tendance thermique"// ttext(iiq), "?",
    4141     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
     
    4343c
    4444         if(iflag_con.GE.2) then
    45          CALL histdef(nid_tra, "d_tr_cv_"//tnom(iq),
     45         CALL histdef(nid_tra, "d_tr_cv_"//tname(iiq),
    4646     .                "tendance convection"// ttext(iiq), "?",
    4747     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    4848     .                "ave(X)", zsto,zout)
    4949             endif !(iflag_con.GE.2) then
    50          CALL histdef(nid_tra, "d_tr_cl_"//tnom(iq),
     50         CALL histdef(nid_tra, "d_tr_cl_"//tname(iiq),
    5151     .                "tendance couche limite"// ttext(iiq), "?",
    5252     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/init_phys_lmdz.F90

    r775 r1114  
    22!$Header$
    33!
    4 SUBROUTINE Init_Phys_lmdz(iim,jjp1,llm,nbtr,nb_proc,distrib)
     4SUBROUTINE Init_Phys_lmdz(iim,jjp1,llm,nb_proc,distrib)
    55  USE mod_phys_lmdz_para
    66  USE mod_grid_phy_lmdz
     
    1111    INTEGER,INTENT(in) :: jjp1
    1212    INTEGER,INTENT(in) :: llm
    13     INTEGER,INTENT(in) :: nbtr
    1413    INTEGER,INTENT(in) :: nb_proc
    1514    INTEGER,INTENT(in) :: distrib(0:nb_proc-1)
     
    1918    CALL Init_phys_lmdz_para(iim,jjp1,nb_proc,distrib)
    2019!$OMP PARALLEL
    21     CALL Init_dimphy(klon_omp,nbp_lev,nbtr)
     20    CALL Init_dimphy(klon_omp,nbp_lev)
    2221!$OMP END PARALLEL
    2322 
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/initrrnpb.F

    r766 r1114  
    55     .                   ,vdeptr,scavtr)
    66      USE dimphy
     7      USE infotrac, ONLY : nbtr
    78      IMPLICIT none
    89c======================================================================
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/phys_local_var_mod.F90

    r1054 r1114  
    7171SUBROUTINE phys_local_var_init
    7272use dimphy
     73use infotrac, ONLY : nbtr
    7374IMPLICIT NONE
    7475#include "indicesol.h"
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/phys_output_mod.F90

    r1095 r1114  
    430430!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    431431 
    432   SUBROUTINE phys_output_open(jjmp1,nqmax,nlevSTD,clevSTD,nbteta, &
     432  SUBROUTINE phys_output_open(jjmp1,nlevSTD,clevSTD,nbteta, &
    433433                              ctetaSTD,dtime, presnivs, ok_veget, &
    434434                              ocean, iflag_pbl,ok_mensuel,ok_journe, &
     
    437437  USE iophy
    438438  USE dimphy
     439  USE infotrac
    439440  USE ioipsl
    440441  USE mod_phys_lmdz_para
     
    444445  include "temps.h"
    445446  include "indicesol.h"
    446   include "advtrac.h"
    447447  include "clesphys.h"
    448448  include "thermcell.h"
    449449
    450   integer                               :: jjmp1, nqmax
     450  integer                               :: jjmp1
    451451  integer                               :: nbteta, nlevSTD, radpas
    452452  logical                               :: ok_mensuel, ok_journe, ok_hf, ok_instan
     
    907907     ENDIF
    908908
    909       if (nqmax>=3) THEN
    910 !Attention    DO iq=3,nqmax
     909      if (nqtot>=3) THEN
     910!Attention    DO iq=3,nqtot
    911911    DO iq=3,4 
    912912       iiq=niadv(iq)
     
    937937       include "temps.h"
    938938       include "indicesol.h"
    939        include "advtrac.h"
    940939       include "clesphys.h"
    941940
     
    968967       include "temps.h"
    969968       include "indicesol.h"
    970        include "advtrac.h"
    971969       include "clesphys.h"
    972970
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/phys_output_write.h

    r1095 r1114  
    11921192
    11931193!       IF (o_trac%flag(iff)<=lev_files(iff)) THEN
    1194          if (nqmax.GE.3) THEN
    1195 !           DO iq=3,nqmax
     1194         if (nqtot.GE.3) THEN
     1195!           DO iq=3,nqtot
    11961196           DO iq=3,4
    11971197       IF (o_trac(iq-2)%flag(iff)<=lev_files(iff)) THEN
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/physiq.F

    r1102 r1114  
    22c#define IO_DEBUG
    33
    4       SUBROUTINE physiq (nlon,nlev,nqmax,
     4      SUBROUTINE physiq (nlon,nlev,
    55     .            debut,lafin,rjourvrai,gmtime,pdtphys,
    66     .            paprs,pplay,pphi,pphis,presnivs,clesphy0,
     
    1515      USE write_field_phy
    1616      USE dimphy
     17      USE infotrac
    1718      USE mod_grid_phy_lmdz
    1819      USE mod_phys_lmdz_para
     
    5051c nlon----input-I-nombre de points horizontaux
    5152c nlev----input-I-nombre de couches verticales
    52 c nqmax---input-I-nombre de traceurs (y compris vapeur d'eau) = 1
    5353c debut---input-L-variable logique indiquant le premier passage
    5454c lafin---input-L-variable logique indiquant le dernier passage
     
    8787#include "clesphys.h"
    8888#include "control.h"
    89 !#include "logic.h"
    9089#include "temps.h"
    91 cym#include "comgeomphy.h"
    92 #include "advtrac.h"
    9390#include "iniprint.h"
    9491#include "thermcell.h"
     
    184181      INTEGER nlon
    185182      INTEGER nlev
    186       INTEGER nqmax
    187183      REAL rjourvrai
    188184      REAL gmtime
     
    200196      REAL v(klon,klev)
    201197      REAL t(klon,klev),theta(klon,klev)
    202       REAL qx(klon,klev,nqmax)
     198      REAL qx(klon,klev,nqtot)
    203199      REAL flxmass_w(klon,klev)
    204200      REAL omega(klon,klev) ! vitesse verticale en Pa/s
     
    206202      REAL d_v(klon,klev)
    207203      REAL d_t(klon,klev)
    208       REAL d_qx(klon,klev,nqmax)
     204      REAL d_qx(klon,klev,nqtot)
    209205      REAL d_ps(klon)
    210206      real da(klon,klev),phi(klon,klev,klev),mp(klon,klev)
     
    11101106         write(lunout,*) 'DEBUT DE PHYSIQ !!!!!!!!!!!!!!!!!!!!'
    11111107         write(lunout,*)
    1112      s 'nlon,nlev,nqmax,debut,lafin,rjourvrai,gmtime,pdtphys'
     1108     s 'nlon,nlev,nqtot,debut,lafin,rjourvrai,gmtime,pdtphys'
    11131109         write(lunout,*)
    1114      s  nlon,nlev,nqmax,debut,lafin,rjourvrai,gmtime,pdtphys
     1110     s  nlon,nlev,nqtot,debut,lafin,rjourvrai,gmtime,pdtphys
    11151111
    11161112         write(lunout,*) 'papers, play, phi, u, v, t, omega'
     
    11701166      END IF
    11711167      ok_sync=.TRUE.
    1172       IF (nqmax .LT. 2) THEN
    1173          abort_message = 'eaux vapeur et liquide sont indispensables'
    1174          CALL abort_gcm (modname,abort_message,1)
    1175       ENDIF
     1168
    11761169      IF (debut) THEN
    11771170         CALL suphel ! initialiser constantes et parametres phys.
     
    15001493
    15011494c$OMP MASTER
    1502        call phys_output_open(jjmp1,nqmax,nlevSTD,clevSTD,nbteta,
     1495       call phys_output_open(jjmp1,nlevSTD,clevSTD,nbteta,
    15031496     &                        ctetaSTD,dtime,presnivs,ok_veget,
    15041497     &                        type_ocean,iflag_pbl,ok_mensuel,ok_journe,
     
    15541547     $                   calday,
    15551548     $                   klon,
    1556      $                   nqmax,
     1549     $                   nqtot,
    15571550     $                   pdtphys,
    15581551     $                   annee_ref,
     
    16101603      ENDDO
    16111604      ENDDO
    1612       DO iq = 1, nqmax
     1605      DO iq = 1, nqtot
    16131606      DO k = 1, klev
    16141607      DO i = 1, klon
     
    16331626      ENDDO
    16341627      ENDDO
    1635       IF (nqmax.GE.3) THEN
    1636       DO iq = 3, nqmax
     1628      IF (nqtot.GE.3) THEN
     1629      DO iq = 3, nqtot
    16371630      DO  k = 1, klev
    16381631      DO  i = 1, klon
     
    31633156     I                   debut,
    31643157     I                   lafin,
    3165      I                   nqmax-2,
    31663158     I                   nlon,
    31673159     I                   nlev,
     
    33863378      ENDDO
    33873379c
    3388       IF (nqmax.GE.3) THEN
    3389       DO iq = 3, nqmax
     3380      IF (nqtot.GE.3) THEN
     3381      DO iq = 3, nqtot
    33903382      DO  k = 1, klev
    33913383      DO  i = 1, klon
     
    34213413      write(lunout,*) 'FIN DE PHYSIQ !!!!!!!!!!!!!!!!!!!!'
    34223414      write(lunout,*)
    3423      s 'nlon,nlev,nqmax,debut,lafin,rjourvrai,gmtime,pdtphys pct tlos'
     3415     s 'nlon,nlev,nqtot,debut,lafin,rjourvrai,gmtime,pdtphys pct tlos'
    34243416      write(lunout,*)
    3425      s  nlon,nlev,nqmax,debut,lafin,rjourvrai,gmtime,pdtphys,
     3417     s  nlon,nlev,nqtot,debut,lafin,rjourvrai,gmtime,pdtphys,
    34263418     s  pctsrf(igout,is_ter), pctsrf(igout,is_lic),pctsrf(igout,is_oce),
    34273419     s  pctsrf(igout,is_sic)
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/phystokenc.F

    r1067 r1114  
    1111      USE ioipsl
    1212      USE dimphy
     13      USE infotrac, ONLY : nqtot
    1314      USE iophy
    1415      IMPLICIT none
     
    2122c======================================================================
    2223#include "dimensions.h"
    23 cym#include "dimphy.h"
    2424#include "tracstoke.h"
    2525#include "indicesol.h"
     
    160160       
    161161        CALL initphysto('phystoke',
    162      . rlon,rlat,dtime, dtime*istphy,dtime*istphy,nqmx,physid)
     162     . rlon,rlat,dtime, dtime*istphy,dtime*istphy,nqtot,physid)
    163163       
    164164        write(*,*) 'apres initphysto ds phystokenc'
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/phytrac.F

    r1067 r1114  
    88     I                    debutphy,
    99     I                    lafin,
    10      I                    nqmax,
    1110     I                    nlon,
    1211     I                    nlev,
     
    6766      USE ioipsl
    6867      USE dimphy
     68      USE infotrac
    6969      USE mod_grid_phy_lmdz
    7070      USE mod_phys_lmdz_para
     
    8080cAA Remarques en vrac:
    8181cAA--------------------
    82 cAA 1/ le call phytrac se fait avec nqmax-2 donc nous avons bien
    83 cAA les vrais traceurs (nbtr) dans phytrac (pas la vapeur ni eau liquide)
    8482cAA 2/ Le choix du radon et du pb se fait juste avec un data
    8583cAA    (peu propre). Peut-etre pourrait-on prevoir dans l'avenir
     
    9391#include "paramet.h"
    9492#include "control.h"
    95 #include "advtrac.h"
    9693#include "thermcell.h"
    9794c======================================================================
     
    107104      integer nlon  ! nombre de points horizontaux
    108105      integer nlev  ! nombre de couches verticales
    109       integer nqmax ! nombre de traceurs auxquels on applique la physique
    110106      integer nstep  ! appel physique
    111107      integer julien !jour julien
     
    140136
    141137      REAL flxmass_w(klon,klev)
    142       CHARACTER(len=8) :: solsym(nqmax)
     138      CHARACTER(len=8) :: solsym(nbtr)
    143139      integer la
    144140      REAL              ::    tau_inca(klon,klev,9,2)
     
    209205cAA Pour l'instant seuls les cas du rn et du pb ont ete envisages.
    210206
    211       REAL source(klon,nqmax)       ! a voir lorsque le flux est prescrit
     207      REAL source(klon,nbtr)       ! a voir lorsque le flux est prescrit
    212208cAA
    213209cAA Pour la source de radon et son reservoir de sol
     
    216212      REAL,save,allocatable :: trs(:,:)    ! Conc. radon ds le sol
    217213c$OMP THREADPRIVATE(trs)
    218 cym      SAVE trs
    219214      REAL :: trs_tmp(klon_glo)
    220215     
     
    223218c                           (1 = reservoir) ou (possible => 1 )
    224219c$OMP THREADPRIVATE(masktr)
    225 cym      SAVE masktr
    226220      REAL,save,allocatable :: fshtr(:,:)  ! Flux surfacique dans le reservoir de sol
    227221c$OMP THREADPRIVATE(fshtr)
    228 cym      SAVE fshtr
    229222      REAL,save,allocatable :: hsoltr(:)      ! Epaisseur equivalente du reservoir de sol
    230223c$OMP THREADPRIVATE(hsoltr)
    231 cym      SAVE hsoltr
    232224      REAL,save,allocatable :: tautr(:)       ! Constante de decroissance radioactive
    233225c$OMP THREADPRIVATE(tautr)
    234 cym      SAVE tautr
    235226      REAL,save,allocatable :: vdeptr(:)      ! Vitesse de depot sec dans la couche Brownienne
    236227c$OMP THREADPRIVATE(vdeptr)
    237 cym      SAVE vdeptr
    238228      REAL,save,allocatable :: scavtr(:)      ! Coefficient de lessivage
    239229c$OMP THREADPRIVATE(scavtr)
    240 cym      SAVE scavtr
    241230cAA
    242231      CHARACTER*2 itn
     
    270259      logical,save,allocatable :: radio(:)    ! radio(it)=true => decroisssance radioactive
    271260c$OMP THREADPRIVATE(aerosol,clsol,radio) 
    272 cym      save aerosol,clsol,radio
    273261C
    274262c======================================================================
     
    360348          print*,'dans phytrac ',pdtphys,ecrit_tra
    361349
    362          if(nbtr.lt.nqmax) then
    363 c           print*,'NQMAX=',nqmax
    364 c           print*,'NBTR=',nbtr
    365            abort_message='See above'
    366            call abort_gcm(modname,abort_message,1)
    367          endif
    368 
    369350         inirnpb=rnpb
    370351         PRINT*, 'La frequence de sortie traceurs est  ', ecrit_tra
     
    406387c Initialisation de la nature des traceurs
    407388c
    408          DO it = 1, nqmax
     389         DO it = 1, nbtr
    409390            aerosol(it) = .FALSE.  ! Tous les traceurs sont des gaz par defaut
    410391            radio(it) = .FALSE.    ! Par defaut pas de passage par radiornpb
     
    533514c======================================================================
    534515c     print*,'Avant convection'
    535        do it=1,nqmax
     516       do it=1,nbtr
    536517          WRITE(itn,'(i2)') it
    537518c        call diagtracphy(tr_seri(:,:,it),paprs,'Avant conv'//itn)
     
    541522
    542523c      print*,'Pas de temps dans phytrac : ',pdtphys
    543       DO it=1, nqmax
    544 
    545       IF ( config_inca/='none' .AND. conv_flg(it) == 0 ) CYCLE
     524      DO it=1, nbtr
     525
     526      IF ( config_inca/='none') THEN
     527         IF ( conv_flg(it) == 0 ) CYCLE
     528      END IF
    546529
    547530      if (iflag_con.lt.2) then
     
    574557      endif ! convection
    575558c        print*,'Apres convection'
    576 c      do it=1,nqmax
     559c      do it=1,nbtr
    577560c         WRITE(itn,'(i1)') it
    578561c        call diagtracphy(tr_seri(:,:,it),paprs,'Avant conv'//itn)
     
    591574
    592575c      print*,'masse dans ph ',zmasse
    593       do it=1,nqmax
     576      do it=1,nbtr
    594577         do k=1,klev
    595578            do i=1,klon
     
    604587c        print*,'calcul de leffet des thermiques'
    605588        nsplit=10
    606         DO it=1, nqmax
     589        DO it=1, nbtr
    607590c        WRITE(itn,'(i1)') it
    608591c        CALL minmaxqfi(tr_seri(1,1,it),1.e10,-1.e33,'conv it='//itn)
     
    642625c======================================================================
    643626c       print *,'Avant couchelimite'
    644 c      do it=1,nqmax
     627c      do it=1,nbtr
    645628c         WRITE(itn,'(i1)') it
    646629c        call diagtracphy(tr_seri(:,:,it),paprs,'Avant CL  '//itn)
     
    656639
    657640C maf modif pour tenir compte du cas rnpb + traceur
    658       DO it=1, nqmax
    659 
    660       IF ( config_inca/='none' .AND. pbl_flg(it) == 0 ) CYCLE
     641      DO it=1, nbtr
     642
     643         IF ( config_inca/='none' ) THEN
     644            IF( pbl_flg(it) == 0 ) CYCLE
     645         END IF
    661646
    662647c     print *,'it',it,clsol(it)
     
    711696
    712697c      print*,'Apres couchelimite'
    713 c      do it=1,nqmax
     698c      do it=1,nbtr
    714699c         WRITE(itn,'(i1)') it
    715700c        call diagtracphy(tr_seri(:,:,it),paprs,'Avant CL  '//itn)
     
    726711        call radiornpb (tr_seri,pdtphys,tautr,d_tr_dec)
    727712C
    728         DO it=1,nqmax
     713        DO it=1,nbtr
    729714            if(radio(it)) then
    730715            DO k = 1, nlev
     
    755740c tendance des aerosols nuclees et impactes
    756741c
    757        DO it = 1, nqmax
     742       DO it = 1, nbtr
    758743         IF (aerosol(it)) THEN
    759744           DO k = 1, nlev
     
    774759c      call dump2d(iim,jjm-1,frac_nucl(2:klon-1,10),'FRACNUCL')
    775760c      call dump2d(iim,jjm-1,tr_seri(2:klon-1,10,3),'TRACEUR3')
    776        DO it = 1, nqmax
     761       DO it = 1, nbtr
    777762c         print*,'IT=',it,aerosol(it)
    778763         IF (aerosol(it)) THEN
     
    790775c Flux lessivage total
    791776c
    792       DO it = 1, nqmax
     777      DO it = 1, nbtr
    793778           DO k = 1, nlev
    794779            DO i = 1, klon
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/radiornpb.F

    r776 r1114  
    44      SUBROUTINE radiornpb(tr,dtime,tautr,d_tr)
    55      USE dimphy
     6      USE infotrac, ONLY : nbtr
    67      IMPLICIT none
    78c======================================================================
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/write_histrac.h

    r1030 r1114  
    1414      CALL histwrite_phy(nid_tra,"aire",itau_w,airephy)
    1515
    16       DO it=1,nqmax
    17 C champs 2D
     16      DO it=1,nbtr
     17       iiq=niadv(it+2)
    1818
    19 
    20        CALL histwrite_phy(nid_tra,tnom(it+2),itau_w,tr_seri(:,:,it))
     19       CALL histwrite_phy(nid_tra,tname(iiq),itau_w,tr_seri(:,:,it))
    2120       if (lessivage) THEN
    22        CALL histwrite_phy(nid_tra,"fl"//tnom(it+2),itau_w,
     21       CALL histwrite_phy(nid_tra,"fl"//tname(iiq),itau_w,
    2322     .                                   flestottr(:,:,it))
    2423      endif
    2524     
    2625c----Olivia
    27        CALL histwrite_phy(nid_tra,"d_tr_th_"//tnom(it+2),itau_w,
     26       CALL histwrite_phy(nid_tra,"d_tr_th_"//tname(iiq),itau_w,
    2827     .                                           d_tr_th(:,:,it))
    2928
    3029         if(iflag_con.GE.2) then
    31        CALL histwrite_phy(nid_tra,"d_tr_cv_"//tnom(it+2),itau_w,
     30       CALL histwrite_phy(nid_tra,"d_tr_cv_"//tname(iiq),itau_w,
    3231     .                                           d_tr_cv(:,:,it))
    3332         endif !(iflag_con.GE.2) then
    34        CALL histwrite_phy(nid_tra,"d_tr_cl_"//tnom(it+2),itau_w,
     33       CALL histwrite_phy(nid_tra,"d_tr_cl_"//tname(iiq),itau_w,
    3534     .                                           d_tr_cl(:,:,it))
    3635c---fin Olivia     
  • LMDZ4/branches/LMDZ4-dev/makegcm

    r1018 r1114  
    1111set phys="PHYS=$physique"
    1212set include='-I$(LIBF)/grid -I$(LIBF)/bibio -I$(LIBF)/filtrez -I. '
    13 set ntrac = 4
    1413set filtre=filtrez
    1514set grille=reg
     
    365364-d imxjmxlm  ou im, jm, et lm sont resp. le nombre de longitudes, latitudes
    366365             et couches verticales.
    367 
    368 -t ntrac   selectionne le nombre de traceur advectes par la dynamique.
    369            Dans les versions courantes du modele terrestre on a par exemple
    370            ntrac=2 pour l'eau vapeur et liquide
    371 
    372              L'effet des options -d et -t est d'ecraser le fichier
     366             L'effet des options -d est d'ecraser le fichier
    373367             $LMDGCM/libf/grid/dimensions.h
    374              qui contient sous forme de 4 PARAMETER FORTRAN les 3 dimensions
    375              de la grille horizontale im, jm, lm plus le nombre de traceurs
    376              advectes passivement par la dynamique ntrac, par un nouveu fichier
    377              $LMDGCM/libf/grid/dimension/dimensions.im.jm.lm.tntrac
     368             qui contient sous forme de 3 PARAMETER FORTRAN les 3 dimensions
     369             de la grille horizontale im, jm et verticale lm, par un nouveu fichier
     370             $LMDGCM/libf/grid/dimension/dimensions.im.jm.lm
    378371             Si ce fichier n'existe pas encore, il est cree par le script
    379372             $LMDGCM/libf/grid/dimension/makdim
     
    472465        set parallel="$2" ; shift ; shift ; goto top
    473466 
    474      case -t
    475         set ntrac=$2 ; shift ; shift ; goto top
    476 
    477467     case -include
    478468        set include="$include -I$2" ; shift ; shift ; goto top
     
    584574
    585575########################################################################
    586 # choix du nombre de traceur par defaut si il n'a pas ete choisi,
    587 # suivant la physique
    588 ########################################################################
    589 
    590 if ( $ntrac == 0  ) then
    591     if ( "$physique" == 'nophys' ) then
    592         set ntrac=1
    593     else if ( "$physique" == 'lmd' ) then
    594         set ntrac=2
    595     else if ( "$physique" == 'lmd_test_li' ) then
    596         set ntrac=2
    597     else if ( "$physique" == 'ec' ) then
    598         set ntrac=1
    599     else
    600         set ntrac = 1
    601     endif
    602 endif
    603 
    604 ########################################################################
    605576#subtilites sur le nom de la librairie
    606577########################################################################
     
    631602   set dim=`echo $dim | sed -e 's/[^0-9]/ /g'`
    632603endif
    633 set nomlib=${nomlib}${physique}_${dim_}_t${ntrac}_$grille
     604set nomlib=${nomlib}${physique}_${dim_}_$grille
    634605## M-A-F nomlib trop long sur CRAY pour ar
    635606if ( $CRAY ) then
    636     set nomlib=F90_${dim_}_t${ntrac}
     607    set nomlib=F90_${dim_}
    637608endif
    638609if ( $NEC || $XNEC || $X6NEC || $X8BRODIE ) then
    639     set nomlib=F90_${dim_}_t${ntrac}_'phy'${physique}${FLAG_PARA}
     610    set nomlib=F90_${dim_}_'phy'${physique}${FLAG_PARA}
    640611endif
    641612echo calcul de la dimension
     
    664635########################################################################
    665636# Gestion des dimensions du modele.
    666 # on cree ou remplace le fichier des dimensions/nombre de traceur
     637# on cree ou remplace le fichier des dimensions
    667638########################################################################
    668639
     
    682653
    683654cd dimension
    684 ./makdim $ntrac $dim
     655./makdim $dim
    685656cat $libf/grid/dimensions.h
    686657
  • LMDZ4/branches/LMDZ4-dev/makegcm_fcm

    r1039 r1114  
    1818set dim="96x72x19"
    1919set physique=lmd
    20 set ntrac = 4
    2120set filtre=filtrez
    2221set grille=reg
     
    6059[-h]                       : manuel abrégé
    6160[-d [[IMx]JMx]LM]          : IM, JM, LM sont les dims en x, y, z (def: $dim)
    62 [-t NTRAC]                 : nombre de traceurs (def: 4)
    6361[-p PHYS]                  : compilation avec la physique libf/phyPHYS, (def: lmd)
    6462[-prod / -dev / -debug]    : compilation en mode production (default) / developpement / debug .
     
    115113        set parallel="$2" ; shift ; shift ; goto top
    116114 
    117      case -t
    118         set ntrac=$2 ; shift ; shift ; goto top
    119 
    120115     case -include
    121116        set INCLUDE="$INCLUDE -I$2" ; shift ; shift ; goto top
     
    211206set LIB="$LIB -L${NETCDF_LIBDIR} -lnetcdf"
    212207
    213 
    214 ########################################################################
    215 # choix du nombre de traceur par defaut si il n'a pas ete choisi,
    216 # suivant la physique
    217 ########################################################################
    218 
    219 if ( $ntrac == 0  ) then
    220     if ( "$physique" == 'nophys' ) then
    221         set ntrac=1
    222     else if ( "$physique" == 'lmd' ) then
    223         set ntrac=2
    224     else if ( "$physique" == 'lmd_test_li' ) then
    225         set ntrac=2
    226     else if ( "$physique" == 'ec' ) then
    227         set ntrac=1
    228     else
    229         set ntrac = 1
    230     endif
    231 endif
    232 
    233 
    234208########################################################################
    235209# calcul du nombre de dimensions
     
    248222########################################################################
    249223# Gestion des dimensions du modele.
    250 # on cree ou remplace le fichier des dimensions/nombre de traceur
     224# on cree ou remplace le fichier des dimensions
    251225########################################################################
    252226
    253227cd $LIBFGCM/grid/dimension
    254 ./makdim $ntrac $dim
     228./makdim $dim
    255229cat $LIBFGCM/grid/dimensions.h
    256230cd $LMDGCM
     
    314288
    315289set SUFF_NAME=_${dim_full}
    316 set SUFF_NAME=${SUFF_NAME}_t${ntrac}_phy${physique}
     290set SUFF_NAME=${SUFF_NAME}_phy${physique}
    317291
    318292if ( "$parallel" != 'none' ) then
Note: See TracChangeset for help on using the changeset viewer.