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

Last change on this file since 1807 was 1807, checked in by Ehouarn Millour, 11 years ago

Unification de la définition et de l'écriture des variables dans la routine histwrite_phy (le premier appel définit les variables, les suivants écrivent). Nettoyage de phys_output_mod, déplacement des histdef_23d dans iophy. Ajout de prints de débogage dans histwrite_phy.
UG
...................................................

Unification of definition and writing of vars in histwrite_phy routine (the first call defines vars, the others do the writing). Cleaning up of phys_output_mod, moving of histdef23_d routines into iophy. Adding debugging prints to histwrite_phy.
UG

File size: 3.5 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 = 6
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
44 ! swaero_diag : flag indicates if it is necessary to do calculation for some aerosol diagnostics
45      LOGICAL, SAVE                                :: swaero_diag=.FALSE.
46!$OMP THREADPRIVATE(swaero_diag)
47
48      INTEGER, SAVE:: levmin(nfiles) = 1
49      INTEGER, SAVE:: levmax(nfiles)
50!$OMP THREADPRIVATE(levmin, levmax)
51
52      REAL, SAVE                :: zdtime_moy
53!$OMP THREADPRIVATE(zdtime_moy)
54
55      LOGICAL, SAVE :: vars_defined = .FALSE. ! ug PAS THREADPRIVATE ET C'EST NORMAL
56
57  TYPE ctrl_out
58     INTEGER,DIMENSION(nfiles)            :: flag
59     CHARACTER(len=20)                    :: name
60     CHARACTER(len=150)                   :: description
61     CHARACTER(len=20)                    :: unit
62     CHARACTER(len=20),DIMENSION(nfiles)  :: type_ecrit
63  END TYPE ctrl_out
64CONTAINS
65
66!======================================================================
67SUBROUTINE phys_output_var_init
68use dimphy
69
70IMPLICIT NONE
71
72      allocate(snow_o(klon), zfra_o(klon))
73      allocate(itau_con(klon))
74      allocate (bils_ec(klon),bils_tke(klon),bils_diss(klon),bils_kinetic(klon),bils_enthalp(klon),bils_latent(klon))
75
76END SUBROUTINE phys_output_var_init
77
78!======================================================================
79SUBROUTINE phys_output_var_end
80use dimphy
81IMPLICIT NONE
82
83      deallocate(snow_o,zfra_o,itau_con)
84      deallocate (bils_ec,bils_tke,bils_diss,bils_kinetic,bils_enthalp,bils_latent)
85
86END SUBROUTINE phys_output_var_end
87
88END MODULE phys_output_var_mod
Note: See TracBrowser for help on using the repository browser.