source: LMDZ5/trunk/libf/phylmd/phys_output_var_mod.F90 @ 1856

Last change on this file since 1856 was 1828, checked in by idelkadi, 11 years ago

Gestion des fichiers de sorties sur les niveaux de pression NMC (hist*NMC.nc) via le meme mecanisme utilise pour les fichiers histoires (phys_output_mod, ...)
Ces sorties sont ainsi controles par les memes flags : phys_out_filekeys, phys_out_filenames, phys_out_filetimesteps, phys_out_filelevels, ...
(exemple dans config.def : phys_out_filenames=histmth histday histhf histins histLES histstn histmthNMC histdayNMC histhfNMC)

File size: 3.6 KB
Line 
1!
2! phys_local_var_mod.F90 1327 2010-03-17 15:33:56Z idelkadi $
3
4      MODULE phys_output_var_mod
5
6      use dimphy
7! Variables outputs pour les ecritures des sorties
8!======================================================================
9!
10!
11!======================================================================
12! Declaration des variables
13
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)
25
26! ug Plein de variables venues de phys_output_mod
27      INTEGER, PARAMETER                           :: nfiles = 9
28      LOGICAL, DIMENSION(nfiles), SAVE             :: clef_files
29      LOGICAL, DIMENSION(nfiles), SAVE             :: clef_stations
30      INTEGER, DIMENSION(nfiles), SAVE             :: lev_files
31      INTEGER, DIMENSION(nfiles), SAVE             :: nid_files
32      INTEGER, DIMENSION(nfiles), SAVE  :: nnid_files
33!$OMP THREADPRIVATE(clef_files, clef_stations, lev_files,nid_files,nnid_files)
34      INTEGER, DIMENSION(nfiles), SAVE :: nnhorim
35
36      INTEGER, DIMENSION(nfiles), SAVE :: nhorim, nvertm
37      INTEGER, DIMENSION(nfiles), SAVE :: nvertap, nvertbp, nvertAlt
38      REAL, DIMENSION(nfiles), SAVE                :: zoutm
39      CHARACTER(LEN=20), DIMENSION(nfiles), SAVE   :: type_ecri
40!$OMP THREADPRIVATE(nnhorim, nhorim, nvertm, zoutm,type_ecri)
41      CHARACTER(LEN=20), DIMENSION(nfiles), SAVE  :: type_ecri_files, phys_out_filetypes
42!$OMP THREADPRIVATE(type_ecri_files, phys_out_filetypes)
43    CHARACTER(LEN=20), DIMENSION(nfiles), SAVE  :: phys_out_filenames
44!$OMP THREADPRIVATE(phys_out_filenames)
45
46 ! swaero_diag : flag indicates if it is necessary to do calculation for some aerosol diagnostics
47      LOGICAL, SAVE                                :: swaero_diag=.FALSE.
48!$OMP THREADPRIVATE(swaero_diag)
49
50      INTEGER, SAVE:: levmin(nfiles) = 1
51      INTEGER, SAVE:: levmax(nfiles)
52!$OMP THREADPRIVATE(levmin, levmax)
53
54      REAL, SAVE                :: zdtime_moy
55!$OMP THREADPRIVATE(zdtime_moy)
56
57      LOGICAL, SAVE :: vars_defined = .FALSE. ! ug PAS THREADPRIVATE ET C'EST NORMAL
58
59  TYPE ctrl_out
60     INTEGER,DIMENSION(nfiles)            :: flag
61     CHARACTER(len=20)                    :: name
62     CHARACTER(len=150)                   :: description
63     CHARACTER(len=20)                    :: unit
64     CHARACTER(len=20),DIMENSION(nfiles)  :: type_ecrit
65  END TYPE ctrl_out
66CONTAINS
67
68!======================================================================
69SUBROUTINE phys_output_var_init
70use dimphy
71
72IMPLICIT NONE
73
74      allocate(snow_o(klon), zfra_o(klon))
75      allocate(itau_con(klon))
76      allocate (bils_ec(klon),bils_tke(klon),bils_diss(klon),bils_kinetic(klon),bils_enthalp(klon),bils_latent(klon))
77
78END SUBROUTINE phys_output_var_init
79
80!======================================================================
81SUBROUTINE phys_output_var_end
82use dimphy
83IMPLICIT NONE
84
85      deallocate(snow_o,zfra_o,itau_con)
86      deallocate (bils_ec,bils_tke,bils_diss,bils_kinetic,bils_enthalp,bils_latent)
87
88END SUBROUTINE phys_output_var_end
89
90END MODULE phys_output_var_mod
Note: See TracBrowser for help on using the repository browser.