Ignore:
Timestamp:
Aug 2, 2024, 9:58:25 PM (5 months ago)
Author:
abarral
Message:

Put dimensions.h and paramet.h into modules

Location:
LMDZ6/branches/Amaury_dev/libf/dyn3d
Files:
36 edited
1 moved

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/addfi.F90

    r5136 r5159  
    11! $Id$
    22
    3 SUBROUTINE addfi(pdt, leapf, forward, &
    4         pucov, pvcov, pteta, pq, pps, &
    5         pdufi, pdvfi, pdhfi, pdqfi, pdpfi)
     3SUBROUTINE addfi(pdt, leapf, forward, pucov, pvcov, pteta, pq, pps, pdufi, pdvfi, pdhfi, pdqfi, pdpfi)
    64
    75  USE infotrac, ONLY: nqtot
     
    97  USE lmdz_ssum_scopy, ONLY: ssum
    108  USE lmdz_comgeom
     9  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     10  USE lmdz_paramet
     11
    1112  IMPLICIT NONE
    12   !
     13
    1314  !=======================================================================
    14   !
     15
    1516  !    Addition of the physical tendencies
    16   !
     17
    1718  !    Interface :
    1819  !    -----------
    19   !
     20
    2021  !  Input :
    2122  !  -------
     
    3132  !  pdhfi(ip1jmp1)         |      tendencies
    3233  !  pdtsfi(ip1jmp1)        |
    33   !
     34
    3435  !  Output :
    3536  !  --------
     
    3839  !  ph
    3940  !  pts
    40   !
    41   !
     41
     42
    4243  !=======================================================================
    43   !
    44   !-----------------------------------------------------------------------
    45   !
    46   !    0.  Declarations :
    47   !    ------------------
    48   !
    49   INCLUDE "dimensions.h"
    50   INCLUDE "paramet.h"
    51   !
     44  !  !
    5245  !    Arguments :
    5346  !    -----------
    54   !
     47
    5548  REAL, INTENT(IN) :: pdt ! time step for the integration (s)
    56   !
     49
    5750  REAL, INTENT(INOUT) :: pvcov(ip1jm, llm) ! covariant meridional wind
    5851  REAL, INTENT(INOUT) :: pucov(ip1jmp1, llm) ! covariant zonal wind
     
    6659  REAL, INTENT(IN) :: pdhfi(ip1jmp1, llm)
    6760  REAL, INTENT(IN) :: pdpfi(ip1jmp1)
    68   !
     61
    6962  LOGICAL, INTENT(IN) :: leapf, forward ! not used
    70   !
    71   !
     63
     64
    7265  !    Local variables :
    7366  !    -----------------
    74   !
     67
    7568  REAL :: xpn(iim), xps(iim), tpn, tps
    7669  INTEGER :: j, k, iq, ij
    7770  REAL, PARAMETER :: qtestw = 1.0e-15
    7871  REAL, PARAMETER :: qtestt = 1.0e-40
    79   !
     72
    8073  !-----------------------------------------------------------------------
    8174
     
    113106  ENDDO
    114107
    115   !
     108
    116109  DO j = 1, ip1jmp1
    117110    pps(j) = pps(j) + pdpfi(j) * pdt
     
    177170  ENDDO
    178171
    179 
    180172END SUBROUTINE addfi
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/advect.F90

    r5136 r5159  
    99  USE lmdz_comgeom
    1010
     11  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     12  USE lmdz_paramet
    1113  IMPLICIT NONE
    1214  !=======================================================================
    13   !
     15
    1416  !   Auteurs:  P. Le Van , Fr. Hourdin  .
    1517  !   -------
    16   !
     18
    1719  !   Objet:
    1820  !   ------
    19   !
     21
    2022  !   *************************************************************
    2123  !   .... calcul des termes d'advection vertic.pour u,v,teta,q ...
     
    2325  !    ces termes sont ajoutes a du,dv,dteta et dq .
    2426  !  Modif F.Forget 03/94 : on retire q de advect
    25   !
     27
    2628  !=======================================================================
    2729  !-----------------------------------------------------------------------
     
    2931  !   -------------
    3032
    31   INCLUDE "dimensions.h"
    32   INCLUDE "paramet.h"
     33
     34
    3335
    3436  !   Arguments:
     
    9799  !-----------------------------------------------------------------------
    98100
    99   !
     101
    100102  DO l = 1, llmm1
    101103
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/advtrac.f90

    r5158 r5159  
    2222  USE lmdz_groupe, ONLY: groupe
    2323
    24   IMPLICIT NONE
    25 
    26   INCLUDE "dimensions.h"
    27   INCLUDE "paramet.h"
     24  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     25  USE lmdz_paramet
     26IMPLICIT NONE
     27
     28
     29
    2830
    2931  !---------------------------------------------------------------------------
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/bilan_dyn.F90

    r5158 r5159  
    1616  USE lmdz_comgeom2
    1717
     18USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     19  USE lmdz_paramet
    1820  IMPLICIT NONE
    1921
    20   INCLUDE "dimensions.h"
    21   INCLUDE "paramet.h"
     22
     23
    2224
    2325  !====================================================================
    24   !
     26
    2527  !   Sous-programme consacre à des diagnostics dynamiques de base
    26   !
    27   !
     28
     29
    2830  !   De facon generale, les moyennes des scalaires Q sont ponderees par
    2931  !   la masse.
    30   !
     32
    3133  !   Les flux de masse sont eux simplement moyennes.
    32   !
     34
    3335  !====================================================================
    3436
     
    148150
    149151  !   Variables locales
    150   !
     152
    151153  INTEGER :: tau0
    152154  REAL :: zjulian
     
    155157  INTEGER :: ii, jj
    156158  INTEGER :: zan, dayref
    157   !
     159
    158160  REAL :: rlong(jjm), rlatg(jjm)
    159161
     
    225227            tau0, zjulian, dt_cum, thoriid, fileid)
    226228
    227     !
     229
    228230    !  Appel a histvert pour la grille verticale
    229     !
     231
    230232    CALL histvert(fileid, 'presnivs', 'Niveaux sigma', 'mb', &
    231233            llm, presnivs, zvertiid)
    232     !
     234
    233235    !  Appels a histdef pour la definition des variables a sauvegarder
    234236    DO iQ = 1, nQ
     
    325327  !   Cumul
    326328  !=====================================================================
    327   !
     329
    328330  IF(icum==0) THEN
    329331    ps_cum = 0.
     
    456458    !   calcul de la moyenne zonale du transport :
    457459    !   ------------------------------------------
    458     !
     460
    459461    !                                 --
    460462    ! TOT : la circulation totale       [ vq ]
    461     !
     463
    462464    !                                  -     -
    463465    ! MMC : mean meridional circulation [ v ] [ q ]
    464     !
     466
    465467    !                                 ----      --       - -
    466468    ! TRS : transitoires                [ v'q'] = [ vq ] - [ v q ]
    467     !
     469
    468470    !                                 - * - *       - -       -     -
    469471    ! STT : stationaires                [ v   q   ] = [ v q ] - [ v ] [ q ]
    470     !
     472
    471473    !                                          - -
    472474    !    on utilise aussi l'intermediaire TMP :  [ v q ]
    473     !
     475
    474476    !    la variable zfactv transforme un transport meridien cumule
    475477    !    en kg/s * unte-du-champ-transporte en m/s * unite-du-champ-transporte
    476     !
     478
    477479    !   --------------------------------------------------------------
    478480
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/caladvtrac.F90

    r5134 r5159  
    11! $Id$
    22
    3 !
    4 !
     3
     4
    55SUBROUTINE caladvtrac(q, pbaru, pbarv, &
    66        p, masse, dq, teta, &
    77        flxw, pk)
    8   !
     8
    99  USE infotrac, ONLY: nqtot
    1010  USE control_mod, ONLY: iapp_tracvl, planet_type
     
    1313  USE lmdz_ssum_scopy, ONLY: scopy
    1414
     15  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     16  USE lmdz_paramet
    1517  IMPLICIT NONE
    16   !
     18
    1719  ! Auteurs:   F.Hourdin , P.Le Van, F.Forget, F.Codron
    18   !
     20
    1921  ! F.Codron (10/99) : ajout humidite specifique pour eau vapeur
    2022  !=======================================================================
    21   !
     23
    2224  !   Shema de  Van Leer
    23   !
     25
    2426  !=======================================================================
    2527
    26   INCLUDE "dimensions.h"
    27   INCLUDE "paramet.h"
     28
     29
    2830
    2931  !   Arguments:
     
    3638
    3739  !  ..................................................................
    38   !
     40
    3941  !  .. dq n'est utilise et dimensionne que pour l'eau  vapeur et liqu.
    40   !
     42
    4143  !  ..................................................................
    42   !
     44
    4345  !   Local:
    4446  !   ------
     
    4951
    5052  !c
    51   !
     53
    5254  ! Earth-specific stuff for the first 2 tracers (water)
    5355  IF (planet_type=="earth") THEN
     
    7375    IF (planet_type=="earth") THEN
    7476      ! Earth-specific treatment for the first 2 tracers (water)
    75       !
     77
    7678      !c          CALL minmaxq(q(1,1,1),1.e33,-1.e33,'Eau vapeur     ')
    7779      !c          CALL minmaxq(q(1,1,2),1.e33,-1.e33,'Eau liquide    ')
    7880
    7981      !c     ....  Calcul  de deltap  qu'on stocke dans finmasse   ...
    80       !
     82
    8183      DO l = 1, llm
    8284        DO ij = 1, ip1jmp1
     
    9193      CALL SCOPY   (ip1jmp1 * llm, masse, 1, finmasse, 1)
    9294      CALL filtreg (finmasse, jjp1, llm, -2, 2, .TRUE., 1)
    93       !
     95
    9496      !   *****  Calcul de dq pour l'eau , pour le passer a la physique ******
    9597      !   ********************************************************************
    96       !
     98
    9799      dtvrtrac = iapp_tracvl * dtvr
    98       !
     100
    99101      DO iq = 1, nqtot
    100102        DO l = 1, llm
     
    105107        ENDDO
    106108      ENDDO
    107       !
     109
    108110    endif ! of if (planet_type.EQ."earth")
    109111  ELSE
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/caldyn.F90

    r5136 r5159  
    88  USE lmdz_comgeom
    99
     10  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     11  USE lmdz_paramet
    1012  IMPLICIT NONE
    1113
     
    2628  !   ----------------
    2729
    28   INCLUDE "dimensions.h"
    29   INCLUDE "paramet.h"
     30
     31
    3032
    3133  !   Arguments:
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/check_isotopes.F90

    r5134 r5159  
    44                          ntiso, iH2O, nzone, tracers, isoName,  itZonIso, getKey
    55
     6USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
    67   IMPLICIT NONE
    7    INCLUDE "dimensions.h"
     8
    89   REAL,             INTENT(INOUT) :: q(ip1jmp1,llm,nqtot)
    910   INTEGER,          INTENT(IN)    :: ip1jmp1
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/conf_gcm.f90

    r5134 r5159  
    2020          tetagrot, tetatemp, coefdis, vert_prof_dissip
    2121
     22  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     23  USE lmdz_paramet
    2224  IMPLICIT NONE
    2325  !-----------------------------------------------------------------------
     
    2729
    2830  !     tapedef   :
    29   !     etatinit  :     = TRUE   , on ne  compare pas les valeurs des para- 
     31  !     etatinit  :     = TRUE   , on ne  compare pas les valeurs des para-
    3032  !     -metres  du zoom  avec  celles lues sur le fichier start .
    3133
     
    3537  !   Declarations :
    3638  !   --------------
    37   INCLUDE "dimensions.h"
    38   INCLUDE "paramet.h"
     39
     40
    3941
    4042  !   local:
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/covnat.F90

    r5136 r5159  
    44  USE lmdz_comgeom
    55
     6  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     7  USE lmdz_paramet
    68  IMPLICIT NONE
    79
    810  !=======================================================================
    9   !
     11
    1012  !   Auteur:  F Hourdin Phu LeVan
    1113  !   -------
    12   !
     14
    1315  !   Objet:
    1416  !   ------
    15   !
     17
    1618  !  *********************************************************************
    1719  !    calcul des compos. naturelles a partir des comp.covariantes
    1820  !  ********************************************************************
    19   !
     21
    2022  !=======================================================================
    2123
    22  INCLUDE "dimensions.h"
    23  INCLUDE "paramet.h"
     24
     25
    2426
    2527  INTEGER :: klevel
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/dissip.F90

    r5136 r5159  
    88  USE lmdz_comgeom
    99
     10  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     11  USE lmdz_paramet
    1012  IMPLICIT NONE
    1113
     
    1517
    1618  !=======================================================================
    17   !
     19
    1820  !   Auteur:  P. Le Van
    1921  !   -------
    20   !
     22
    2123  !   Objet:
    2224  !   ------
    23   !
     25
    2426  !   Dissipation horizontale
    25   !
     27
    2628  !=======================================================================
    2729  !-----------------------------------------------------------------------
     
    2931  !   -------------
    3032
    31   INCLUDE "dimensions.h"
    32   INCLUDE "paramet.h"
     33
     34
    3335
    3436  !   Arguments:
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/dteta1.F90

    r5158 r5159  
    33SUBROUTINE dteta1(teta, pbaru, pbarv, dteta)
    44  USE lmdz_filtreg, ONLY: filtreg
     5  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     6  USE lmdz_paramet
    57  IMPLICIT NONE
    68
    79  !=======================================================================
    8   !
     10
    911  !   Auteur:  P. Le Van
    1012  !   -------
    1113  ! Modif F.Forget 03/94 (on retire q et dq  pour construire dteta1)
    12   !
     14
    1315  !   ********************************************************************
    1416  !   ... calcul du terme de convergence horizontale du flux d'enthalpie
     
    1719  !  .. teta,pbaru et pbarv sont des arguments d'entree  pour le s-pg ....
    1820  ! dteta               sont des arguments de sortie pour le s-pg ....
    19   !
     21
    2022  !=======================================================================
    2123
    22   INCLUDE "dimensions.h"
    23   INCLUDE "paramet.h"
     24
     25
    2426
    2527  REAL :: teta(ip1jmp1, llm), pbaru(ip1jmp1, llm), pbarv(ip1jm, llm)
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/dudv1.F90

    r5134 r5159  
    22
    33SUBROUTINE dudv1(vorpot, pbaru, pbarv, du, dv)
     4  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     5  USE lmdz_paramet
    46  IMPLICIT NONE
    5   !
     7
    68  !-----------------------------------------------------------------------
    7   !
     9
    810  !   Auteur:   P. Le Van
    911  !   -------
    10   !
     12
    1113  !   Objet:
    1214  !   ------
     
    1517  !   vorpot, pbaru et pbarv sont des arguments d'entree  pour le s-pg ..
    1618  !   du  et dv              sont des arguments de sortie pour le s-pg ..
    17   !
     19
    1820  !-----------------------------------------------------------------------
    1921
    20   INCLUDE "dimensions.h"
    21   INCLUDE "paramet.h"
     22
     23
    2224
    2325  REAL :: vorpot(ip1jm, llm), pbaru(ip1jmp1, llm), &
    2426          pbarv(ip1jm, llm), du(ip1jmp1, llm), dv(ip1jm, llm)
    2527  INTEGER :: l, ij
    26   !
    27   !
     28
     29
    2830  DO l = 1, llm
    29     !
     31
    3032    DO ij = iip2, ip1jm - 1
    3133      du(ij, l) = 0.125 * (vorpot(ij - iip1, l) + vorpot(ij, l)) * &
     
    3335                      pbarv(ij, l) + pbarv(ij + 1, l))
    3436    END DO
    35     !
     37
    3638    DO ij = 1, ip1jm - 1
    3739      dv(ij + 1, l) = - 0.125 * (vorpot(ij, l) + vorpot(ij + 1, l)) * &
     
    3941                      pbaru(ij + iip1, l) + pbaru(ij + iip2, l))
    4042    END DO
    41     !
     43
    4244    !    .... correction  pour  dv( 1,j,l )  .....
    4345    !    ....   dv(1,j,l)= dv(iip1,j,l) ....
    44     !
     46
    4547    !DIR$ IVDEP
    4648    DO ij = 1, ip1jm, iip1
    4749      dv(ij, l) = dv(ij + iim, l)
    4850    END DO
    49     !
     51
    5052  END DO
    5153
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/dudv2.F90

    r5134 r5159  
    33SUBROUTINE dudv2(teta, pkf, bern, du, dv)
    44
     5  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     6  USE lmdz_paramet
    57  IMPLICIT NONE
    6   !
     8
    79  !=======================================================================
    8   !
     10
    911  !   Auteur:  P. Le Van
    1012  !   -------
    11   !
     13
    1214  !   Objet:
    1315  !   ------
    14   !
     16
    1517  !   *****************************************************************
    1618  !   ..... calcul du terme de pression (gradient de p/densite )   et
     
    1820  !   *****************************************************************
    1921  !      Ces termes sont ajoutes a  d(ucov)/dt et a d(vcov)/dt  ..
    20   !
    21   !
     22
     23
    2224  !    teta , pkf, bern  sont des arguments d'entree  pour le s-pg  ....
    2325  !    du et dv          sont des arguments de sortie pour le s-pg  ....
    24   !
     26
    2527  !=======================================================================
    2628  !
    27   INCLUDE "dimensions.h"
    28   INCLUDE "paramet.h"
     29
     30
    2931
    3032  REAL :: teta(ip1jmp1, llm), pkf(ip1jmp1, llm), bern(ip1jmp1, llm), &
    3133          du(ip1jmp1, llm), dv(ip1jm, llm)
    3234  INTEGER :: l, ij
    33   !
    34   !
     35
     36
    3537  DO l = 1, llm
    36     !
     38
    3739    DO ij = iip2, ip1jm - 1
    3840      du(ij, l) = du(ij, l) + 0.5 * (teta(ij, l) + teta(ij + 1, l)) * &
    3941              (pkf(ij, l) - pkf(ij + 1, l)) + bern(ij, l) - bern(ij + 1, l)
    4042    END DO
    41     !
    42     !
     43
     44
    4345    !    .....  correction  pour du(iip1,j,l),  j=2,jjm   ......
    4446    !    ...          du(iip1,j,l) = du(1,j,l)                 ...
    45     !
     47
    4648    !DIR$ IVDEP
    4749    DO ij = iip1 + iip1, ip1jm, iip1
    4850      du(ij, l) = du(ij - iim, l)
    4951    END DO
    50     !
    51     !
     52
     53
    5254    DO ij = 1, ip1jm
    5355      dv(ij, l) = dv(ij, l) + 0.5 * (teta(ij, l) + teta(ij + iip1, l)) * &
     
    5557              + bern(ij + iip1, l) - bern(ij, l)
    5658    END DO
    57     !
     59
    5860  END DO
    5961  !
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/dynetat0.F90

    r5136 r5159  
    2424  USE lmdz_comgeom2
    2525
     26USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     27  USE lmdz_paramet
    2628  IMPLICIT NONE
    27   INCLUDE "dimensions.h"
    28   INCLUDE "paramet.h"
     29
     30
    2931!===============================================================================
    3032! Arguments:
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/dynredem.F90

    r5136 r5159  
    2222  USE lmdz_comgeom2
    2323
     24USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     25  USE lmdz_paramet
    2426  IMPLICIT NONE
    25   INCLUDE "dimensions.h"
    26   INCLUDE "paramet.h"
     27
     28
    2729  !===============================================================================
    2830  ! Arguments:
     
    169171  USE lmdz_comgeom
    170172
     173USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     174  USE lmdz_paramet
    171175  IMPLICIT NONE
    172   INCLUDE "dimensions.h"
    173   INCLUDE "paramet.h"
     176
     177
    174178  !===============================================================================
    175179  ! Arguments:
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/dynredem_mod.F90

    r5134 r5159  
    44          nf90_inq_varid, nf90_get_var, nf90_def_var
    55  USE lmdz_cppkeys_wrapper, ONLY: nf90_format
     6  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     7  USE lmdz_paramet
    68  IMPLICIT NONE; PRIVATE
    79  PUBLIC :: dynredem_write_u, dynredem_write_v, dynredem_read_u, err
    810  PUBLIC :: cre_var, put_var1, put_var2, fil, modname, msg
    9   INCLUDE "dimensions.h"
    10   INCLUDE "paramet.h"
     11
     12
    1113  CHARACTER(LEN = 256), SAVE :: fil, modname
    1214  INTEGER, SAVE :: nvarid
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/fluxstokenc.F90

    r5158 r5159  
    1616  !cc   ..   Modif. P. Le Van  ( 20/12/97 )  ...
    1717
     18USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     19  USE lmdz_paramet
    1820  IMPLICIT NONE
    1921
    20   INCLUDE "dimensions.h"
    21   INCLUDE "paramet.h"
     22
     23
    2224
    2325  REAL :: time_step, t_wrt, t_ops
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/friction.F90

    r5158 r5159  
    1111  USE lmdz_comgeom2
    1212
     13  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     14  USE lmdz_paramet
    1315  IMPLICIT NONE
    1416
     
    2527  !=======================================================================
    2628
    27   INCLUDE "dimensions.h"
    28   INCLUDE "paramet.h"
     29
     30
    2931
    3032  ! arguments:
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/gcm.F90

    r5137 r5159  
    3333  USE lmdz_tracstoke
    3434
     35  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     36  USE lmdz_paramet
    3537  IMPLICIT NONE
    3638
    3739  !      ......   Version  du 10/01/98    ..........
    3840
    39   !             avec  coordonnees  verticales hybrides 
     41  !             avec  coordonnees  verticales hybrides
    4042  !   avec nouveaux operat. dissipation * ( gradiv2,divgrad2,nxgraro2 )
    4143
     
    6567  !   -------------
    6668
    67   INCLUDE "dimensions.h"
    68   INCLUDE "paramet.h"
     69
     70
    6971
    7072  REAL zdtvr
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/groupe.F90

    r5158 r5159  
    22
    33MODULE lmdz_groupe
     4  USE lmdz_paramet
    45  IMPLICIT NONE; PRIVATE
    56  PUBLIC groupe
     
    1314    USE lmdz_comgeom2
    1415
     16  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
    1517    IMPLICIT NONE
    1618
     
    1820    !   poles en "regroupant" les mailles 2 par 2 puis 4 par 4 etc. au fur
    1921    !   et a mesure qu'on se rapproche du pole.
    20     !
     22
    2123    !   en entree: pbaru et pbarv
    22     !
     24
    2325    !   en sortie:  pbarum,pbarvm et wm.
    24     !
     26
    2527    !   remarque, le wm est recalcule a partir des pbaru pbarv et on n'a donc
    2628    !   pas besoin de w en entree.
    2729
    28     INCLUDE "dimensions.h"
    29     INCLUDE "paramet.h"
     30
     31
    3032
    3133    ! integer ngroup
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/groupeun.F90

    r5158 r5159  
    66  USE lmdz_comgeom2
    77
     8USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     9  USE lmdz_paramet
    810  IMPLICIT NONE
    911
    10   INCLUDE "dimensions.h"
    11   INCLUDE "paramet.h"
     12
     13
    1214
    1315  INTEGER :: jjmax, llmax
     
    133135  USE lmdz_comgeom2
    134136
     137USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     138  USE lmdz_paramet
    135139  IMPLICIT NONE
    136140
    137   INCLUDE "dimensions.h"
    138   INCLUDE "paramet.h"
     141
     142
    139143
    140144  ! INTEGER ngroup
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/guide_mod.F90

    r5158 r5159  
    7777
    7878
     79USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     80  USE lmdz_paramet
    7981    IMPLICIT NONE
    8082
    81     INCLUDE "dimensions.h"
    82     INCLUDE "paramet.h"
     83
     84
    8385
    8486    INTEGER :: error, ncidpl, rid, rcod
     
    359361
    360362
     363USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     364  USE lmdz_paramet
    361365    IMPLICIT NONE
    362366
    363     INCLUDE "dimensions.h"
    364     INCLUDE "paramet.h"
     367
     368
    365369
    366370
     
    610614    USE lmdz_comgeom
    611615
     616USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     617  USE lmdz_paramet
    612618    IMPLICIT NONE
    613619
    614     INCLUDE "dimensions.h"
    615     INCLUDE "paramet.h"
     620
     621
    616622
    617623    ! input/output variables
     
    678684    USE lmdz_comgeom2
    679685
     686USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     687  USE lmdz_paramet
    680688    IMPLICIT NONE
    681689
    682     INCLUDE "dimensions.h"
    683     INCLUDE "paramet.h"
     690
     691
    684692
    685693    REAL, DIMENSION (iip1, jjp1), INTENT(IN) :: psi ! Psol gcm
     
    928936    USE lmdz_comgeom2
    929937
     938USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     939  USE lmdz_paramet
    930940    IMPLICIT NONE
    931941
    932     INCLUDE "dimensions.h"
    933     INCLUDE "paramet.h"
     942
     943
    934944
    935945    ! input arguments :
     
    10931103  !=======================================================================
    10941104  SUBROUTINE guide_read(timestep)
     1105USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     1106  USE lmdz_paramet
    10951107    IMPLICIT NONE
    10961108
    1097     INCLUDE "dimensions.h"
    1098     INCLUDE "paramet.h"
     1109
     1110
    10991111
    11001112    INTEGER, INTENT(IN) :: timestep
     
    13891401  !=======================================================================
    13901402  SUBROUTINE guide_read2D(timestep)
     1403USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     1404  USE lmdz_paramet
    13911405    IMPLICIT NONE
    13921406
    1393     INCLUDE "dimensions.h"
    1394     INCLUDE "paramet.h"
     1407
     1408
    13951409
    13961410    INTEGER, INTENT(IN) :: timestep
     
    16531667    USE lmdz_comgeom2
    16541668
     1669USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     1670  USE lmdz_paramet
    16551671    IMPLICIT NONE
    16561672
    1657     INCLUDE "dimensions.h"
    1658     INCLUDE "paramet.h"
     1673
     1674
    16591675
    16601676    ! Variables entree
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/iniacademic.F90

    r5158 r5159  
    2626  ! of the American Meteorological Society, 75, 1825.
    2727
     28  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     29  USE lmdz_paramet
    2830  IMPLICIT NONE
    2931
     
    3133  !   ---------------
    3234
    33   INCLUDE "dimensions.h"
    34   INCLUDE "paramet.h"
     35
     36
    3537
    3638  !   Arguments:
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/iniinterp_horiz.F90

    r5158 r5159  
    1 !
     1
    22! $Header$
    3 !
     3
    44SUBROUTINE iniinterp_horiz(imo, jmo, imn, jmn, kllm, &
    55        rlonuo, rlatvo, rlonun, rlatvn, &
     
    1414  !  dans une autre grille LMDZ en conservant la quantite
    1515  !  totale pour les variables intensives (/m2) : ex : Pression au sol
    16   !
     16
    1717  !   (Pour chaque case autour d'un point scalaire de la nouvelle
    1818  !    grille, on calcule la surface (en m2)en intersection avec chaque
    1919  !    case de l'ancienne grille , pour la future interpolation)
    20   !
     20
    2121  ! on calcule aussi l' aire dans la nouvelle grille
    22   !
    23   !
     22
     23
    2424  !   Auteur:  F.Forget 01/1995
    2525  !   -------
    26   !
     26
    2727  ! ---------------------------------------------------------
    2828  !   Declarations:
    2929  ! ==============
    30   !
     30
    3131  !  ARGUMENTS
    3232  !  """""""""
     
    6363  ! On repere les frontieres des cases :
    6464  ! ===================================
    65   !
     65
    6666  ! Attention, on ruse avec des latitudes = 90 deg au pole.
    6767
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/integrd.F90

    r5136 r5159  
    1515  USE lmdz_comgeom
    1616
     17  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     18  USE lmdz_paramet
    1719  IMPLICIT NONE
    1820
    1921
    2022  !=======================================================================
    21   !
     23
    2224  !   Auteur:  P. Le Van
    2325  !   -------
    24   !
     26
    2527  !   objet:
    2628  !   ------
    27   !
     29
    2830  !   Incrementation des tendances dynamiques
    29   !
     31
    3032  !=======================================================================
    3133  !-----------------------------------------------------------------------
     
    3335  !   -------------
    3436
    35   INCLUDE "dimensions.h"
    36   INCLUDE "paramet.h"
     37
     38
    3739
    3840  !   Arguments:
     
    9496    ps (ij) = psm1(ij) + dt * dp(ij)
    9597  ENDDO
    96   !
     98
    9799  DO ij = 1, ip1jmp1
    98100    IF(ps(ij)<0.) THEN
     
    107109    ENDIF
    108110  ENDDO
    109   !
     111
    110112  DO  ij = 1, iim
    111113    tppn(ij) = aire(ij) * ps(ij)
     
    118120    ps(ij + ip1jm) = tps
    119121  ENDDO
    120   !
     122
    121123  !  ... Calcul  de la nouvelle masse d'air au dernier temps integre t+1 ...
    122   !
     124
    123125  CALL pression (ip1jmp1, ap, bp, ps, p)
    124126  CALL massdair (p, masse)
     
    151153
    152154    !   ....  Calcul de la valeur moyenne, unique  aux poles pour  teta    ......
    153     !
    154     !
     155
     156
    155157    DO  ij = 1, iim
    156158      tppn(ij) = aire(ij) * teta(ij, l)
     
    175177
    176178
    177   !
     179
    178180  !   .......  integration de   q   ......
    179   !
     181
    180182  !$$$      IF( iadv(1).NE.3.AND.iadv(2).NE.3 )    THEN
    181183  !$$$c
     
    212214    CALL qminimum(q, nq, deltap)
    213215
    214     !
     216
    215217    !    .....  Calcul de la valeur moyenne, unique  aux poles pour  q .....
    216218    !
     
    238240
    239241  ENDIF ! of if (planet_type.EQ."earth")
    240   !
    241   !
     242
     243
    242244  ! .....   FIN  de l'integration  de   q    .......
    243245
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/interp_horiz.F90

    r5158 r5159  
    1 !
     1
    22! $Id$
    3 !
     3
    44SUBROUTINE interp_horiz(varo, varn, imo, jmo, imn, jmn, lm, &
    55        rlonuo, rlatvo, rlonun, rlatvn)
     
    1010  !  dans une autre grille LMDZ en conservant la quantite
    1111  !  totale pour les variables intensives (/m2) : ex : Pression au sol
    12   !
     12
    1313  ! Francois Forget (01/1995)
    1414  !===========================================================
     
    1818  !   Declarations:
    1919  ! ==============
    20   !
     20
    2121  !  ARGUMENTS
    2222  !  """""""""
     
    6969  ! boucle sur toute les ktotal intersections entre les cases
    7070  ! de l'ancienne et la  nouvelle grille
    71   !
     71
    7272  PRINT *, 'ktotal 1 = ', ktotal
    7373
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/leapfrog.F90

    r5158 r5159  
    11! $Id$
    22
    3 !
    4 !
     3
     4
    55SUBROUTINE leapfrog(ucov, vcov, teta, ps, masse, phis, q, time_0)
    66
     
    3333  USE lmdz_comgeom
    3434
     35  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     36  USE lmdz_paramet
    3537  IMPLICIT NONE
    3638
     
    4143
    4244  !=======================================================================
    43   !
     45
    4446  !   Auteur:  P. Le Van /L. Fairhead/F.Hourdin
    4547  !   -------
    46   !
     48
    4749  !   Objet:
    4850  !   ------
    49   !
     51
    5052  !   GCM LMD nouvelle grille
    51   !
     53
    5254  !=======================================================================
    53   !
     55
    5456  !  ... Dans inigeom , nouveaux calculs pour les elongations  cu , cv
    5557  !  et possibilite d'appeler une fonction f(y)  a derivee tangente
     
    5860  !  ... Possibilite de choisir le shema pour l'advection de
    5961  !    q  , en modifiant iadv dans traceur.def  (10/02) .
    60   !
     62
    6163  !  Pour Van-Leer + Vapeur d'eau saturee, iadv(1)=4. (F.Codron,10/99)
    6264  !  Pour Van-Leer iadv=10
    63   !
     65
    6466  !-----------------------------------------------------------------------
    6567  !   Declarations:
    6668  !   -------------
    6769
    68   INCLUDE "dimensions.h"
    69   INCLUDE "paramet.h"
     70
     71
    7072
    7173  REAL, INTENT(IN) :: time_0 ! not used
     
    113115
    114116  REAL :: tppn(iim), tpps(iim), tpn, tps
    115   !
     117
    116118  INTEGER :: itau, itaufinp1, iav
    117119  ! INTEGER  iday ! jour julien
     
    242244
    243245
    244   !
     246
    245247  ! IF( MOD( itau, 10* day_step ).EQ.0 )  THEN
    246248  !   CALL  test_period ( ucov,vcov,teta,q,p,phis )
     
    286288  !   gestion des appels de la physique et des dissipations:
    287289  !   ------------------------------------------------------
    288   !
     290
    289291  !   ...    P.Le Van  ( 6/02/95 )  ....
    290292
     
    351353
    352354    ENDIF ! of IF (offline)
    353     !
     355
    354356  ENDIF ! of IF( forward .OR.  leapf )
    355357
     
    370372
    371373  ! .P.Le Van (26/04/94  ajout de  finvpold dans l'appel d'integrd)
    372   !
     374
    373375  !-----------------------------------------------------------------------
    374376  !   calcul des tendances physiques:
    375377  !   -------------------------------
    376378  !    ########   P.Le Van ( Modif le  6/02/95 )   ###########
    377   !
     379
    378380  IF(purmats)  THEN
    379381    IF(itau==itaufin.AND..NOT.forward) lafin = .TRUE.
     
    381383    IF(itau + 1 == itaufin)              lafin = .TRUE.
    382384  ENDIF
    383   !
    384   !
     385
     386
    385387  IF(apphys)  THEN
    386     !
     388
    387389    ! .......   Ajout   P.Le Van ( 17/04/96 )   ...........
    388390    !
     
    463465    ENDIF
    464466
    465     !
     467
    466468    !  Diagnostique de conservation de l'energie : difference
    467469    IF (ip_ebil_dyn>=1) THEN
     
    753755      ! iday = day_ini+itau/day_step
    754756      ! time = REAL(itau-(iday-day_ini)*day_step)/day_step+time_0
    755       !
     757
    756758      !              IF(time.GT.1.) THEN
    757759      !               time = time-1.
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/lmdz_paramet.f90

    r5158 r5159  
     1MODULE lmdz_paramet
     2  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
    13
    2 ! $Header$
     4  IMPLICIT NONE; PRIVATE
     5  PUBLIC iip1, iip2, iip3, jjp1, llmp1, llmp2, llmm1, kftd, ip1jm, ip1jmp1, &
     6          ip1jmi1, ijp1llm, ijmllm, mvar, jcfil, jcfllm
    37
     8  INTEGER  iip1, iip2, iip3, jjp1, llmp1, llmp2, llmm1
     9  INTEGER  kftd, ip1jm, ip1jmp1, ip1jmi1, ijp1llm
     10  INTEGER  ijmllm, mvar
     11  INTEGER jcfil, jcfllm
    412
    5 !  ATTENTION!!!!: ce fichier INCLUDE est compatible format fixe/format libre
    6 !                 veillez  n'utiliser que des ! pour les commentaires
    7 !                 et  bien positionner les & des lignes de continuation
    8 !                 (les placer en colonne 6 et en colonne 73)
     13  PARAMETER(iip1 = iim + 1, iip2 = iim + 2, iip3 = iim + 3, jjp1 = jjm + 1 - 1 / jjm)
     14  PARAMETER(llmp1 = llm + 1, llmp2 = llm + 2, llmm1 = llm - 1)
     15  PARAMETER(kftd = iim / 2 - ndm)
     16  PARAMETER(ip1jm = iip1 * jjm, ip1jmp1 = iip1 * jjp1)
     17  PARAMETER(ip1jmi1 = ip1jm - iip1)
     18  PARAMETER(ijp1llm = ip1jmp1 * llm, ijmllm = ip1jm * llm)
     19  PARAMETER(mvar = ip1jmp1 * (2 * llm + 1) + ijmllm)
     20  PARAMETER(jcfil = jjm / 2 + 5, jcfllm = jcfil * llm)
    921
    10 
    11 !-----------------------------------------------------------------------
    12 !   INCLUDE 'paramet.h'
    13 
    14       INTEGER  iip1,iip2,iip3,jjp1,llmp1,llmp2,llmm1
    15       INTEGER  kftd,ip1jm,ip1jmp1,ip1jmi1,ijp1llm
    16       INTEGER  ijmllm,mvar
    17       INTEGER jcfil,jcfllm
    18 
    19       PARAMETER( iip1= iim+1,iip2=iim+2,iip3=iim+3                       &
    20           ,jjp1=jjm+1-1/jjm)
    21       PARAMETER( llmp1 = llm+1,  llmp2 = llm+2, llmm1 = llm-1 )
    22       PARAMETER( kftd  = iim/2 -ndm )
    23       PARAMETER( ip1jm  = iip1*jjm,  ip1jmp1= iip1*jjp1 )
    24       PARAMETER( ip1jmi1= ip1jm - iip1 )
    25       PARAMETER( ijp1llm= ip1jmp1 * llm, ijmllm= ip1jm * llm )
    26       PARAMETER( mvar= ip1jmp1*( 2*llm+1) + ijmllm )
    27       PARAMETER( jcfil=jjm/2+5, jcfllm=jcfil*llm )
    28 
    29 !-----------------------------------------------------------------------
     22END MODULE lmdz_paramet
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/qminimum.F90

    r5158 r5159  
    88  USE lmdz_ssum_scopy, ONLY: ssum
    99
     10  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     11  USE lmdz_paramet
    1012  IMPLICIT NONE
    11   !
     13
    1214  !  -- Objet : Traiter les valeurs trop petites (meme negatives)
    1315  !         pour l'eau vapeur et l'eau liquide
    1416  !
    15   INCLUDE "dimensions.h"
    16   INCLUDE "paramet.h"
    17   !
     17
     18
     19
    1820  INTEGER :: nqtot
    1921  REAL :: q(ip1jmp1, llm, nqtot), deltap(ip1jmp1, llm)
    20   !
     22
    2123  LOGICAL, SAVE :: first = .TRUE.
    2224  INTEGER, SAVE :: iq_vap, iq_liq        ! indices pour l'eau vapeur/liquide
    2325  REAL, PARAMETER :: seuil_vap = 1.0e-10 ! seuil pour l'eau vapeur
    2426  REAL, PARAMETER :: seuil_liq = 1.0e-11 ! seuil pour l'eau liquide
    25   !
     27
    2628  !  NB. ....( Il est souhaitable mais non obligatoire que les valeurs des
    2729  !        parametres seuil_vap, seuil_liq soient pareilles a celles
    2830  !        qui  sont utilisees dans la routine    ADDFI       )
    2931  ! .................................................................
    30   !
     32
    3133  !DC iq_val and iq_liq are usable for q only, NOT for q_follow
    3234  !   and zx_defau_diag (crash if iq_val/liq==3) => vapor/liquid
     
    3739  REAL :: zx_defau_diag(ip1jmp1, llm, 2)
    3840  REAL :: q_follow(ip1jmp1, llm, 2)
    39   !
     41
    4042  INTEGER :: imprim
    4143  SAVE imprim
     
    5153    first = .FALSE.
    5254  END IF
    53   !
     55
    5456  ! Quand l'eau liquide est trop petite (ou negative), on prend
    5557  ! l'eau vapeur de la meme couche et la convertit en eau liquide
     
    7375    ENDDO
    7476  ENDDO
    75   !
     77
    7678  ! Quand l'eau vapeur est trop faible (ou negative), on complete
    7779  ! le defaut en prennant de l'eau vapeur de la couche au-dessous.
    78   !
     80
    7981  DO k = llm, 2, -1
    8082    !cc      zx_abc = dpres(k) / dpres(k-1)
     
    9294  ENDDO
    9395
    94   !
     96
    9597  ! Quand il s'agit de la premiere couche au-dessus du sol, on
    9698  ! doit imprimer un message d'avertissement (saturation possible).
    97   !
     99
    98100  DO i = 1, ip1jmp1
    99101    zx_pump(i) = AMAX1(0.0, seuil_vap - q(i, 1, iq_vap))
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/replay3d.F90

    r5136 r5159  
    2525  USE lmdz_comgeom2
    2626
     27  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     28  USE lmdz_paramet
    2729  IMPLICIT NONE
    2830
     
    5759  !   -------------
    5860
    59   INCLUDE "dimensions.h"
    60   INCLUDE "paramet.h"
     61
     62
    6163
    6264  REAL zdtvr
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/sw_case_williamson91_6.F90

    r5158 r5159  
    44
    55  !=======================================================================
    6   !
     6
    77  !   Author:    Thomas Dubos      original: 26/01/2010
    88  !   -------
    9   !
     9
    1010  !   Subject:
    1111  !   ------
    1212  !   Realise le cas-test 6 de Williamson et al. (1991) : onde de Rossby-Haurwitz
    13   !
     13
    1414  !   Method:
    1515  !   --------
    16   !
     16
    1717  !   Interface:
    1818  !   ----------
    19   !
     19
    2020  !  Input:
    2121  !  ------
    22   !
     22
    2323  !  Output:
    2424  !  -------
    25   !
     25
    2626  !=======================================================================
    2727  USE comconst_mod, ONLY: cpp, omeg, rad
     
    3030  USE lmdz_comgeom
    3131
     32  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     33  USE lmdz_paramet
    3234  IMPLICIT NONE
    3335  !-----------------------------------------------------------------------
     
    3537  !   ---------------
    3638
    37   INCLUDE "dimensions.h"
    38   INCLUDE "paramet.h"
     39
     40
    3941
    4042  !   Arguments:
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/tetaleveli1j.F90

    r5158 r5159  
    66
    77  ! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique
     8USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     9  USE lmdz_paramet
    810  IMPLICIT NONE
    911
    10   INCLUDE "dimensions.h"
     12
    1113
    1214  !================================================================
    13   !
     15
    1416  ! Interpoler des champs 3-D u, v et g du modele a un niveau de
    1517  ! pression donnee (pres)
    16   !
     18
    1719  ! INPUT:  ilon ----- nombre de points
    1820  !     ilev ----- nombre de couches
     
    2224  !     Qgcm ----- champ GCM
    2325  !     Qpres ---- champ interpolle au niveau pres
    24   !
     26
    2527  !================================================================
    26   !
     28
    2729  !   arguments :
    2830  !   -----------
     
    4345  ! REAL ptop, pbot, aist(klon), aisb(klon)
    4446  !
    45   INCLUDE "paramet.h"
    46   !
     47
     48
    4749  INTEGER :: lt(ip1jm), lb(ip1jm)
    4850  REAL :: ptop, pbot, aist(ip1jm), aisb(ip1jm)
     
    5153
    5254  INTEGER :: i, k
    53   !
     55
    5456  ! PRINT*,'tetalevel pres=',pres
    5557  !=====================================================================
     
    6062
    6163    ! Chercher les 2 couches les plus proches du niveau a obtenir
    62     !
     64
    6365    ! Eventuellement, faire l'extrapolation a partir des deux couches
    6466    ! les plus basses ou les deux couches les plus hautes:
     
    8789      END DO
    8890    END DO
    89     !
     91
    9092    ! Interpolation lineaire:
    91     !
     93
    9294    DO i = 1, ilon
    9395      ! interpolation en logarithme de pression:
    94       !
     96
    9597      ! ...   Modif . P. Le Van    ( 20/01/98) ....
    9698      !   Modif Frédéric Hourdin (3/01/02)
     
    98100      IF(pgcm(i, lb(i))==0.OR. &
    99101              pgcm(i, lt(i))==0.) THEN
    100         !
     102
    101103        PRINT*, 'i,lb,lt,2pgcm,pres', i, lb(i), &
    102104                lt(i), pgcm(i, lb(i)), pgcm(i, lt(i)), pres
    103         !
     105
    104106      ENDIF
    105       !
     107
    106108      aist(i) = LOG(pgcm(i, lb(i)) / pres) &
    107109              / LOG(pgcm(i, lb(i)) / pgcm(i, lt(i)))
     
    121123    !IM  $   Qgcm(i,lt(i)),aist(i),Qpres(i)
    122124  enddo
    123   !
     125
    124126  ! Je mets les vents a zero quand je rencontre une montagne
    125127  DO i = 1, ilon
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/tetaleveli1j1.F90

    r5158 r5159  
    66
    77  ! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique
     8USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     9  USE lmdz_paramet
    810  IMPLICIT NONE
    911
    10   INCLUDE "dimensions.h"
     12
    1113
    1214  !================================================================
    13   !
     15
    1416  ! Interpoler des champs 3-D u, v et g du modele a un niveau de
    1517  ! pression donnee (pres)
    16   !
     18
    1719  ! INPUT:  ilon ----- nombre de points
    1820  !     ilev ----- nombre de couches
     
    2224  !     Qgcm ----- champ GCM
    2325  !     Qpres ---- champ interpolle au niveau pres
    24   !
     26
    2527  !================================================================
    26   !
     28
    2729  !   arguments :
    2830  !   -----------
     
    4345  ! REAL ptop, pbot, aist(klon), aisb(klon)
    4446  !
    45   INCLUDE "paramet.h"
    46   !
     47
     48
    4749  INTEGER :: lt(ip1jmp1), lb(ip1jmp1)
    4850  REAL :: ptop, pbot, aist(ip1jmp1), aisb(ip1jmp1)
     
    5153
    5254  INTEGER :: i, k
    53   !
     55
    5456  ! PRINT*,'tetalevel pres=',pres
    5557  !=====================================================================
     
    6062
    6163    ! Chercher les 2 couches les plus proches du niveau a obtenir
    62     !
     64
    6365    ! Eventuellement, faire l'extrapolation a partir des deux couches
    6466    ! les plus basses ou les deux couches les plus hautes:
     
    8789      END DO
    8890    END DO
    89     !
     91
    9092    ! Interpolation lineaire:
    91     !
     93
    9294    DO i = 1, ilon
    9395      ! interpolation en logarithme de pression:
    94       !
     96
    9597      ! ...   Modif . P. Le Van    ( 20/01/98) ....
    9698      !   Modif Frédéric Hourdin (3/01/02)
     
    98100      IF(pgcm(i, lb(i))==0.OR. &
    99101              pgcm(i, lt(i))==0.) THEN
    100         !
     102
    101103        PRINT*, 'i,lb,lt,2pgcm,pres', i, lb(i), &
    102104                lt(i), pgcm(i, lb(i)), pgcm(i, lt(i)), pres
    103         !
     105
    104106      ENDIF
    105       !
     107
    106108      aist(i) = LOG(pgcm(i, lb(i)) / pres) &
    107109              / LOG(pgcm(i, lb(i)) / pgcm(i, lt(i)))
     
    121123    !IM  $   Qgcm(i,lt(i)),aist(i),Qpres(i)
    122124  enddo
    123   !
     125
    124126  ! Je mets les vents a zero quand je rencontre une montagne
    125127  DO i = 1, ilon
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/top_bound.F90

    r5158 r5159  
    1010  USE lmdz_comgeom2
    1111
     12USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     13  USE lmdz_paramet
    1214  IMPLICIT NONE
    1315  !
    14   INCLUDE "dimensions.h"
    15   INCLUDE "paramet.h"
     16
     17
    1618
    1719
     
    2123
    2224  !=======================================================================
    23   !
     25
    2426  !   Auteur:  F. LOTT
    2527  !   -------
    26   !
     28
    2729  !   Objet:
    2830  !   ------
    29   !
     31
    3032  !   Dissipation linéaire (ex top_bound de la physique)
    31   !
     33
    3234  !=======================================================================
    3335
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/vlsplt.F90

    r5158 r5159  
    1 !
     1
    22! $Id$
    33!
     
    66  USE infotrac, ONLY: nqtot, tracers
    77  USE lmdz_ssum_scopy, ONLY: scopy
    8   !
     8
    99  ! Auteurs:   P.Le Van, F.Hourdin, F.Forget
    10   !
     10
    1111  !    ********************************************************************
    1212  ! Shema  d'advection " pseudo amont " .
    1313  !    ********************************************************************
    1414  ! q,pbaru,pbarv,w sont des arguments d'entree  pour le s-pg ....
    15   !
     15
    1616  !   pente_max facteur de limitation des pentes: 2 en general
    1717  !                                           0 pour un schema amont
    1818  !   pbaru,pbarv,w flux de masse en u ,v ,w
    1919  !   pdt pas de temps
    20   !
     20
    2121  !   --------------------------------------------------------------------
     22USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     23  USE lmdz_paramet
    2224  IMPLICIT NONE
    2325  !
    24   INCLUDE "dimensions.h"
    25   INCLUDE "paramet.h"
    26 
    27   !
     26
     27
     28
     29
    2830  !   Arguments:
    2931  !   ----------
     
    3335  REAL :: w(ip1jmp1, llm), pdt
    3436  INTEGER :: iq ! CRisi
    35   !
     37
    3638  !  Local
    3739  !   ---------
    38   !
     40
    3941  INTEGER :: ij, l
    40   !
     42
    4143  REAL :: zm(ip1jmp1, llm, nqtot)
    4244  REAL :: mu(ip1jmp1, llm)
     
    110112
    111113  ! Auteurs:   P.Le Van, F.Hourdin, F.Forget
    112   !
     114
    113115  !    ********************************************************************
    114116  ! Shema  d'advection " pseudo amont " .
    115117  !    ********************************************************************
    116118  ! nq,iq,q,pbaru,pbarv,w sont des arguments d'entree  pour le s-pg ....
    117   !
    118   !
     119
     120
    119121  !   --------------------------------------------------------------------
     122USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     123  USE lmdz_paramet
    120124  IMPLICIT NONE
    121125  !
    122   INCLUDE "dimensions.h"
    123   INCLUDE "paramet.h"
    124   !
    125   !
     126
     127
     128
     129
    126130  !   Arguments:
    127131  !   ----------
     
    130134  REAL :: q(ip1jmp1, llm, nqtot)
    131135  INTEGER :: iq ! CRisi
    132   !
     136
    133137  !  Local
    134138  !   ---------
    135   !
     139
    136140  INTEGER :: ij, l, j, i, iju, ijq, indu(ip1jmp1), niju
    137141  INTEGER :: n0, iadvplus(ip1jmp1, llm), nl(llm)
    138   !
     142
    139143  REAL :: new_m, zu_m, zdum(ip1jmp1, llm)
    140144  REAL :: dxq(ip1jmp1, llm), dxqu(ip1jmp1)
     
    424428  USE lmdz_comgeom
    425429
    426  !
     430
    427431  ! Auteurs:   P.Le Van, F.Hourdin, F.Forget
    428   !
     432
    429433  !    ********************************************************************
    430434  ! Shema  d'advection " pseudo amont " .
     
    432436  ! q,masse_adv_v,w sont des arguments d'entree  pour le s-pg ....
    433437  ! dq            sont des arguments de sortie pour le s-pg ....
    434   !
    435   !
     438
     439
    436440  !   --------------------------------------------------------------------
    437441  USE comconst_mod, ONLY: pi
     442USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     443  USE lmdz_paramet
    438444  IMPLICIT NONE
    439445  !
    440   INCLUDE "dimensions.h"
    441   INCLUDE "paramet.h"
    442   !
    443   !
     446
     447
     448
     449
    444450  !   Arguments:
    445451  !   ----------
     
    448454  REAL :: q(ip1jmp1, llm, nqtot)
    449455  INTEGER :: iq ! CRisi
    450   !
     456
    451457  !  Local
    452458  !   ---------
    453   !
     459
    454460  INTEGER :: i, ij, l
    455   !
     461
    456462  REAL :: airej2, airejjm, airescb(iim), airesch(iim)
    457463  REAL :: dyq(ip1jmp1, llm), dyqv(ip1jm)
     
    493499  ENDIF
    494500
    495   !
     501
    496502  !PRINT*,'CALCUL EN LATITUDE'
    497503
    498504  DO l = 1, llm
    499     !
     505
    500506    !   --------------------------------
    501507    !  CALCUL EN LATITUDE
     
    590596    ! appn=min(pente_max/appn,1.)
    591597    ! apps=min(pente_max/apps,1.)
    592     !
    593     !
     598
     599
    594600    !   cas ou on a un extremum au pole
    595     !
     601
    596602    ! IF(dyqv(ismin(iim,dyqv,1))*dyqv(ismax(iim,dyqv,1)).le.0.)
    597603    !    &   appn=0.
     
    599605    !    &   dyqv(ismin(iim,dyqv(ip1jm-iip1+1),1)+ip1jm-iip1+1).le.0.)
    600606    !    &   apps=0.
    601     !
     607
    602608    !   limitation des pentes aux poles
    603609    ! DO ij=1,iip1
     
    605611    !    dyq(ip1jm+ij)=apps*dyq(ip1jm+ij)
    606612    ! ENDDO
    607     !
     613
    608614    !   test
    609615    !  DO ij=1,iip1
     
    614620    !     dyq(ij)=dyq(ij)*cos(rlatu((ij-1)/iip1+1))
    615621    !  ENDDO
    616     !
     622
    617623    ! changement 10 07 96
    618624    ! IF(dyqv(ismin(iim,dyqv,1))*dyqv(ismax(iim,dyqv,1)).le.0.)
     
    626632    !    ENDDO
    627633    ! ENDIF
    628     !
     634
    629635    ! IF(dyqv(ismax(iim,dyqv(ip1jm-iip1+1),1)+ip1jm-iip1+1)*
    630636    !    & dyqv(ismin(iim,dyqv(ip1jm-iip1+1),1)+ip1jm-iip1+1).le.0.)
     
    745751  USE infotrac, ONLY: nqtot, tracers, & ! CRisi
    746752          min_qParent, min_qMass, min_ratio ! MVals et CRisi
    747   !
     753
    748754  ! Auteurs:   P.Le Van, F.Hourdin, F.Forget
    749   !
     755
    750756  !    ********************************************************************
    751757  ! Shema  d'advection " pseudo amont " .
     
    754760  ! dq            sont des arguments de sortie pour le s-pg ....
    755761  !   --------------------------------------------------------------------
     762USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     763  USE lmdz_paramet
    756764  IMPLICIT NONE
    757765  !
    758   INCLUDE "dimensions.h"
    759   INCLUDE "paramet.h"
    760   !
    761   !
     766
     767
     768
     769
    762770  !   Arguments:
    763771  !   ----------
     
    766774  REAL :: w(ip1jmp1, llm + 1)
    767775  INTEGER :: iq
    768   !
     776
    769777  !  Local
    770778  !   ---------
    771   !
     779
    772780  INTEGER :: ij, l
    773   !
     781
    774782  REAL :: wq(ip1jmp1, llm + 1), newmasse
    775783
     
    886894
    887895SUBROUTINE minmaxq(zq, qmin, qmax, comment)
    888 
    889   INCLUDE "dimensions.h"
    890   INCLUDE "paramet.h"
     896  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     897  USE lmdz_paramet
    891898
    892899  CHARACTER(LEN = 20) :: comment
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/vlspltqs.F90

    r5158 r5159  
    1 !
     1
    22! $Id$
    3 !
     3
    44SUBROUTINE vlspltqs(q, pente_max, masse, w, pbaru, pbarv, pdt, &
    55        p, pk, teta, iq)
    66  USE infotrac, ONLY: nqtot, tracers
    7   !
     7
    88  ! Auteurs:   P.Le Van, F.Hourdin, F.Forget, F.Codron
    9   !
     9
    1010  !    ********************************************************************
    1111  !      Shema  d'advection " pseudo amont " .
     
    1414  !    ********************************************************************
    1515  ! q,pbaru,pbarv,w sont des arguments d'entree  pour le s-pg ....
    16   !
     16
    1717  ! pente_max facteur de limitation des pentes: 2 en general
    1818  !0 pour un schema amont
    1919  ! pbaru,pbarv,w flux de masse en u ,v ,w
    2020  ! pdt pas de temps
    21   !
     21
    2222  ! teta temperature potentielle, p pression aux interfaces,
    2323  ! pk exner au milieu des couches necessaire pour calculer Qsat
     
    2727  USE logic_mod, ONLY: adv_qsat_liq
    2828  USE lmdz_ssum_scopy, ONLY: scopy
     29USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     30  USE lmdz_paramet
    2931  IMPLICIT NONE
    3032  !
    31   INCLUDE "dimensions.h"
    32   INCLUDE "paramet.h"
    33 
    34   !
     33
     34
     35
     36
    3537  !   Arguments:
    3638  !   ----------
     
    4143  REAL :: p(ip1jmp1, llmp1), teta(ip1jmp1, llm), pk(ip1jmp1, llm)
    4244  INTEGER :: iq ! CRisi
    43   !
     45
    4446  !  Local
    4547  !   ---------
    46   !
     48
    4749  INTEGER :: i, ij, l, j, ii
    4850  INTEGER :: ifils, iq2 ! CRisi
    49   !
     51
    5052  REAL :: qsat(ip1jmp1, llm)
    5153  REAL :: zm(ip1jmp1, llm, nqtot)
     
    178180  USE infotrac, ONLY: nqtot, tracers ! CRisi
    179181
    180   !
     182
    181183  ! Auteurs:   P.Le Van, F.Hourdin, F.Forget
    182   !
     184
    183185  !    ********************************************************************
    184186  ! Shema  d'advection " pseudo amont " .
    185187  !    ********************************************************************
    186   !
     188
    187189  !   --------------------------------------------------------------------
     190USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     191  USE lmdz_paramet
    188192  IMPLICIT NONE
    189193  !
    190   INCLUDE "dimensions.h"
    191   INCLUDE "paramet.h"
    192   !
    193   !
     194
     195
     196
     197
    194198  !   Arguments:
    195199  !   ----------
     
    199203  REAL :: qsat(ip1jmp1, llm)
    200204  INTEGER :: iq ! CRisi
    201   !
     205
    202206  !  Local
    203207  !   ---------
    204   !
     208
    205209  INTEGER :: ij, l, j, i, iju, ijq, indu(ip1jmp1), niju
    206210  INTEGER :: n0, iadvplus(ip1jmp1, llm), nl(llm)
    207   !
     211
    208212  REAL :: new_m, zu_m, zdum(ip1jmp1, llm)
    209213  REAL :: dxq(ip1jmp1, llm), dxqu(ip1jmp1)
     
    508512SUBROUTINE vlyqs(q, pente_max, masse, masse_adv_v, qsat, iq)
    509513  USE infotrac, ONLY: nqtot, tracers ! CRisi
    510   !
     514
    511515  ! Auteurs:   P.Le Van, F.Hourdin, F.Forget
    512   !
     516
    513517  !    ********************************************************************
    514518  ! Shema  d'advection " pseudo amont " .
     
    516520  ! q,masse_adv_v,w sont des arguments d'entree  pour le s-pg ....
    517521  !     qsat            est   un argument de sortie pour le s-pg ....
    518   !
    519   !
     522
     523
    520524  !   --------------------------------------------------------------------
    521525
     
    524528  USE lmdz_comgeom
    525529
     530USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     531  USE lmdz_paramet
    526532  IMPLICIT NONE
    527533  !
    528   INCLUDE "dimensions.h"
    529   INCLUDE "paramet.h"
    530   !
     534
     535
     536
    531537  !   Arguments:
    532538  !   ----------
     
    536542  REAL :: qsat(ip1jmp1, llm)
    537543  INTEGER :: iq ! CRisi
    538   !
     544
    539545  !  Local
    540546  !   ---------
    541   !
     547
    542548  INTEGER :: i, ij, l
    543   !
     549
    544550  REAL :: airej2, airejjm, airescb(iim), airesch(iim)
    545551  REAL :: dyq(ip1jmp1, llm), dyqv(ip1jm)
     
    586592
    587593  DO l = 1, llm
    588     !
     594
    589595    !   --------------------------------
    590596    !  CALCUL EN LATITUDE
     
    673679    ! appn=min(pente_max/appn,1.)
    674680    ! apps=min(pente_max/apps,1.)
    675     !
    676     !
     681
     682
    677683    !   cas ou on a un extremum au pole
    678     !
     684
    679685    ! IF(dyqv(ismin(iim,dyqv,1))*dyqv(ismax(iim,dyqv,1)).le.0.)
    680686    !    &   appn=0.
     
    682688    !    &   dyqv(ismin(iim,dyqv(ip1jm-iip1+1),1)+ip1jm-iip1+1).le.0.)
    683689    !    &   apps=0.
    684     !
     690
    685691    !   limitation des pentes aux poles
    686692    ! DO ij=1,iip1
     
    688694    !    dyq(ip1jm+ij)=apps*dyq(ip1jm+ij)
    689695    ! ENDDO
    690     !
     696
    691697    !   test
    692698    !  DO ij=1,iip1
     
    697703    !     dyq(ij)=dyq(ij)*cos(rlatu((ij-1)/iip1+1))
    698704    !  ENDDO
    699     !
     705
    700706    ! changement 10 07 96
    701707    ! IF(dyqv(ismin(iim,dyqv,1))*dyqv(ismax(iim,dyqv,1)).le.0.)
     
    709715    !    ENDDO
    710716    ! ENDIF
    711     !
     717
    712718    ! IF(dyqv(ismax(iim,dyqv(ip1jm-iip1+1),1)+ip1jm-iip1+1)*
    713719    !    & dyqv(ismin(iim,dyqv(ip1jm-iip1+1),1)+ip1jm-iip1+1).le.0.)
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/wrgrads.f90

    r5158 r5159  
    118118    enddo
    119119    WRITE(unit(if), '(a7)') 'ENDVARS'
    120     !
     120
    121121    1000   format(a5, 3x, i4, i3, 1x, a39)
    122122
Note: See TracChangeset for help on using the changeset viewer.