Ignore:
Timestamp:
Jan 20, 2014, 5:20:05 PM (10 years ago)
Author:
lguez
Message:

New run-time parameters: ok_gwd_rando, ruwmax and sat. Logical
variable ok_gwd_rando activates the new stochastic parameterization of
the drag of non-orographic gravity waves, by F. Lott. Default value of
ok_gwd_rando is false. A run with ok_gwd_rando creates new variables
in restartphy.nc: du_gwd_rando and dv_gwd_rando. Possible output in
history files of new variables du_gwd_rando, dv_gwd_rando and
vstr_gwd_rando.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/phys_output_var_mod.F90

    r1907 r1938  
    22! phys_local_var_mod.F90 1327 2010-03-17 15:33:56Z idelkadi $
    33
    4       MODULE phys_output_var_mod
     4MODULE phys_output_var_mod
    55
    6       use dimphy
    7 ! Variables outputs pour les ecritures des sorties
    8 !======================================================================
    9 !
    10 !
    11 !======================================================================
    12 ! Declaration des variables
     6  use dimphy
     7  ! Variables outputs pour les ecritures des sorties
     8  !======================================================================
     9  !
     10  !
     11  !======================================================================
     12  ! Declaration des variables
    1313
    14       REAL, SAVE, ALLOCATABLE :: snow_o(:), zfra_o(:)
    15 !$OMP THREADPRIVATE(snow_o, zfra_o)
    16       INTEGER, SAVE, ALLOCATABLE ::  itau_con(:)       ! Nombre de pas ou rflag <= 1
    17 !$OMP THREADPRIVATE(itau_con)
    18       REAL, ALLOCATABLE :: bils_ec(:) ! Contribution of energy conservation
    19       REAL, ALLOCATABLE :: bils_tke(:) ! Contribution of energy conservation
    20       REAL, ALLOCATABLE :: bils_diss(:) ! Contribution of energy conservation
    21       REAL, ALLOCATABLE :: bils_kinetic(:) ! bilan de chaleur au sol, kinetic
    22       REAL, ALLOCATABLE :: bils_enthalp(:) ! bilan de chaleur au sol
    23       REAL, ALLOCATABLE :: bils_latent(:) ! bilan de chaleur au sol
    24 !$OMP THREADPRIVATE(bils_ec,bils_tke,bils_diss,bils_kinetic,bils_enthalp,bils_latent)
     14  REAL, SAVE, ALLOCATABLE :: snow_o(:), zfra_o(:)
     15  !$OMP THREADPRIVATE(snow_o, zfra_o)
     16  INTEGER, SAVE, ALLOCATABLE ::  itau_con(:)       ! Nombre de pas ou rflag <= 1
     17  !$OMP THREADPRIVATE(itau_con)
     18  REAL, ALLOCATABLE :: bils_ec(:) ! Contribution of energy conservation
     19  REAL, ALLOCATABLE :: bils_tke(:) ! Contribution of energy conservation
     20  REAL, ALLOCATABLE :: bils_diss(:) ! Contribution of energy conservation
     21  REAL, ALLOCATABLE :: bils_kinetic(:) ! bilan de chaleur au sol, kinetic
     22  REAL, ALLOCATABLE :: bils_enthalp(:) ! bilan de chaleur au sol
     23  REAL, ALLOCATABLE :: bils_latent(:) ! bilan de chaleur au sol
     24  !$OMP THREADPRIVATE(bils_ec,bils_tke,bils_diss,bils_kinetic,bils_enthalp,bils_latent)
    2525
    2626
    27 ! ug Plein de variables venues de phys_output_mod
    28       INTEGER, PARAMETER                           :: nfiles = 9
    29       LOGICAL, DIMENSION(nfiles), SAVE             :: clef_files
    30       LOGICAL, DIMENSION(nfiles), SAVE             :: clef_stations
    31       INTEGER, DIMENSION(nfiles), SAVE             :: lev_files
    32       INTEGER, DIMENSION(nfiles), SAVE             :: nid_files
    33       INTEGER, DIMENSION(nfiles), SAVE  :: nnid_files
    34 !$OMP THREADPRIVATE(clef_files, clef_stations, lev_files,nid_files,nnid_files)
    35       INTEGER, DIMENSION(nfiles), SAVE :: nnhorim
     27  ! ug Plein de variables venues de phys_output_mod
     28  INTEGER, PARAMETER                           :: nfiles = 9
     29  LOGICAL, DIMENSION(nfiles), SAVE             :: clef_files
     30  LOGICAL, DIMENSION(nfiles), SAVE             :: clef_stations
     31  INTEGER, DIMENSION(nfiles), SAVE             :: lev_files
     32  INTEGER, DIMENSION(nfiles), SAVE             :: nid_files
     33  INTEGER, DIMENSION(nfiles), SAVE  :: nnid_files
     34  !$OMP THREADPRIVATE(clef_files, clef_stations, lev_files,nid_files,nnid_files)
     35  INTEGER, DIMENSION(nfiles), SAVE :: nnhorim
    3636
    37       INTEGER, DIMENSION(nfiles), SAVE :: nhorim, nvertm
    38       INTEGER, DIMENSION(nfiles), SAVE :: nvertap, nvertbp, nvertAlt
    39       REAL, DIMENSION(nfiles), SAVE                :: zoutm
    40       CHARACTER(LEN=20), DIMENSION(nfiles), SAVE   :: type_ecri
    41 !$OMP THREADPRIVATE(nnhorim, nhorim, nvertm, zoutm,type_ecri)
    42       CHARACTER(LEN=20), DIMENSION(nfiles), SAVE  :: type_ecri_files, phys_out_filetypes
    43 !$OMP THREADPRIVATE(type_ecri_files, phys_out_filetypes)
    44     CHARACTER(LEN=20), DIMENSION(nfiles), SAVE  :: phys_out_filenames
    45 !$OMP THREADPRIVATE(phys_out_filenames)
     37  INTEGER, DIMENSION(nfiles), SAVE :: nhorim, nvertm
     38  INTEGER, DIMENSION(nfiles), SAVE :: nvertap, nvertbp, nvertAlt
     39  REAL, DIMENSION(nfiles), SAVE                :: zoutm
     40  CHARACTER(LEN=20), DIMENSION(nfiles), SAVE   :: type_ecri
     41  !$OMP THREADPRIVATE(nnhorim, nhorim, nvertm, zoutm,type_ecri)
     42  CHARACTER(LEN=20), DIMENSION(nfiles), SAVE  :: type_ecri_files, phys_out_filetypes
     43  !$OMP THREADPRIVATE(type_ecri_files, phys_out_filetypes)
     44  CHARACTER(LEN=20), DIMENSION(nfiles), SAVE  :: phys_out_filenames
     45  !$OMP THREADPRIVATE(phys_out_filenames)
    4646
    47  ! swaero_diag : flag indicates if it is necessary to do calculation for some aerosol diagnostics
    48       LOGICAL, SAVE                                :: swaero_diag=.FALSE.
    49 !$OMP THREADPRIVATE(swaero_diag)
     47  ! swaero_diag : flag indicates if it is necessary to do calculation for some aerosol diagnostics
     48  LOGICAL, SAVE                                :: swaero_diag=.FALSE.
     49  !$OMP THREADPRIVATE(swaero_diag)
    5050
    51       INTEGER, SAVE:: levmin(nfiles) = 1
    52       INTEGER, SAVE:: levmax(nfiles)
    53 !$OMP THREADPRIVATE(levmin, levmax)
     51  INTEGER, SAVE:: levmin(nfiles) = 1
     52  INTEGER, SAVE:: levmax(nfiles)
     53  !$OMP THREADPRIVATE(levmin, levmax)
    5454
    55       REAL, SAVE                :: zdtime_moy
    56 !$OMP THREADPRIVATE(zdtime_moy)
     55  REAL, SAVE                :: zdtime_moy
     56  !$OMP THREADPRIVATE(zdtime_moy)
    5757
    58       LOGICAL, SAVE :: vars_defined = .FALSE. ! ug PAS THREADPRIVATE ET C'EST NORMAL
     58  LOGICAL, SAVE :: vars_defined = .FALSE. ! ug PAS THREADPRIVATE ET C'EST NORMAL
     59
     60  REAL, allocatable:: zustr_gwd_rando(:), zvstr_gwd_rando(:) ! (klon)
     61  !$OMP THREADPRIVATE(zustr_gwd_rando, zvstr_gwd_rando)
    5962
    6063  TYPE ctrl_out
     
    6568     CHARACTER(len=20),DIMENSION(nfiles)  :: type_ecrit
    6669  END TYPE ctrl_out
     70
    6771CONTAINS
    6872
    69 !======================================================================
    70 SUBROUTINE phys_output_var_init
    71 use dimphy
     73  !======================================================================
     74  SUBROUTINE phys_output_var_init
     75    use dimphy
    7276
    73 IMPLICIT NONE
     77    IMPLICIT NONE
    7478
    75       allocate(snow_o(klon), zfra_o(klon))
    76       allocate(itau_con(klon))
    77       allocate (bils_ec(klon),bils_tke(klon),bils_diss(klon),bils_kinetic(klon),bils_enthalp(klon),bils_latent(klon))
     79    include "clesphys.h"
    7880
    79 END SUBROUTINE phys_output_var_init
     81    !------------------------------------------------
    8082
    81 !======================================================================
    82 SUBROUTINE phys_output_var_end
    83 use dimphy
    84 IMPLICIT NONE
     83    allocate(snow_o(klon), zfra_o(klon))
     84    allocate(itau_con(klon))
     85    allocate (bils_ec(klon),bils_tke(klon),bils_diss(klon),bils_kinetic(klon),bils_enthalp(klon),bils_latent(klon))
    8586
    86       deallocate(snow_o,zfra_o,itau_con)
    87       deallocate (bils_ec,bils_tke,bils_diss,bils_kinetic,bils_enthalp,bils_latent)
     87    IF (ok_gwd_rando) allocate(zustr_gwd_rando(klon), zvstr_gwd_rando(klon))
    8888
    89 END SUBROUTINE phys_output_var_end
     89  END SUBROUTINE phys_output_var_init
     90
     91  !======================================================================
     92  SUBROUTINE phys_output_var_end
     93    use dimphy
     94    IMPLICIT NONE
     95
     96    deallocate(snow_o,zfra_o,itau_con)
     97    deallocate (bils_ec,bils_tke,bils_diss,bils_kinetic,bils_enthalp,bils_latent)
     98
     99  END SUBROUTINE phys_output_var_end
    90100
    91101END MODULE phys_output_var_mod
Note: See TracChangeset for help on using the changeset viewer.