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/libf/dyn3d
Files:
1 added
2 deleted
15 edited

Legend:

Unmodified
Added
Removed
  • 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
Note: See TracChangeset for help on using the changeset viewer.