source: LMDZ4/trunk/libf/phylmd/phys_output_mod.F90 @ 910

Last change on this file since 910 was 907, checked in by lmdzadmin, 17 years ago

Ajout nouvelle ecriture des fichiers de sortie par AI
IM

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 77.9 KB
RevLine 
[907]1! Abderrahmane 12 2007
2!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3!!! Ecreture des Sorties du modele dans les fichiers Netcdf :
4! histmth.nc : moyennes mensuelles
5! histday.nc : moyennes journalieres
6! histhf.nc  : moyennes toutes les 3 heures
7! histins.nc : valeurs instantanees
8!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
9
10MODULE phys_output_mod
11
12  IMPLICIT NONE
13
14   integer, parameter                :: nfiles = 4
15   logical, dimension(nfiles), save  :: clef_files
16   integer, dimension(nfiles), save  :: lev_files
17   integer, dimension(nfiles), save  :: nid_files
18!   integer, save                     :: nid_hf3d
19
20!!!!!!!!!! stockage dans une region limitee pour chaque fichier !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
21!                 entre [lonmin_reg,lonmax_reg] et [latmin_reg,latmax_reg]
22
23  logical, dimension(nfiles), save  :: ok_reglim         = (/ .false., .true., .true., .false. /)
24  real, dimension(nfiles), save     :: lonmin_reg        = (/ 0., 0., 0., 0. /)
25  real, dimension(nfiles), save     :: lonmax_reg        = (/ 90., 90., 90., 90. /)
26  real, dimension(nfiles), save     :: latmin_reg        = (/ 0., 0., 0., 0. /)
27  real, dimension(nfiles), save     :: latmax_reg        = (/ 90., 90., 90., 90. /)
28
29!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
30!! Definition pour chaque variable du niveau d ecriture dans chaque fichier
31!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!/ histmth, histday, histhf, histins /)!!!!!!!!!!!!
32!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
33
34!!! 1D
35  integer, dimension(nfiles) , save :: flag_phis         = (/ 1, 1, 10, 1 /)
36  integer, dimension(nfiles) , save :: flag_aire         = (/ 1, 1, 10,  1 /)
37  integer, dimension(nfiles) , save :: flag_contfracATM  = (/ 10, 1,  1, 10 /)
38  integer, dimension(nfiles) , save :: flag_contfracOR   = (/ 10, 1,  1, 10 /)
39  integer, dimension(nfiles) , save :: flag_aireTER      = (/ 10, 10, 1, 10 /)
40 
41!!! 2D
42  integer, dimension(nfiles) , save :: flag_flat         = (/ 10, 1, 10, 10 /)
43  integer, dimension(nfiles) , save :: flag_slp          = (/ 1, 1, 1, 10 /)
44  integer, dimension(nfiles) , save :: flag_tsol         = (/ 1, 1, 1, 1 /)
45  integer, dimension(nfiles) , save :: flag_t2m          = (/ 1, 1, 1, 1 /)
46  integer, dimension(nfiles) , save :: flag_t2m_min      = (/ 1, 1, 10, 10 /)
47  integer, dimension(nfiles) , save :: flag_t2m_max      = (/ 1, 1, 10, 10 /)
48  integer, dimension(nfiles) , save :: flag_t2m_sol      = (/ 10, 4, 10, 10 /)
49  integer, dimension(nfiles) , save :: flag_wind10m      = (/ 1, 1, 1, 10 /)
50  integer, dimension(nfiles) , save :: flag_wind10max    = (/ 10, 1, 10, 10 /)
51  integer, dimension(nfiles) , save :: flag_sicf         = (/ 1, 1, 10, 10 /)
52  integer, dimension(nfiles) , save :: flag_q2m          = (/ 1, 1, 1, 1 /)
53  integer, dimension(nfiles) , save :: flag_u10m         = (/ 1, 1, 1, 1 /)
54  integer, dimension(nfiles) , save :: flag_v10m         = (/ 1, 1, 1, 1 /)
55  integer, dimension(nfiles) , save :: flag_psol         = (/ 1, 1, 1, 1 /)
56  integer, dimension(nfiles) , save :: flag_qsurf        = (/ 1, 10, 10, 10 /)
57
58  integer, dimension(nfiles) , save :: flag_u10m_sol     = (/ 10, 4, 10, 10 /)
59  integer, dimension(nfiles) , save :: flag_v10m_sol     = (/ 10, 4, 10, 10 /)
60
61  integer, dimension(nfiles) , save :: flag_qsol         = (/ 1, 10, 10, 1 /)
62
63  integer, dimension(nfiles),save   :: flag_ndayrain     = (/ 1, 10, 10, 10 /)
64  integer, dimension(nfiles),save  :: flag_precip(nfiles)= (/ 1, 1, 1, 1 /)
65  integer,  dimension(nfiles), save :: flag_plul(nfiles) = (/ 1, 1, 10, 1 /)
66
67  integer, dimension(nfiles) , save :: flag_pluc         = (/ 1, 1, 10, 1 /)
68  integer, dimension(nfiles) , save :: flag_snow         = (/ 1, 1, 10, 1 /)
69  integer, dimension(nfiles) , save :: flag_evap         = (/ 1, 1, 10, 1 /)
70  integer, dimension(nfiles) , save :: flag_tops         = (/ 1, 1, 10, 10 /)
71  integer, dimension(nfiles) , save :: flag_tops0        = (/ 1, 5, 10, 10 /)
72  integer, dimension(nfiles) , save :: flag_topl         = (/ 1, 1, 10, 1 /)
73  integer, dimension(nfiles) , save :: flag_topl0        = (/ 1, 5, 10, 10 /)
74  integer, dimension(nfiles) , save :: flag_SWupTOA      = (/ 1, 4, 10, 10 /)
75  integer, dimension(nfiles) , save :: flag_SWupTOAclr   = (/ 1, 4, 10, 10 /)
76  integer, dimension(nfiles) , save :: flag_SWdnTOA      = (/ 1, 4, 10, 10 /)
77  integer, dimension(nfiles) , save :: flag_SWdnTOAclr   = (/ 1, 4, 10, 10 /)
78  integer, dimension(nfiles) , save :: flag_SWup200      = (/ 1, 10, 10, 10 /)
79  integer, dimension(nfiles) , save :: flag_SWup200clr   = (/ 10, 1, 10, 10 /)
80  integer, dimension(nfiles) , save :: flag_SWdn200      = (/ 1, 10, 10, 10 /)
81  integer, dimension(nfiles) , save :: flag_SWdn200clr   = (/ 10, 1, 10, 10 /)
82
83! arajouter
84!  integer, dimension(nfiles) , save :: flag_LWupTOA     = (/ 1, 4, 10, 10 /)
85!  integer, dimension(nfiles) , save :: flag_LWupTOAclr  = (/ 1, 4, 10, 10 /)
86!  integer, dimension(nfiles) , save :: flag_LWdnTOA     = (/ 1, 4, 10, 10 /)
87!  integer, dimension(nfiles) , save :: flag_LWdnTOAclr  = (/ 1, 4, 10, 10 /)
88
89  integer, dimension(nfiles) , save :: flag_LWup200      = (/ 1, 10, 10, 10 /)
90  integer, dimension(nfiles) , save :: flag_LWup200clr   = (/ 1, 10, 10, 10 /)
91  integer, dimension(nfiles) , save :: flag_LWdn200      = (/ 1, 10, 10, 10 /)
92  integer, dimension(nfiles) , save :: flag_LWdn200clr   = (/ 1, 10, 10, 10 /)
93  integer, dimension(nfiles) , save :: flag_sols         = (/ 1, 1, 10, 1 /)
94  integer, dimension(nfiles) , save :: flag_sols0        = (/ 1, 5, 10, 10 /)
95  integer, dimension(nfiles) , save :: flag_soll         = (/ 1, 1, 10, 1 /)
96  integer, dimension(nfiles) , save :: flag_soll0        = (/ 1, 5, 10, 10 /)
97  integer, dimension(nfiles) , save :: flag_radsol       = (/ 1, 1, 10, 10 /)
98  integer, dimension(nfiles) , save :: flag_SWupSFC      = (/ 1, 4, 10, 10 /)
99  integer, dimension(nfiles) , save :: flag_SWupSFCclr   = (/ 1, 4, 10, 10 /)
100  integer, dimension(nfiles) , save :: flag_SWdnSFC      = (/ 1, 1, 10, 10 /)
101  integer, dimension(nfiles) , save :: flag_SWdnSFCclr   = (/ 1, 4, 10, 10 /)
102  integer, dimension(nfiles) , save :: flag_LWupSFC      = (/ 1, 4, 10, 10 /)
103  integer, dimension(nfiles) , save :: flag_LWupSFCclr   = (/ 1, 4, 10, 10 /)
104  integer, dimension(nfiles) , save :: flag_LWdnSFC      = (/ 1, 4, 10, 10 /)
105  integer, dimension(nfiles) , save :: flag_LWdnSFCclr   = (/ 1, 4, 10, 10 /)
106  integer, dimension(nfiles) , save :: flag_bils         = (/ 1, 2, 10, 1 /)
107  integer, dimension(nfiles) , save :: flag_sens         = (/ 1, 1, 10, 1 /)
108  integer, dimension(nfiles) , save :: flag_fder         = (/ 1, 2, 10, 1 /)
109  integer, dimension(nfiles) , save :: flag_ffonte       = (/ 1, 10, 10, 10 /)
110  integer, dimension(nfiles) , save :: flag_fqcalving    = (/ 1, 10, 10, 10 /)
111  integer, dimension(nfiles) , save :: flag_fqfonte      = (/ 1, 10, 10, 10 /)
112
113  integer, dimension(nfiles) , save :: flag_taux_sol     = (/ 1, 4, 10, 1 /)
114  integer, dimension(nfiles) , save :: flag_tauy_sol     = (/ 1, 4, 10, 1 /)
115
116  integer, dimension(nfiles) , save :: flag_pourc_sol    = (/ 1, 4, 10, 1 /)
117  integer, dimension(nfiles) , save :: flag_fract_sol    = (/ 1, 4, 10, 1 /)
118  integer, dimension(nfiles) , save :: flag_tsol_sol     = (/ 1, 4, 10, 1 /)
119  integer, dimension(nfiles) , save :: flag_sens_sol     = (/ 1, 4, 10, 1 /)
120  integer, dimension(nfiles) , save :: flag_lat_sol      = (/ 1, 4, 10, 1 /)
121  integer, dimension(nfiles) , save :: flag_flw_sol      = (/ 1, 10, 10, 10 /)
122  integer, dimension(nfiles) , save :: flag_fsw_sol      = (/ 1, 10, 10, 10 /)
123  integer, dimension(nfiles) , save :: flag_wbils_sol    = (/ 1, 10, 10, 10 /)
124  integer, dimension(nfiles) , save :: flag_wbilo_sol    = (/ 1, 10, 10, 10 /)
125
126  integer, dimension(nfiles) , save :: flag_cdrm         = (/ 1, 10, 10, 1 /)
127  integer, dimension(nfiles) , save :: flag_cdrh         = (/ 1, 10, 10, 1 /)
128  integer, dimension(nfiles) , save :: flag_cldl         = (/ 1, 1, 10, 10 /)
129  integer, dimension(nfiles) , save :: flag_cldm         = (/ 1, 1, 10, 10 /)
130  integer, dimension(nfiles) , save :: flag_cldh         = (/ 1, 1, 10, 10 /)
131  integer, dimension(nfiles) , save :: flag_cldt         = (/ 1, 1, 2, 10 /)
132  integer, dimension(nfiles) , save :: flag_cldq         = (/ 1, 1, 10, 10 /)
133  integer, dimension(nfiles) , save :: flag_lwp          = (/ 1, 5, 10, 10 /)
134  integer, dimension(nfiles) , save :: flag_iwp          = (/ 1, 5, 10, 10 /)
135  integer, dimension(nfiles) , save :: flag_ue           = (/ 1, 10, 10, 10 /)
136  integer, dimension(nfiles) , save :: flag_ve           = (/ 1, 10, 10, 10 /)
137  integer, dimension(nfiles) , save :: flag_uq           = (/ 1, 10, 10, 10 /)
138  integer, dimension(nfiles) , save :: flag_vq           = (/ 1, 10, 10, 10 /)
139 
140  integer, dimension(nfiles) , save :: flag_cape         = (/ 1, 10, 10, 10 /)
141  integer, dimension(nfiles) , save :: flag_pbase        = (/ 1, 10, 10, 10 /)
142  integer, dimension(nfiles) , save :: flag_ptop         = (/ 1, 4, 10, 10 /)
143  integer, dimension(nfiles) , save :: flag_fbase        = (/ 1, 10, 10, 10 /)
144  integer, dimension(nfiles) , save :: flag_prw          = (/ 1, 1, 10, 10 /)
145
146  integer, dimension(nfiles) , save :: flag_s_pblh       = (/ 1, 10, 10, 1 /)
147  integer, dimension(nfiles) , save :: flag_s_pblt       = (/ 1, 10, 10, 1 /)
148  integer, dimension(nfiles) , save :: flag_s_lclt       = (/ 1, 10, 10, 1 /)
149  integer, dimension(nfiles) , save :: flag_s_capCL      = (/ 1, 10, 10, 1 /)
150  integer, dimension(nfiles) , save :: flag_s_oliqCLL    = (/ 1, 10, 10, 1 /)
151  integer, dimension(nfiles) , save :: flag_s_cteiCL     = (/ 1, 10, 10, 1 /)
152  integer, dimension(nfiles) , save :: flag_s_therm      = (/ 1, 10, 10, 1 /)
153  integer, dimension(nfiles) , save :: flag_s_trmb1      = (/ 1, 10, 10, 1 /)
154  integer, dimension(nfiles) , save :: flag_s_trmb2      = (/ 1, 10, 10, 1 /)
155  integer, dimension(nfiles) , save :: flag_s_trmb3      = (/ 1, 10, 10, 1 /)
156
157  integer, dimension(nfiles) , save :: flag_slab_bils    = (/ 1, 1, 10, 10 /)
158
159! Champs interpolles sur des niveaux de pression ??? a faire correctement
160! if=1 on ecrit u v w phi sur 850 700 500 200 au niv 1
161! if=2 on ecrit w et ph 500 seulement au niv 1
162!        et u v sur 850 700 500 200
163! if=3 on ecrit ph a 500 seulement au niv 1
164!      on ecrit u v t q a 850 700 500 200 au niv 3
165!      on ecrit ph  a 500   au niv 3
166
167  integer, dimension(nfiles) , save :: flag_ulevsSTD     = (/ 1, 1, 3, 10 /)
168  integer, dimension(nfiles) , save :: flag_vlevsSTD     = (/ 1, 1, 3, 10 /)
169  integer, dimension(nfiles) , save :: flag_wlevsSTD     = (/ 1, 1, 10, 10 /)
170  integer, dimension(nfiles) , save :: flag_tlevsSTD     = (/ 10, 10, 3, 10 /)
171  integer, dimension(nfiles) , save :: flag_qlevsSTD     = (/ 10, 10, 3, 10 /)
172  integer, dimension(nfiles) , save :: flag_philevsSTD   = (/ 1, 1, 1, 10 /)
173
174  integer, dimension(nfiles) , save :: flag_fluxo        = (/ 1, 1, 10, 10 /)
175  integer, dimension(nfiles) , save :: flag_fluxg        = (/ 1, 1, 10, 10 /)
176  integer, dimension(nfiles) , save :: flag_t_oce_sic    = (/ 1, 10, 10, 10 /)
177
178  integer, dimension(nfiles) , save :: flag_lmt_bils     = (/ 1, 1, 10, 10 /)
179  integer, dimension(nfiles) , save :: flag_tslab        = (/ 1, 1, 10, 10 /)
180  integer, dimension(nfiles) , save :: flag_seaice       = (/ 1, 1, 10, 10 /)
181  integer, dimension(nfiles) , save :: flag_siceh        = (/ 1, 1, 10, 10 /)
182
183  integer, dimension(nfiles) , save :: flag_weakinv      = (/ 10, 1, 10, 10 /)
184  integer, dimension(nfiles) , save :: flag_dthmin       = (/ 10, 1, 10, 10 /)
185  integer, dimension(nfiles) , save :: flag_u10_sol      = (/ 10, 4, 10, 10 /)
186  integer, dimension(nfiles) , save :: flag_v10_sol      = (/ 10, 4, 10, 10 /)
187  integer, dimension(nfiles) , save :: flag_meantaucld   = (/ 10, 5, 10, 10 /)
188  integer, dimension(nfiles) , save :: flag_cldtau       = (/ 10, 5, 10, 10 /)                     
189  integer, dimension(nfiles) , save :: flag_cldemi       = (/ 10, 5, 10, 10 /)
190  integer, dimension(nfiles) , save :: flag_rh2m         = (/ 10, 5, 10, 10 /)
191  integer, dimension(nfiles) , save :: flag_qsat2m       = (/ 10, 5, 10, 10 /)
192  integer, dimension(nfiles) , save :: flag_tpot         = (/ 10, 5, 10, 10 /)
193  integer, dimension(nfiles) , save :: flag_tpote        = (/ 10, 5, 10, 10 /)
194  integer, dimension(nfiles) , save :: flag_tke          = (/ 4, 10, 10, 10 /)
195  integer, dimension(nfiles) , save :: flag_tke_max      = (/ 4, 10, 10, 10 /)
196  integer, dimension(nfiles) , save :: flag_tke_sol      = (/ 10, 4, 10, 10 /)
197  integer, dimension(nfiles) , save :: flag_tke_max_sol  = (/ 10, 4, 10, 10 /)
198  integer, dimension(nfiles) , save :: flag_kz           = (/ 4, 10, 10, 10 /)
199  integer, dimension(nfiles) , save :: flag_kz_max       = (/ 4, 10, 10, 10 /)
200  integer, dimension(nfiles) , save :: flag_SWnetOR      = (/ 10, 10, 2, 10 /)
201  integer, dimension(nfiles) , save :: flag_SWdownOR     = (/ 10, 10, 2, 10 /)
202  integer, dimension(nfiles) , save :: flag_LWdownOR     = (/ 10, 10, 2, 10 /)
203
204  integer, dimension(nfiles) , save :: flag_snowl         = (/ 10, 1, 10, 10 /)
205  integer, dimension(nfiles) , save :: flag_cape_max      = (/ 10, 1, 10, 10 /)
206  integer, dimension(nfiles) , save :: flag_solldown      = (/ 10, 1, 10, 1 /)
207
208  integer, dimension(nfiles) , save :: flag_dtsvdfo       = (/ 10, 10, 10, 1 /)
209  integer, dimension(nfiles) , save :: flag_dtsvdft       = (/ 10, 10, 10, 1 /)
210  integer, dimension(nfiles) , save :: flag_dtsvdfg       = (/ 10, 10, 10, 1 /)
211  integer, dimension(nfiles) , save :: flag_dtsvdfi       = (/ 10, 10, 10, 1 /)
212  integer, dimension(nfiles) , save :: flag_rugs          = (/ 10, 10, 10, 1 /)
213
214!!!!!!!!!!!!!!!!!!!!!! 3D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
215  integer, dimension(nfiles) , save :: flag_lwcon        = (/ 2, 5, 10, 10 /)
216  integer, dimension(nfiles) , save :: flag_iwcon        = (/ 2, 5, 10, 10 /)
217  integer, dimension(nfiles) , save :: flag_temp         = (/ 2, 3, 4, 1 /)
218  integer, dimension(nfiles) , save :: flag_ovap         = (/ 2, 3, 4, 10 /)
219  integer, dimension(nfiles) , save :: flag_wvapp        = (/ 2, 10, 10, 10 /)
220  integer, dimension(nfiles) , save :: flag_geop         = (/ 2, 3, 10, 1 /)
221  integer, dimension(nfiles) , save :: flag_vitu         = (/ 2, 3, 4, 1 /)
222  integer, dimension(nfiles) , save :: flag_vitv         = (/ 2, 3, 4, 1 /)
223  integer, dimension(nfiles) , save :: flag_vitw         = (/ 2, 3, 10, 10 /)
224  integer, dimension(nfiles) , save :: flag_pres         = (/ 2, 3, 10, 1 /)
225  integer, dimension(nfiles) , save :: flag_rneb         = (/ 2, 5, 10, 10 /)
226  integer, dimension(nfiles) , save :: flag_rnebcon      = (/ 2, 5, 10, 10 /)
227  integer, dimension(nfiles) , save :: flag_rhum         = (/ 2, 10, 10, 10 /)
228  integer, dimension(nfiles) , save :: flag_ozone        = (/ 2, 10, 10, 10 /)
229  integer, dimension(nfiles) , save :: flag_upwd         = (/ 2, 10, 10, 10 /)
230  integer, dimension(nfiles) , save :: flag_dtphy        = (/ 2, 10, 10, 10 /)
231  integer, dimension(nfiles) , save :: flag_dqphy        = (/ 2, 10, 10, 10 /)
232! arevoir probleme noms (geop, ovap  a ?????)
233
234  integer, dimension(nfiles) , save :: flag_albe_sol     = (/ 3, 4, 10, 1 /)
235  integer, dimension(nfiles) , save :: flag_ages_sol     = (/ 3, 10, 10, 10 /)
236  integer, dimension(nfiles) , save :: flag_rugs_sol     = (/ 3, 4, 10, 1 /)
237
238  integer, dimension(nfiles) , save :: flag_albs         = (/ 3, 10, 10, 1 /)
239  integer, dimension(nfiles) , save :: flag_albslw       = (/ 3, 10, 10, 1 /)
240
241  integer, dimension(nfiles) , save :: flag_clwcon       = (/ 4, 10, 10, 10 /)
242  integer, dimension(nfiles) , save :: flag_Ma           = (/ 4, 10, 10, 10 /)
243  integer, dimension(nfiles) , save :: flag_dnwd         = (/ 4, 10, 10, 10 /)
244  integer, dimension(nfiles) , save :: flag_dnwd0        = (/ 4, 10, 10, 10 /)
245  integer, dimension(nfiles) , save :: flag_dtdyn        = (/ 4, 10, 10, 10 /)
246  integer, dimension(nfiles) , save :: flag_dqdyn        = (/ 4, 10, 10, 10 /)
247  integer, dimension(nfiles) , save :: flag_dtcon        = (/ 4, 5, 10, 10 /)
248  integer, dimension(nfiles) , save :: flag_ducon        = (/ 4, 10, 10, 10 /)
249  integer, dimension(nfiles) , save :: flag_dqcon        = (/ 4, 5, 10, 10 /)
250  integer, dimension(nfiles) , save :: flag_dtlsc        = (/ 4, 10, 10, 10 /)
251  integer, dimension(nfiles) , save :: flag_dtlschr      = (/ 4, 10, 10, 10 /)
252  integer, dimension(nfiles) , save :: flag_dqlsc        = (/ 4, 10, 10, 10 /)
253  integer, dimension(nfiles) , save :: flag_dtvdf        = (/ 4, 10, 10, 1 /)
254  integer, dimension(nfiles) , save :: flag_dqvdf        = (/ 4, 10, 10, 1 /)
255  integer, dimension(nfiles) , save :: flag_dteva        = (/ 4, 10, 10, 10 /)
256  integer, dimension(nfiles) , save :: flag_dqeva        = (/ 4, 10, 10, 10 /)
257  integer, dimension(nfiles) , save :: flag_ptconv       = (/ 4, 10, 10, 10 /)
258  integer, dimension(nfiles) , save :: flag_ratqs        = (/ 4, 10, 10, 10 /)
259  integer, dimension(nfiles) , save :: flag_dtthe        = (/ 4, 10, 10, 10 /)
260  integer, dimension(nfiles) , save :: flag_dqthe        = (/ 4, 10, 10, 10 /)
261  integer, dimension(nfiles) , save :: flag_dtajs        = (/ 4, 10, 10, 10 /)
262  integer, dimension(nfiles) , save :: flag_dqajs        = (/ 4, 10, 10, 10 /)
263  integer, dimension(nfiles) , save :: flag_dtswr        = (/ 4, 10, 10, 10 /)
264  integer, dimension(nfiles) , save :: flag_dtsw0        = (/ 4, 10, 10, 10 /)
265  integer, dimension(nfiles) , save :: flag_dtlwr        = (/ 4, 10, 10, 10 /)
266  integer, dimension(nfiles) , save :: flag_dtlw0        = (/ 4, 10, 10, 10 /)
267  integer, dimension(nfiles) , save :: flag_dtec         = (/ 4, 10, 10, 10 /)
268  integer, dimension(nfiles) , save :: flag_duvdf        = (/ 4, 10, 10, 10 /)
269  integer, dimension(nfiles) , save :: flag_dvvdf        = (/ 4, 10, 10, 10 /)
270  integer, dimension(nfiles) , save :: flag_duoro        = (/ 4, 10, 10, 10 /)
271  integer, dimension(nfiles) , save :: flag_dvoro        = (/ 4, 10, 10, 10 /)
272  integer, dimension(nfiles) , save :: flag_dulif        = (/ 4, 10, 10, 10 /)
273  integer, dimension(nfiles) , save :: flag_dvlif        = (/ 4, 10, 10, 10 /)
274  integer, dimension(nfiles) , save :: flag_trac         = (/ 4, 10, 10, 10 /)
275
276    CONTAINS
277
278!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
279!!!!!!!!! Ouverture des fichier et definition des variable de sortie !!!!!!!!
280!! histbeg, histvert et histdef
281!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
282
283       SUBROUTINE phys_output_open ( jj_nb, jjmp1, nqmax, &
284     &                nlevSTD, clevSTD, nbteta, ctetaSTD, &
285     &              dtime, presnivs, ok_veget, ocean, iflag_pbl, &
286     &                ok_mensuel,ok_journe,ok_hf,ok_instan, &
287     &                 rlon, rlat, nid_fil)
288
289
290   
291       USE iophy
292       USE dimphy
293       USE ioipsl
294
295       IMPLICIT NONE
296       include "dimensions.h"
297       include "temps.h"
298       include "indicesol.h"
299       include "advtrac.h"
300       include "clesphys.h"
301
302        integer      :: jj_nb, jjmp1, nqmax
303        integer      :: nbteta, nlevSTD, radpas
304        logical      :: ok_mensuel, ok_journe, ok_hf, ok_instan
305        real         :: dtime, zstophy, zout
306        integer      :: nhori, nvert
307        integer      :: idayref
308        real         :: zjulian
309        real, dimension(klev) :: presnivs
310        character(len=4), dimension(nlevSTD) :: clevSTD
311        integer      :: nsrf, k, iq, iiq, iff, i, j
312        logical      :: ok_veget
313        integer           :: iflag_pbl
314        CHARACTER(len=3)  :: bb2
315        CHARACTER(len=2)  :: bb3
316        character(len=6)  :: ocean
317        CHARACTER(len=3)  :: ctetaSTD(nbteta)
318        integer, dimension(nfiles) :: nid_fil
319        real, dimension(nfiles)    ::  ecrit_files
320        CHARACTER(len=20), dimension(nfiles) :: name_files
321        CHARACTER(len=20), dimension(nfiles) :: type_ecri
322        INTEGER, dimension(iim*jjmp1) ::  ndex2d
323        INTEGER, dimension(iim*jjmp1*klev) :: ndex3d
324        REAL, dimension(klon) :: rlon, rlat
325        integer               :: imin_ins, imax_ins
326        integer               :: jmin_ins, jmax_ins
327        REAL, dimension(iim,jjmp1) :: zx_lon, zx_lat
328
329        name_files(1) = 'histmth'
330        name_files(2) = 'histday'
331        name_files(3) = 'histhf'
332        name_files(4) = 'histins'
333
334        type_ecri(1) = 'ave(X)'
335        type_ecri(2) = 'ave(X)'
336        type_ecri(3) = 'ave(X)'
337        type_ecri(4) = 'inst(X)'
338
339        clef_files(1) = ok_mensuel
340        clef_files(2) = ok_journe
341        clef_files(3) = ok_hf
342        clef_files(4) = ok_instan
343
344        lev_files(1) = lev_histmth
345        lev_files(2) = lev_histday
346        lev_files(3) = lev_histhf
347        lev_files(4) = 1
348
349        ecrit_files(1) = ecrit_mth
350        ecrit_files(2) = ecrit_day
351        ecrit_files(3) = ecrit_hf
352        ecrit_files(4) = ecrit_ins
353 
354!!!!!!!!!!!!!!!!!!!!!!! Boucle sur les fichiers !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
355! Appel de histbeg et histvert pour creer le fichier et les niveaux verticaux !!
356! Appel des histbeg pour definir les variables (nom, moy ou inst, freq de sortie ..
357!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
358
359      DO iff=1,nfiles
360 
361       IF (clef_files(iff)) THEN
362     
363         zstophy = dtime         ! Frequence ou l on moyenne
364         zout = ecrit_files(iff) ! Frequence ou l on ecrit
365
366          idayref = day_ref
367
368          CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian)
369
370!         print*,'Dans hist_def, name_files(iff) ',name_files(iff)
371
372!!!!!!!!!!!!!!!!! Traitement dans le cas ou l'on veut stocker sur un domaine limite !!
373!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
374         if (ok_reglim(iff)) then
375
376! a reecrire plus simplement en appelant io_lat et io_lon de iophy
377
378           CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)
379           CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
380
381           DO i = 1, iim
382              zx_lon(i,1) = rlon(i+1)
383              zx_lon(i,jjmp1) = rlon(i+1)
384           ENDDO
385
386               
387           imin_ins=1
388           imax_ins=iim
389           jmin_ins=1
390           jmax_ins=jjmp1
391
392           do i=1,iim-1
393            if (zx_lon(i,1).lt.lonmin_reg(iff)) imin_ins=i
394            if (zx_lon(i,1).le.lonmax_reg(iff)) imax_ins=i+1
395           enddo
396
397           do j=1,jjmp1-1
398            if (zx_lat(1,j).ge.latmin_reg(iff)) jmax_ins=j
399            if (zx_lat(1,j).gt.latmax_reg(iff)) jmin_ins=j
400           enddo
401
402
403         print*,'On stoke le fichier hist sur, ', &
404     &   imin_ins,imax_ins,jmin_ins,jmax_ins
405         print*,'On stoke le fichier instantanne sur, ', &
406     &   zx_lon(imin_ins,1),zx_lon(imax_ins,1), &
407     &   zx_lat(1,jmin_ins),zx_lat(1,jmax_ins)
408
409     
410         CALL histbeg(name_files(iff),iim,zx_lon(:,1), &
411     &                jjmp1,zx_lat(1,:), &
412     &            imin_ins,imax_ins-imin_ins+1, &
413     &           jmin_ins,jmax_ins-jmin_ins+1, &
414     &           itau_phy, zjulian, dtime, &
415     &          nhori, nid_fil(iff))
416
417!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
418       else
419
420          CALL histbeg_phy(name_files(iff),itau_phy, &
421     &                     zjulian, dtime, &
422     &                     nhori, nid_fil(iff))
423       endif
424 
425          nid_files(iff)=nid_fil(iff)
426!         print*,'Dans hist_def, nid_files(iff) ',nid_files(iff)
427
428         CALL histvert(nid_files(iff),"presnivs", &
429     &                 "Vertical levels","mb", &
430     &                 klev, presnivs/100., nvert)
431
432!!!!!!!!!!!!! Traitement des champs 3D pour histhf !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
433!!!!!!!!!!!!!!! A Revoir plus tard !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
434!          IF (iff.eq.3.and.lev_files(iff).ge.4) THEN
435!          CALL histbeg_phy("histhf3d",itau_phy, &
436!     &                     zjulian, dtime, &
437!     &                     nhori, nid_hf3d)
438
439!         CALL histvert(nid_hf3d,"presnivs", &
440!     &                 "Vertical levels","mb", &
441!     &                 klev, presnivs/100., nvert)
442!          ENDIF
443
444
445!!! Champs 1D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
446       IF (flag_phis(iff)<=lev_files(iff)) THEN
447        CALL  histdef(nid_files(iff),"phis", &
448     &                 "Surface geop. height", "m2/s2", &
449     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
450     &                 "once",  zstophy,zout)
451       ENDIF
452
453       IF (flag_aire(iff)<=lev_files(iff)) THEN
454         CALL histdef(nid_files(iff), "aire", "Grid area", "-", &
455     &               iim,jj_nb,nhori, 1,1,1, -99, 32, &
456     &              "once",  zstophy,zout)
457       ENDIF
458
459
460       IF (flag_contfracATM(iff)<=lev_files(iff)) THEN
461         CALL histdef(nid_files(iff), &
462     &               "contfracATM","% sfce ter+lic ", &
463     &               "-", iim,jj_nb,nhori, 1,1,1, -99, 32, &
464     &                "once", zstophy,zout)
465      ENDIF
466
467       IF (flag_contfracOR(iff)<=lev_files(iff)) THEN
468         CALL histdef(nid_files(iff), &
469     &                "contfracOR","% sfce terre OR", &
470     &                 "-", iim,jj_nb,nhori, 1,1,1, -99, 32, &
471     &                "once", zstophy,zout)
472      ENDIF
473
474       IF (flag_aireTER(iff)<=lev_files(iff)) THEN
475         CALL histdef(nid_files(iff), &
476     &                "aireTER","Grid area CONT","-", &
477     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
478     &                "once", zstophy,zout)
479      ENDIF
480
481!!! Champs 2D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
482
483       IF (flag_flat(iff)<=lev_files(iff)) THEN
484        CALL histdef(nid_files(iff), "flat", "Latent heat flux", &
485     &                "W/m2", iim,jj_nb,nhori, 1,1,1, -99, 32, &
486     &                type_ecri(iff), zstophy,zout)
487      ENDIF
488
489       IF (flag_slp(iff)<=lev_files(iff)) THEN
490         CALL histdef(nid_files(iff), "slp", &
491     &               "Sea Level Pressure", "Pa", &
492     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
493     &                type_ecri(iff), zstophy,zout)
494      ENDIF
495
496       IF (flag_tsol(iff)<=lev_files(iff)) THEN
497        CALL histdef(nid_files(iff), "tsol", &
498     &                "Surface Temperature", "K", &
499     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
500     &                type_ecri(iff), zstophy,zout)
501       ENDIF
502
503       IF (flag_t2m(iff)<=lev_files(iff)) THEN
504         CALL histdef(nid_files(iff), "t2m", &
505     &                "Temperature 2m", "K", &
506     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
507     &                type_ecri(iff), zstophy,zout)
508      ENDIF
509
510       IF (flag_t2m_min(iff)<=lev_files(iff)) THEN
511         CALL histdef(nid_files(iff), "t2m_min", &
512     &                "Temp 2m min", "K", &
513     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
514     &                "t_min(X)", zstophy,zout)
515      ENDIF
516
517       IF (flag_t2m_max(iff)<=lev_files(iff)) THEN
518         CALL histdef(nid_files(iff), "t2m_max", &
519     &                "Temp 2m max", "K", &
520     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
521     &                "t_max(X)", zstophy,zout)
522      ENDIF
523
524       IF (flag_wind10m(iff)<=lev_files(iff)) THEN
525       CALL histdef(nid_files(iff), "wind10m", &
526     &                "10-m wind speed","m/s", &
527     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
528     &                type_ecri(iff), zstophy,zout)
529      ENDIF
530
531       IF (flag_wind10max(iff)<=lev_files(iff)) THEN
532         CALL histdef(nid_files(iff), "wind10max", &
533     &                "10-m wind speed max.", "m/s", &
534     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
535     &                "t_max(X)", zstophy,zout)
536       ENDIF
537
538       IF (flag_sicf(iff)<=lev_files(iff)) THEN
539         CALL histdef(nid_files(iff), "sicf", &
540     &                "Sea-ice fraction", "-", &
541     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
542     &                type_ecri(iff), zstophy,zout)
543      ENDIF
544
545       IF (flag_q2m(iff)<=lev_files(iff)) THEN
546         CALL histdef(nid_files(iff), "q2m", &
547     &                "Specific humidity 2m", &
548     &                "kg/kg", iim,jj_nb,nhori, &
549     &                1,1,1, -99, 32, &
550     &                type_ecri(iff), zstophy,zout)
551       ENDIF
552
553       IF (flag_u10m(iff)<=lev_files(iff)) THEN
554        CALL histdef(nid_files(iff), "u10m", &
555     &                "Vent zonal 10m", "m/s", &
556     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
557     &                type_ecri(iff), zstophy,zout)
558      ENDIF
559
560       IF (flag_v10m(iff)<=lev_files(iff)) THEN
561        CALL histdef(nid_files(iff), "v10m", &
562     &                "Vent meridien 10m", &
563     &                "m/s", iim,jj_nb,nhori, &
564     &                1,1,1, -99, 32, &
565     &                type_ecri(iff), zstophy,zout)
566      ENDIF
567
568       IF (flag_psol(iff)<=lev_files(iff)) THEN
569         CALL histdef(nid_files(iff),"psol", &
570     &                "Surface Pressure","Pa", &
571     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
572     &                type_ecri(iff), zstophy,zout)
573      ENDIF
574
575       IF (flag_qsurf(iff)<=lev_files(iff)) THEN
576         CALL histdef(nid_files(iff),"qsurf", &
577     &                "Surface Air humidity", &
578     &             "kg/kg",iim,jj_nb,nhori, 1,1,1, -99, 32, &
579     &                type_ecri(iff), zstophy,zout)
580      ENDIF
581
582      if (.not. ok_veget) then
583       IF (flag_qsol(iff)<=lev_files(iff)) THEN
584         CALL histdef(nid_files(iff), "qsol", &
585     &                "Soil watter content", &
586     &                "mm", iim,jj_nb,nhori, &
587     &                 1,1,1, -99, 32, &
588     &                type_ecri(iff), zstophy,zout)
589      ENDIF
590      endif
591
592       IF (flag_ndayrain(iff)<=lev_files(iff)) THEN
593         CALL histdef(nid_files(iff), "ndayrain", &
594     &            "Number of day with rain (liq+sol)", "-", &
595     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
596     &                "inst(X)", zout,zout)
597      ENDIF
598
599       IF (flag_precip(iff)<=lev_files(iff)) THEN
600        CALL histdef(nid_files(iff),"precip", &
601     &         "Precip Totale liq+sol","kg/(s*m2)", &
602     &             iim,jj_nb,nhori, 1,1,1, -99, 32, &
603     &               type_ecri(iff), zstophy,zout)
604      ENDIF
605
606       IF (flag_plul(iff)<=lev_files(iff)) THEN
607         CALL histdef(nid_files(iff), "plul", &
608     &             "Large-scale Precip.","kg/(s*m2)", &
609     &               iim,jj_nb,nhori, 1,1,1, -99, 32, &
610     &                  type_ecri(iff), zstophy,zout)
611      ENDIF
612
613       IF (flag_pluc(iff)<=lev_files(iff)) THEN
614         CALL histdef(nid_files(iff), "pluc", &
615     &              "Convective Precip.", "kg/(s*m2)", &
616     &              iim,jj_nb,nhori, 1,1,1, -99, 32, &
617     &                type_ecri(iff), zstophy,zout)
618      ENDIF
619
620       IF (flag_snow(iff)<=lev_files(iff)) THEN
621       CALL histdef(nid_files(iff),"snow", &
622     &               "Snow fall","kg/(s*m2)", &
623     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
624     &                type_ecri(iff), zstophy,zout)
625      ENDIF
626
627       IF (flag_evap(iff)<=lev_files(iff)) THEN
628        CALL histdef(nid_files(iff),"evap", &
629     &                "Evaporat", "kg/(s*m2)", &
630     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
631     &                type_ecri(iff), zstophy,zout)
632      ENDIF
633
634       IF (flag_tops(iff)<=lev_files(iff)) THEN
635       CALL histdef(nid_files(iff),"tops", &
636     &                "Solar rad. at TOA","W/m2", &
637     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
638     &                type_ecri(iff), zstophy,zout)
639      ENDIF
640
641       IF (flag_tops0(iff)<=lev_files(iff)) THEN
642       CALL histdef(nid_files(iff),"tops0", &
643     &               "CS Solar rad. at TOA", &
644     &          "W/m2", iim,jj_nb,nhori, 1,1,1, -99, 32, &
645     &                type_ecri(iff), zstophy,zout)
646      ENDIF
647
648       IF (flag_topl(iff)<=lev_files(iff)) THEN
649         CALL histdef(nid_files(iff), "topl", &
650     &               "IR rad. at TOA", &
651     &          "W/m2",iim,jj_nb,nhori, 1,1,1, -99, 32, &
652     &                type_ecri(iff), zstophy,zout)
653      ENDIF
654
655       IF (flag_topl0(iff)<=lev_files(iff)) THEN
656        CALL histdef(nid_files(iff),"topl0", &
657     &                "IR rad. at TOA","W/m2", &
658     &                 iim,jj_nb,nhori, 1,1,1, -99, 32, &
659     &                type_ecri(iff), zstophy,zout)
660      ENDIF
661
662       IF (flag_SWupTOA(iff)<=lev_files(iff)) THEN
663        CALL histdef(nid_files(iff),"SWupTOA", &
664     &                "SWup at TOA","W/m2", &
665     &                iim,jj_nb,nhori, 1,1,1,-99, &
666     &                32, type_ecri(iff), zstophy,zout)
667      ENDIF
668
669       IF (flag_SWupTOAclr(iff)<=lev_files(iff)) THEN
670         CALL histdef(nid_files(iff), "SWupTOAclr", &
671     &                "SWup clear sky at TOA","W/m2", &
672     &                iim,jj_nb,nhori, 1,1,1,-99, &
673     &                32, type_ecri(iff), zstophy,zout)
674      ENDIF
675
676       IF (flag_SWdnTOA(iff)<=lev_files(iff)) THEN
677        CALL histdef(nid_files(iff),"SWdnTOA", &
678     &                "SWdn at TOA","W/m2", &
679     &                iim,jj_nb,nhori, 1,1,1,-99, &
680     &                32, type_ecri(iff), zstophy,zout)
681      ENDIF
682
683       IF (flag_SWdnTOAclr(iff)<=lev_files(iff)) THEN
684         CALL histdef(nid_files(iff), "SWdnTOAclr", &
685     &                "SWdn clear sky at TOA","W/m2", &
686     &                iim,jj_nb,nhori, 1,1,1,-99, &
687     &                32, type_ecri(iff), zstophy,zout)
688      ENDIF
689
690       IF (flag_SWup200(iff)<=lev_files(iff)) THEN
691        CALL histdef(nid_files(iff),"SWup200", &
692     &                "SWup at 200mb","W/m2", &
693     &                iim,jj_nb,nhori, 1,1,1,-99, &
694     &                32, type_ecri(iff), zstophy,zout)
695      ENDIF
696
697       IF (flag_SWup200clr(iff)<=lev_files(iff)) THEN
698         CALL histdef(nid_files(iff), "SWup200clr", &
699     &              "SWup clear sky at 200mb","W/m2", &
700     &                iim,jj_nb,nhori, 1,1,1,-99, &
701     &                32, type_ecri(iff), zstophy,zout)
702      ENDIF
703
704       IF (flag_SWdn200(iff)<=lev_files(iff)) THEN
705        CALL histdef(nid_files(iff),"SWdn200", &
706     &                "SWdn at 200mb","W/m2", &
707     &                iim,jj_nb,nhori, 1,1,1,-99, &
708     &                32, type_ecri(iff), zstophy,zout)
709      ENDIF
710
711       IF (flag_SWdn200clr(iff)<=lev_files(iff)) THEN
712         CALL histdef(nid_files(iff), "SWdn200clr", &
713     &                "SWdn clear sky at 200mb","W/m2", &
714     &                iim,jj_nb,nhori, 1,1,1,-99, &
715     &                32, type_ecri(iff), zstophy,zout)
716      ENDIF
717
718       IF (flag_LWup200(iff)<=lev_files(iff)) THEN
719        CALL histdef(nid_files(iff),"LWup200", &
720     &                "LWup at 200mb","W/m2", &
721     &                iim,jj_nb,nhori, 1,1,1,-99, &
722     &                32, type_ecri(iff), zstophy,zout)
723      ENDIF
724
725       IF (flag_LWup200clr(iff)<=lev_files(iff)) THEN
726         CALL histdef(nid_files(iff), "LWup200clr", &
727     &                "LWup clear sky at 200mb","W/m2", &
728     &                iim,jj_nb,nhori, 1,1,1,-99, &
729     &                32, type_ecri(iff), zstophy,zout)
730      ENDIF
731
732       IF (flag_LWdn200(iff)<=lev_files(iff)) THEN
733        CALL histdef(nid_files(iff),"LWdn200", &
734     &                "LWdn at 200mb","W/m2", &
735     &                iim,jj_nb,nhori, 1,1,1,-99, &
736     &                32, type_ecri(iff), zstophy,zout)
737      ENDIF
738
739       IF (flag_LWdn200clr(iff)<=lev_files(iff)) THEN
740         CALL histdef(nid_files(iff), "LWdn200clr", &
741     &                "LWdn clear sky at 200mb","W/m2", &
742     &                iim,jj_nb,nhori, 1,1,1,-99, &
743     &                32, type_ecri(iff), zstophy,zout)
744      ENDIF
745
746       IF (flag_sols(iff)<=lev_files(iff)) THEN
747         CALL histdef(nid_files(iff), "sols", &
748     &               "Solar rad. at surf.", &
749     &           "W/m2", iim,jj_nb,nhori, 1,1,1, -99, 32, &
750     &                type_ecri(iff), zstophy,zout)
751      ENDIF
752
753       IF (flag_sols0(iff)<=lev_files(iff)) THEN
754         CALL histdef(nid_files(iff), "sols0", &
755     &                "Solar rad. at surf.", &
756     &            "W/m2", iim,jj_nb,nhori, 1,1,1, -99, 32, &
757     &                type_ecri(iff), zstophy,zout)
758      ENDIF
759
760       IF (flag_soll(iff)<=lev_files(iff)) THEN
761        CALL histdef(nid_files(iff),"soll", &
762     &               "IR rad. at surface","W/m2", &
763     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
764     &                type_ecri(iff), zstophy,zout)
765      ENDIF
766
767       IF (flag_radsol(iff)<=lev_files(iff)) THEN
768        CALL histdef(nid_files(iff),"radsol", &
769     &               "Rayonnement au sol", &
770     &          "W/m2", iim,jj_nb,nhori, 1,1,1, -99, 32, &
771     &                type_ecri(iff), zstophy,zout)
772      ENDIF
773
774       IF (flag_soll0(iff)<=lev_files(iff)) THEN
775         CALL histdef(nid_files(iff), "soll0", &
776     &                "IR rad. at surface", &
777     &             "W/m2",iim,jj_nb,nhori, 1,1,1, -99, 32, &
778     &                type_ecri(iff), zstophy,zout)
779      ENDIF
780
781       IF (flag_SWupSFC(iff)<=lev_files(iff)) THEN
782         CALL histdef(nid_files(iff), "SWupSFC", &
783     &               "SWup at surface", &
784     &                "W/m2",iim,jj_nb,nhori, 1,1,1,-99, &
785     &                32, type_ecri(iff), zstophy,zout)
786      ENDIF
787
788       IF (flag_SWupSFCclr(iff)<=lev_files(iff)) THEN
789         CALL histdef(nid_files(iff), "SWupSFCclr", &
790     &                "SWup clear sky at surface","W/m2", &
791     &               iim,jj_nb,nhori, 1,1,1,-99, &
792     &                32, type_ecri(iff), zstophy,zout)
793      ENDIF
794
795       IF (flag_SWdnSFC(iff)<=lev_files(iff)) THEN
796        CALL histdef(nid_files(iff),"SWdnSFC", &
797     &               "SWdn at surface","W/m2", &
798     &                iim,jj_nb,nhori, 1,1,1,-99, &
799     &                32, type_ecri(iff), zstophy,zout)
800      ENDIF
801
802       IF (flag_SWdnSFCclr(iff)<=lev_files(iff)) THEN
803         CALL histdef(nid_files(iff), "SWdnSFCclr", &
804     &                "SWdn clear sky at surface","W/m2", &
805     &               iim,jj_nb,nhori, 1,1,1,-99, &
806     &                32, type_ecri(iff), zstophy,zout)
807      ENDIF
808
809       IF (flag_LWupSFC(iff)<=lev_files(iff)) THEN
810        CALL histdef(nid_files(iff),"LWupSFC", &
811     &               "Upwd. IR rad. at surface", "W/m2", &
812     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
813     &                type_ecri(iff), zstophy,zout)
814      ENDIF
815
816       IF (flag_LWdnSFC(iff)<=lev_files(iff)) THEN
817        CALL histdef(nid_files(iff),"LWdnSFC", &
818     &                "Down. IR rad. at surface", &
819     &            "W/m2", iim,jj_nb,nhori, 1,1,1, -99, 32, &
820     &                type_ecri(iff), zstophy,zout)
821      ENDIF
822
823       IF (flag_LWupSFCclr(iff)<=lev_files(iff)) THEN
824         CALL histdef(nid_files(iff),"LWupSFCclr", &
825     &                "CS Upwd. IR rad. at surface", &
826     &            "W/m2", iim,jj_nb,nhori, 1,1,1, -99, 32, &
827     &                type_ecri(iff), zstophy,zout)
828      ENDIF
829
830       IF (flag_LWdnSFCclr(iff)<=lev_files(iff)) THEN
831         CALL histdef(nid_files(iff),"LWdnSFCclr", &
832     &                "Down. CS IR rad. at surface", &
833     &                "W/m2", iim,jj_nb,nhori, 1,1,1, -99, 32, &
834     &                type_ecri(iff), zstophy,zout)
835      ENDIF
836
837       IF (flag_bils(iff)<=lev_files(iff)) THEN
838        CALL histdef(nid_files(iff), &
839     &                "bils","Surf. total heat flux","W/m2", &
840     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
841     &                type_ecri(iff), zstophy,zout)
842      ENDIF
843
844       IF (flag_sens(iff)<=lev_files(iff)) THEN
845         CALL histdef(nid_files(iff),"sens", &
846     &                "Sensible heat flux","W/m2", &
847     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
848     &                type_ecri(iff), zstophy,zout)
849      ENDIF
850
851       IF (flag_fder(iff)<=lev_files(iff)) THEN
852         CALL histdef(nid_files(iff),"fder", &
853     &                "Heat flux derivation","W/m2", &
854     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
855     &                type_ecri(iff), zstophy,zout)
856      ENDIF
857
858       IF (flag_ffonte(iff)<=lev_files(iff)) THEN
859       CALL histdef(nid_files(iff),"ffonte", &
860     &                "Thermal flux for snow melting", &
861     &                "W/m2",iim,jj_nb,nhori, 1,1,1, -99, 32, &
862     &                type_ecri(iff), zstophy,zout)
863      ENDIF
864
865       IF (flag_fqcalving(iff)<=lev_files(iff)) THEN
866        CALL histdef(nid_files(iff), "fqcalving", &
867     &                 "Ice Calving", &
868     &            "kg/m2/s",iim,jj_nb,nhori, 1,1,1, -99, 32, &
869     &                type_ecri(iff), zstophy,zout)
870      ENDIF
871
872       IF (flag_fqfonte(iff)<=lev_files(iff)) THEN
873         CALL histdef(nid_files(iff), "fqfonte", &
874     &                "Land ice melt", &
875     &           "kg/m2/s",iim,jj_nb,nhori, 1,1,1, -99, 32, &
876     &                type_ecri(iff), zstophy,zout)
877      ENDIF
878
879         DO nsrf = 1, nbsrf
880            IF (flag_pourc_sol(iff)<=lev_files(iff)) THEN
881         call histdef(nid_files(iff), "pourc_"//clnsurf(nsrf), &
882     &                "% "//clnsurf(nsrf), "%", &
883     &         iim,jj_nb,nhori, 1,1,1, -99, 32, &
884     &         type_ecri(iff), zstophy,zout)
885            ENDIF
886
887            IF (flag_fract_sol(iff)<=lev_files(iff)) THEN
888         call histdef(nid_files(iff), "fract_"//clnsurf(nsrf), &
889     &         "Fraction "//clnsurf(nsrf), "1", &
890     &         iim,jj_nb,nhori, 1,1,1, -99, 32, &
891     &         type_ecri(iff), zstophy,zout)
892            ENDIF
893
894           IF (flag_taux_sol(iff)<=lev_files(iff)) THEN
895             call histdef(nid_files(iff), "taux_"//clnsurf(nsrf), &
896     &         "Zonal wind stress"//clnsurf(nsrf), "Pa", &
897     &         iim,jj_nb,nhori, 1,1,1, -99, 32, &
898     &         type_ecri(iff), zstophy,zout)
899           ENDIF
900
901           IF (flag_tauy_sol(iff)<=lev_files(iff)) THEN           
902             call histdef(nid_files(iff), "tauy_"//clnsurf(nsrf), &
903     &         "Meridional wind stress "//clnsurf(nsrf), "Pa", &
904     &         iim,jj_nb,nhori, 1,1,1, -99, 32, &
905     &         type_ecri(iff), zstophy,zout)
906           ENDIF
907
908          IF (flag_tsol_sol(iff)<=lev_files(iff)) THEN
909           call histdef(nid_files(iff), "tsol_"//clnsurf(nsrf), &
910     &         "Temperature "//clnsurf(nsrf), "K", &
911     &         iim,jj_nb,nhori, 1,1,1, -99, 32, &
912     &         type_ecri(iff), zstophy,zout)
913          ENDIF
914
915          IF (flag_u10m_sol(iff)<=lev_files(iff)) THEN
916           call histdef(nid_files(iff), "u10m_"//clnsurf(nsrf), &
917     &         "Vent Zonal 10m "//clnsurf(nsrf), "m/s", &
918     &          iim,jj_nb,nhori, 1,1,1, -99, 32, &
919     &          type_ecri(iff), zstophy,zout)
920          ENDIF
921
922          IF (flag_v10m_sol(iff)<=lev_files(iff)) THEN
923           call histdef(nid_files(iff), "v10m_"//clnsurf(nsrf), &
924     &         "Vent meredien 10m "//clnsurf(nsrf), "m/s", &
925     &          iim,jj_nb,nhori, 1,1,1, -99, 32, &
926     &          type_ecri(iff), zstophy,zout)
927          ENDIF
928 
929          IF (flag_t2m_sol(iff)<=lev_files(iff)) THEN
930            call histdef(nid_files(iff), "t2m_"//clnsurf(nsrf), &
931     &            "Temp 2m "//clnsurf(nsrf), "K", &
932     &            iim,jj_nb,nhori, 1,1,1, -99, 32, &
933     &            type_ecri(iff), zstophy,zout)
934          ENDIF
935
936          IF (flag_sens_sol(iff)<=lev_files(iff)) THEN
937           call histdef(nid_files(iff), "sens_"//clnsurf(nsrf), &
938     &         "Sensible heat flux "//clnsurf(nsrf), "W/m2", &
939     &         iim,jj_nb,nhori, 1,1,1, -99, 32, &
940     &         type_ecri(iff), zstophy,zout)
941          ENDIF
942
943          IF (flag_lat_sol(iff)<=lev_files(iff)) THEN
944           call histdef(nid_files(iff), "lat_"//clnsurf(nsrf), &
945     &         "Latent heat flux "//clnsurf(nsrf), "W/m2", &
946     &         iim,jj_nb,nhori, 1,1,1, -99, 32, &
947     &         type_ecri(iff), zstophy,zout)
948          ENDIF
949
950          IF (flag_flw_sol(iff)<=lev_files(iff)) THEN
951           call histdef(nid_files(iff), "flw_"//clnsurf(nsrf), &
952     &         "LW "//clnsurf(nsrf), "W/m2", &
953     &         iim,jj_nb,nhori, 1,1,1, -99, 32, &
954     &         type_ecri(iff), zstophy,zout)
955         ENDIF
956
957          IF (flag_fsw_sol(iff)<=lev_files(iff)) THEN
958           call histdef(nid_files(iff), "fsw_"//clnsurf(nsrf), &
959     &         "SW "//clnsurf(nsrf), "W/m2", &
960     &         iim,jj_nb,nhori, 1,1,1, -99, 32, &
961     &         type_ecri(iff), zstophy,zout)
962         ENDIF
963
964          IF (flag_wbils_sol(iff)<=lev_files(iff)) THEN
965           call histdef(nid_files(iff), "wbils_"//clnsurf(nsrf), &
966     &         "Bilan sol "//clnsurf(nsrf), "W/m2", &
967     &         iim,jj_nb,nhori, 1,1,1, -99, 32, &
968     &         type_ecri(iff), zstophy,zout)
969         ENDIF
970
971          IF (flag_wbilo_sol(iff)<=lev_files(iff)) THEN
972           call histdef(nid_files(iff), "wbilo_"//clnsurf(nsrf), &
973     &         "Bilan eau "//clnsurf(nsrf), "kg/(m2*s)", &
974     &         iim,jj_nb,nhori, 1,1,1, -99, 32, &
975     &         type_ecri(iff), zstophy,zout)
976         ENDIF
977
978         if (iflag_pbl>1 .and. lev_files(iff).gt.10 ) then
979          IF (flag_tke_sol(iff)<=lev_files(iff)) THEN
980           call histdef(nid_files(iff), "tke_"//clnsurf(nsrf), &
981     &         "Max Turb. Kinetic Energy "//clnsurf(nsrf), "-", &
982     &         iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
983     &         type_ecri(iff), zstophy,zout)
984          ENDIF
985
986          IF (flag_tke_max_sol(iff)<=lev_files(iff)) THEN
987           call histdef(nid_files(iff), "tke_max_"//clnsurf(nsrf), &
988     &         "Max Turb. Kinetic Energy "//clnsurf(nsrf), "-", &
989     &         iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
990     &         "t_max(X)", zstophy,zout)
991          ENDIF
992         endif
993
994        END DO
995
996        IF (flag_cdrm(iff)<=lev_files(iff)) THEN
997         CALL histdef(nid_files(iff), "cdrm", &
998     &                "Momentum drag coef.", "-", &
999     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1000     &                type_ecri(iff), zstophy,zout)
1001        ENDIF
1002
1003        IF (flag_cdrh(iff)<=lev_files(iff)) THEN
1004         CALL histdef(nid_files(iff), "cdrh", &
1005     &                "Heat drag coef.", "-", &
1006     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1007     &                type_ecri(iff), zstophy,zout)
1008        ENDIF
1009
1010        IF (flag_cldl(iff)<=lev_files(iff)) THEN
1011         CALL histdef(nid_files(iff), "cldl", &
1012     &                "Low-level cloudiness", "-", &
1013     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1014     &                type_ecri(iff), zstophy,zout)
1015        ENDIF
1016
1017        IF (flag_cldm(iff)<=lev_files(iff)) THEN
1018         CALL histdef(nid_files(iff), "cldm", &
1019     &                "Mid-level cloudiness", "-", &
1020     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1021     &                type_ecri(iff), zstophy,zout)
1022        ENDIF
1023
1024        IF (flag_cldh(iff)<=lev_files(iff)) THEN
1025         CALL histdef(nid_files(iff), "cldh", &
1026     &                "High-level cloudiness", "-", &
1027     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1028     &                type_ecri(iff), zstophy,zout)
1029        ENDIF
1030
1031        IF (flag_cldt(iff)<=lev_files(iff)) THEN
1032         CALL histdef(nid_files(iff), "cldt", &
1033     &                "Total cloudiness", "%", &
1034     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1035     &                type_ecri(iff), zstophy,zout)
1036        ENDIF
1037
1038        IF (flag_cldq(iff)<=lev_files(iff)) THEN
1039         CALL histdef(nid_files(iff),"cldq", &
1040     &                "Cloud liquid water path","kg/m2", &
1041     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1042     &                type_ecri(iff), zstophy,zout)
1043        ENDIF
1044
1045        IF (flag_lwp(iff)<=lev_files(iff)) THEN
1046         CALL histdef(nid_files(iff),"lwp", &
1047     &                "Cloud water path","kg/m2", &
1048     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1049     &                type_ecri(iff), zstophy,zout)
1050        ENDIF
1051
1052        IF (flag_iwp(iff)<=lev_files(iff)) THEN
1053         CALL histdef(nid_files(iff),"iwp", &
1054     &                "Cloud ice water path","kg/m2", &
1055     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1056     &                type_ecri(iff), zstophy,zout)
1057        ENDIF
1058
1059        IF (flag_ue(iff)<=lev_files(iff)) THEN
1060         CALL histdef(nid_files(iff), "ue", &
1061     &                "Zonal energy transport", "-", &
1062     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1063     &                type_ecri(iff), zstophy,zout)
1064        ENDIF
1065
1066        IF (flag_ve(iff)<=lev_files(iff)) THEN
1067         CALL histdef(nid_files(iff), "ve", &
1068     &                "Merid energy transport", "-", &
1069     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1070     &                type_ecri(iff), zstophy,zout)
1071        ENDIF
1072
1073        IF (flag_uq(iff)<=lev_files(iff)) THEN
1074         CALL histdef(nid_files(iff), "uq", &
1075     &                "Zonal humidity transport", "-", &
1076     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1077     &                type_ecri(iff), zstophy,zout)
1078        ENDIF
1079
1080        IF (flag_vq(iff)<=lev_files(iff)) THEN
1081         CALL histdef(nid_files(iff), "vq", &
1082     &                "Merid humidity transport", "-", &
1083     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1084     &                type_ecri(iff), zstophy,zout)
1085        ENDIF
1086
1087      IF(iflag_con.GE.3) THEN ! sb
1088        IF (flag_cape(iff)<=lev_files(iff)) THEN
1089         CALL histdef(nid_files(iff), "cape", &
1090     &                "Conv avlbl pot ener", "J/kg", &
1091     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1092     &                type_ecri(iff), zstophy,zout)
1093        ENDIF
1094
1095        IF (flag_pbase(iff)<=lev_files(iff)) THEN
1096         CALL histdef(nid_files(iff), "pbase", &
1097     &                "Cld base pressure", "mb", &
1098     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1099     &                type_ecri(iff), zstophy,zout)
1100        ENDIF
1101
1102        IF (flag_ptop(iff)<=lev_files(iff)) THEN
1103         CALL histdef(nid_files(iff), "ptop", &
1104     &                "Cld top pressure", "mb", &
1105     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1106     &                type_ecri(iff), zstophy,zout)
1107        ENDIF
1108
1109        IF (flag_fbase(iff)<=lev_files(iff)) THEN
1110         CALL histdef(nid_files(iff), "fbase", &
1111     &                "Cld base mass flux", "kg/m2/s", &
1112     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1113     &                type_ecri(iff), zstophy,zout)
1114        ENDIF
1115
1116        IF (flag_prw(iff)<=lev_files(iff)) THEN
1117         CALL histdef(nid_files(iff), "prw", &
1118     &                "Precipitable water", "kg/m2", &
1119     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1120     &                type_ecri(iff), zstophy,zout)
1121        ENDIF
1122
1123      ENDIF !iflag_con .GE. 3
1124
1125        IF (flag_s_pblh(iff)<=lev_files(iff)) THEN
1126         CALL histdef(nid_files(iff), "s_pblh", &
1127     &                "Boundary Layer Height", "m", &
1128     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1129     &                type_ecri(iff), zstophy,zout)
1130        ENDIF
1131
1132        IF (flag_s_pblt(iff)<=lev_files(iff)) THEN
1133         CALL histdef(nid_files(iff), "s_pblt", &
1134     &               "t at Boundary Layer Height","K", &
1135     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1136     &                type_ecri(iff), zstophy,zout)
1137        ENDIF
1138
1139        IF (flag_s_lclt(iff)<=lev_files(iff)) THEN
1140         CALL histdef(nid_files(iff), "s_lcl", &
1141     &                "Condensation level", "m", &
1142     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1143     &                type_ecri(iff), zstophy,zout)
1144        ENDIF
1145
1146        IF (flag_s_capCL(iff)<=lev_files(iff)) THEN
1147         CALL histdef(nid_files(iff), "s_capCL", &
1148     &               "Conv avlbl pot enerfor ABL", "J/m2", &
1149     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1150     &                type_ecri(iff), zstophy,zout)
1151        ENDIF
1152
1153        IF (flag_s_oliqCLL(iff)<=lev_files(iff)) THEN
1154         CALL histdef(nid_files(iff), "s_oliqCL", &
1155     &                "Liq Water in BL", "kg/m2", &
1156     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1157     &                type_ecri(iff), zstophy,zout)
1158        ENDIF
1159
1160        IF (flag_s_cteiCL(iff)<=lev_files(iff)) THEN
1161         CALL histdef(nid_files(iff), "s_cteiCL", &
1162     &               "Instability criteria(ABL)", "K", &
1163     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1164     &                type_ecri(iff), zstophy,zout)
1165        ENDIF
1166
1167        IF (flag_s_therm(iff)<=lev_files(iff)) THEN
1168        CALL histdef(nid_files(iff), "s_therm", &
1169     &                "Exces du thermique", "K", &
1170     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1171     &                type_ecri(iff), zstophy,zout)
1172        ENDIF
1173
1174        IF (flag_s_trmb1(iff)<=lev_files(iff)) THEN
1175         CALL histdef(nid_files(iff), "s_trmb1", &
1176     &                "deep_cape(HBTM2)", "J/m2", &
1177     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1178     &                type_ecri(iff), zstophy,zout)
1179        ENDIF
1180
1181        IF (flag_s_trmb2(iff)<=lev_files(iff)) THEN
1182         CALL histdef(nid_files(iff), "s_trmb2", &
1183     &                "inhibition (HBTM2)", "J/m2", &
1184     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1185     &                type_ecri(iff), zstophy,zout)
1186        ENDIF
1187
1188        IF (flag_s_trmb3(iff)<=lev_files(iff)) THEN
1189         CALL histdef(nid_files(iff), "s_trmb3", &
1190     &                "Point Omega (HBTM2)", "m", &
1191     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1192     &                type_ecri(iff), zstophy,zout)
1193        ENDIF
1194
1195! Champs interpolles sur des niveaux de pression
1196! iif=1 on ecrit u v w phi sur 850 700 500 200 au niv 1
1197! iif=2 on ecrit w et ph 500 seulement au niv 1
1198!        et u v sur 850 700 500 200
1199! iif=3 on ecrit ph a 500 seulement au niv 1
1200!      on ecrit u v t q a 850 700 500 200 au niv 3
1201
1202       DO k=1, nlevSTD
1203         IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k)
1204         IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k)
1205         IF(bb2.EQ."850".OR.bb2.EQ."700".OR. &
1206     &      bb2.EQ."500".OR.bb2.EQ."200") THEN
1207
1208        IF (flag_ulevsSTD(iff)<=lev_files(iff)) THEN
1209          CALL histdef(nid_files(iff), "u"//bb2, &
1210     &                 "Zonal wind "//bb2//"mb","m/s", &
1211     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1212     &                "inst(X)", zout,zout)
1213        ENDIF
1214
1215        IF (flag_vlevsSTD(iff)<=lev_files(iff)) THEN
1216          CALL histdef(nid_files(iff), "v"//bb2, &
1217     &                 "Meridional wind "//bb2//"mb","m/s", &
1218     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1219     &                "inst(X)", zout,zout)
1220        ENDIF
1221
1222        IF (flag_wlevsSTD(iff)<=lev_files(iff)) THEN
1223          CALL histdef(nid_files(iff), "w"//bb2, &
1224     &                 "Vertical wind "//bb2//"mb","m/s", &
1225     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1226     &                "inst(X)", zout,zout)
1227        ENDIF
1228
1229        IF (flag_philevsSTD(iff)<=lev_files(iff)) THEN
1230          CALL histdef(nid_files(iff), "phi"//bb2, &
1231     &                 "Geopotential "//bb2//"mb","m", &
1232     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1233     &                "inst(X)", zout,zout)
1234        ENDIF
1235
1236        IF (flag_qlevsSTD(iff)<=lev_files(iff)) THEN
1237          CALL histdef(nid_files(iff), "q"//bb2, &
1238     &               "Specific humidity "//bb2//"mb","kg/kg", &
1239     &               iim,jj_nb,nhori, 1,1,1, -99, 32, &
1240     &               "inst(X)", zout,zout)
1241        ENDIF
1242
1243        IF (flag_tlevsSTD(iff)<=lev_files(iff)) THEN
1244          CALL histdef(nid_files(iff), "t"//bb2, &
1245     &                 "Temperature "//bb2//"mb","K", &
1246     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1247     &                "inst(X)", zout,zout)
1248        ENDIF
1249
1250       ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.
1251       ENDDO
1252
1253!IM diagnostiques flux ocean-atm ou ocean-glace de mer
1254!IM pour utilisation dans un modele de "slab" ocean
1255
1256      IF (flag_fluxo(iff)<=lev_files(iff)) THEN
1257       CALL histdef(nid_files(iff), "fluxo", &
1258     &              "Flux turbulents ocean-atmosphere", "W/m2", &
1259     &              iim,jj_nb,nhori, 1,1,1, -99, 32, &
1260     &              type_ecri(iff), zstophy,zout)
1261      ENDIF
1262
1263      IF (flag_fluxg(iff)<=lev_files(iff)) THEN
1264       CALL histdef(nid_files(iff), "fluxg", &
1265     &              "Flux turbulents ocean-glace de mer","W/m2", &
1266     &              iim,jj_nb,nhori, 1,1,1, -99, 32, &
1267     &              type_ecri(iff), zstophy,zout)
1268      ENDIF
1269
1270      IF (flag_t_oce_sic(iff)<=lev_files(iff)) THEN
1271       CALL histdef(nid_files(iff), "t_oce_sic", &
1272     &              "Temp. mixte oce-sic","K", &
1273     &              iim,jj_nb,nhori, 1,1,1, -99, 32, &
1274     &              type_ecri(iff), zstophy,zout)
1275      ENDIF
1276
1277       IF (OCEAN.EQ.'force ') THEN
1278        IF (flag_lmt_bils(iff)<=lev_files(iff)) THEN
1279         CALL histdef(nid_files(iff), "lmt_bils", &
1280     &       "Bilan au sol atmosphere forcee", "W/m2", &
1281     &              iim,jj_nb,nhori, 1,1,1, -99, 32, &
1282     &              type_ecri(iff), zstophy,zout)
1283        ENDIF
1284
1285       ELSE IF (OCEAN.EQ.'slab  ') THEN
1286
1287        IF (flag_slab_bils(iff)<=lev_files(iff)) THEN
1288         CALL histdef(nid_files(iff), "slab_bils", &
1289     &       "Bilan au sol Slab", "W/m2", &
1290     &              iim,jj_nb,nhori, 1,1,1, -99, 32, &
1291     &              type_ecri(iff), zstophy,zout)
1292        ENDIF
1293
1294        IF (flag_tslab(iff)<=lev_files(iff)) THEN
1295         CALL histdef(nid_files(iff), "tslab", "Slab SST ", "K", &
1296     &              iim,jj_nb,nhori, 1,1,1, -99, 32, &
1297     &              type_ecri(iff), zstophy,zout)
1298        ENDIF
1299
1300        IF (flag_seaice(iff)<=lev_files(iff)) THEN
1301         CALL histdef(nid_files(iff),"seaice","Slab seaice","kg/m2", &
1302     &              iim,jj_nb,nhori, 1,1,1, -99, 32, &
1303     &              type_ecri(iff), zstophy,zout)
1304        ENDIF
1305
1306        IF (flag_siceh(iff)<=lev_files(iff)) THEN
1307         CALL histdef(nid_files(iff),"siceh", &
1308     &               "Slab seaice height","m", &
1309     &              iim,jj_nb,nhori, 1,1,1, -99, 32, &
1310     &              type_ecri(iff), zstophy,zout)
1311        ENDIF
1312       ENDIF
1313
1314      IF (flag_weakinv(iff)<=lev_files(iff)) THEN
1315         CALL histdef(nid_files(iff), "weakinv", &
1316     &            "Weak inversion", "-", &
1317     &            iim,jjmp1,nhori, 1,1,1, -99, 32, &
1318     &            type_ecri(iff), zstophy,zout)
1319      ENDIF
1320
1321      IF (flag_dthmin(iff)<=lev_files(iff)) THEN
1322         CALL histdef(nid_files(iff), "dthmin", &
1323     &            "dTheta mini", "K/m", &
1324     &            iim,jjmp1,nhori, 1,1,1, -99, 32, &
1325     &            type_ecri(iff), zstophy,zout)
1326      ENDIF
1327
1328       IF (flag_meantaucld(iff)<=lev_files(iff)) THEN
1329         CALL histdef(nid_files(iff),"meantaucld", &
1330     &                 "ISCCP mean cloud optical thickness","1", &
1331     &                 iim,jj_nb,nhori, 1,1,1, -99, 32, &
1332     &                 type_ecri(iff), zstophy,zout)
1333      ENDIF
1334
1335       IF (flag_cldtau(iff)<=lev_files(iff)) THEN
1336        CALL histdef(nid_files(iff),"cldtau", &
1337     &                 "Cloud optical thickness","1", &
1338     &                 iim,jj_nb,nhori, klev,1,klev, nvert, 32, &
1339     &                 type_ecri(iff), zstophy,zout)
1340      ENDIF
1341
1342       IF (flag_cldemi(iff)<=lev_files(iff)) THEN
1343        CALL histdef(nid_files(iff),"cldemi", &
1344     &                  "Cloud optical emissivity","1", &
1345     &                 iim,jj_nb,nhori, klev,1,klev, nvert, 32, &
1346     &                 type_ecri(iff), zstophy,zout)
1347      ENDIF
1348
1349       IF (flag_rh2m(iff)<=lev_files(iff)) THEN
1350        CALL histdef(nid_files(iff), "rh2m", &
1351     &                  "Relative humidity at 2m", "%", &
1352     &                 iim,jj_nb,nhori, 1,1,1, -99, 32, &
1353     &                 type_ecri(iff), zstophy,zout)
1354      ENDIF
1355
1356       IF (flag_qsat2m(iff)<=lev_files(iff)) THEN
1357         CALL histdef(nid_files(iff), "qsat2m", &
1358     &                  "Saturant humidity at 2m", "%", &
1359     &                 iim,jj_nb,nhori, 1,1,1, -99, 32, &
1360     &                 type_ecri(iff), zstophy,zout)
1361      ENDIF
1362
1363       IF (flag_tpot(iff)<=lev_files(iff)) THEN
1364         CALL histdef(nid_files(iff), "tpot", &
1365     &                "Surface air potential temperature", "K", &
1366     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1367     &                type_ecri(iff), zstophy,zout)
1368      ENDIF
1369
1370       IF (flag_tpote(iff)<=lev_files(iff)) THEN
1371         CALL histdef(nid_files(iff), "tpote", &
1372     &        "Surface air equivalent potential temperature", "K", &
1373     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1374     &                type_ecri(iff), zstophy,zout)
1375      ENDIF
1376
1377       IF (flag_SWnetOR(iff)<=lev_files(iff)) THEN
1378         CALL histdef(nid_files(iff), "SWnetOR", &
1379     &                "Sfce net SW radiation OR", "W/m2", &
1380     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1381     &                type_ecri(iff), zstophy,zout)
1382      ENDIF
1383
1384       IF (flag_SWdownOR(iff)<=lev_files(iff)) THEN
1385         CALL histdef(nid_files(iff), "SWdownOR", &
1386     &                "Sfce incident SW radiation OR", "W/m2", &
1387     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1388     &                type_ecri(iff), zstophy,zout)
1389      ENDIF
1390
1391       IF (flag_LWdownOR(iff)<=lev_files(iff)) THEN
1392         CALL histdef(nid_files(iff), "LWdownOR", &
1393     &                "Sfce incident LW radiation OR", "W/m2", &
1394     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1395     &                type_ecri(iff), zstophy,zout)
1396      ENDIF
1397
1398       IF (flag_snowl(iff)<=lev_files(iff)) THEN
1399         CALL histdef(nid_files(iff), "snowl", &
1400     &              "Solid Large-scale Precip.","kg/(m2*s)", &
1401     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1402     &                type_ecri(iff), zstophy,zout)
1403      ENDIF
1404
1405       IF (flag_cape_max(iff)<=lev_files(iff)) THEN
1406         CALL histdef(nid_files(iff), "cape_max", "CAPE max.", &
1407     &                "J/kg", &
1408     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1409     &                't_max(X)', zstophy,zout)
1410      ENDIF
1411
1412       IF (flag_solldown(iff)<=lev_files(iff)) THEN
1413         CALL histdef(nid_files(iff), "solldown", &
1414     &                  "Down. IR rad. at surface", &
1415     &                "W/m2", iim,jj_nb,nhori, 1,1,1, -99, 32, &
1416     &                type_ecri(iff), zstophy,zout)
1417      ENDIF
1418
1419       IF (flag_dtsvdfo(iff)<=lev_files(iff)) THEN
1420        CALL histdef(nid_files(iff), "dtsvdfo", &
1421     &                  "Boundary-layer dTs(o)", &
1422     &               "K/s", iim,jj_nb,nhori, 1,1,1, -99, 32, &
1423     &               type_ecri(iff), zout,zout)
1424      ENDIF
1425
1426       IF (flag_dtsvdft(iff)<=lev_files(iff)) THEN
1427        CALL histdef(nid_files(iff), "dtsvdft", &
1428     &                  "Boundary-layer dTs(t)", "K/s", &
1429     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1430     &                type_ecri(iff), zout,zout)
1431      ENDIF
1432
1433       IF (flag_dtsvdfg(iff)<=lev_files(iff)) THEN
1434      CALL histdef(nid_files(iff), "dtsvdfg", &
1435     &                  "Boundary-layer dTs(g)", "K/s", &
1436     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1437     &                type_ecri(iff), zout,zout)
1438      ENDIF
1439
1440       IF (flag_dtsvdfi(iff)<=lev_files(iff)) THEN
1441      CALL histdef(nid_files(iff), "dtsvdfi", &
1442     &                  "Boundary-layer dTs(g)", "K/s", &
1443     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1444     &                type_ecri(iff), zout,zout)
1445      ENDIF
1446
1447       IF (flag_rugs(iff)<=lev_files(iff)) THEN
1448         CALL histdef(nid_files(iff), "rugs", "rugosity", "-", &
1449     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1450     &                "inst(X)", zout,zout)
1451      ENDIF
1452
1453! Champs 3D:
1454
1455       IF (flag_lwcon(iff)<=lev_files(iff)) THEN
1456         CALL histdef(nid_files(iff),"lwcon", &
1457     &                 "Cloud liquid water content","kg/kg", &
1458     &                iim,jj_nb,nhori, klev,1,klev, nvert, 32, &
1459     &                type_ecri(iff), zstophy,zout)
1460      ENDIF
1461
1462       IF (flag_iwcon(iff)<=lev_files(iff)) THEN
1463         CALL histdef(nid_files(iff),"iwcon", &
1464     &                "Cloud ice water content","kg/kg", &
1465     &                iim,jj_nb,nhori, klev,1,klev, nvert, 32, &
1466     &                type_ecri(iff), zstophy,zout)
1467      ENDIF
1468
1469       IF (flag_temp(iff)<=lev_files(iff)) THEN
1470        CALL histdef(nid_files(iff),"temp","Air temperature","K", &
1471     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1472     &                type_ecri(iff), zstophy,zout)
1473      ENDIF
1474
1475       IF (flag_ovap(iff)<=lev_files(iff)) THEN
1476         CALL histdef(nid_files(iff), "ovap", &
1477     &                  "Specific humidity","kg/kg", &
1478     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1479     &                type_ecri(iff), zstophy,zout)
1480      ENDIF
1481
1482
1483       IF (flag_geop(iff)<=lev_files(iff)) THEN
1484         CALL histdef(nid_files(iff), "geop", &
1485     &                  "Geopotential height", "m2/s2", &
1486     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1487     &                type_ecri(iff), zstophy,zout)
1488      ENDIF
1489
1490       IF (flag_vitu(iff)<=lev_files(iff)) THEN
1491         CALL histdef(nid_files(iff), "vitu", "Zonal wind", "m/s", &
1492     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1493     &                type_ecri(iff), zstophy,zout)
1494      ENDIF
1495
1496       IF (flag_vitv(iff)<=lev_files(iff)) THEN
1497         CALL histdef(nid_files(iff),"vitv","Meridional wind","m/s", &
1498     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1499     &                type_ecri(iff), zstophy,zout)
1500      ENDIF
1501
1502       IF (flag_vitw(iff)<=lev_files(iff)) THEN
1503         CALL histdef(nid_files(iff),"vitw","Vertical wind","m/s", &
1504     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1505     &                type_ecri(iff), zstophy,zout)
1506      ENDIF
1507
1508       IF (flag_pres(iff)<=lev_files(iff)) THEN
1509         CALL histdef(nid_files(iff), "pres", "Air pressure", "Pa", &
1510     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1511     &                type_ecri(iff), zstophy,zout)
1512      ENDIF
1513
1514       IF (flag_rneb(iff)<=lev_files(iff)) THEN
1515        CALL histdef(nid_files(iff), "rneb", "Cloud fraction", "-", &
1516     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1517     &                type_ecri(iff), zstophy,zout)
1518      ENDIF
1519
1520       IF (flag_rnebcon(iff)<=lev_files(iff)) THEN
1521         CALL histdef(nid_files(iff), "rnebcon", &
1522     &                "Convective Cloud Fraction", "-", &
1523     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1524     &                type_ecri(iff), zstophy,zout)
1525      ENDIF
1526
1527       IF (flag_rhum(iff)<=lev_files(iff)) THEN
1528        CALL histdef(nid_files(iff), "rhum", "Relative humidity", "-", &
1529     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1530     &                type_ecri(iff), zstophy,zout)
1531      ENDIF
1532
1533       IF (flag_ozone(iff)<=lev_files(iff)) THEN
1534         CALL histdef(nid_files(iff), "ozone", &
1535     &                  "Ozone concentration", "ppmv", &
1536     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1537     &                type_ecri(iff), zstophy,zout)
1538      ENDIF
1539
1540       IF (flag_upwd(iff)<=lev_files(iff)) THEN
1541         CALL histdef(nid_files(iff), "upwd", &
1542     &                  "saturated updraft", "kg/m2/s", &
1543     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1544     &                type_ecri(iff), zstophy,zout)
1545      ENDIF
1546
1547       IF (flag_dtphy(iff)<=lev_files(iff)) THEN
1548         CALL histdef(nid_files(iff), "dtphy", "Physics dT", "K/s", &
1549     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1550     &                type_ecri(iff), zstophy,zout)
1551      ENDIF
1552
1553       IF (flag_dqphy(iff)<=lev_files(iff)) THEN
1554         CALL histdef(nid_files(iff), "dqphy", &
1555     &                  "Physics dQ", "(kg/kg)/s", &
1556     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1557     &                type_ecri(iff), zstophy,zout)
1558      ENDIF
1559
1560        DO nsrf=1, nbsrf
1561          IF (flag_albe_sol(iff)<=lev_files(iff)) THEN
1562           call histdef(nid_files(iff), "albe_"//clnsurf(nsrf), &
1563     &          "Albedo surf. "//clnsurf(nsrf), "-", &
1564     &          iim,jj_nb,nhori, 1,1,1, -99, 32, &
1565     &          type_ecri(iff), zstophy,zout)
1566        ENDIF
1567
1568          IF (flag_rugs_sol(iff)<=lev_files(iff)) THEN 
1569           call histdef(nid_files(iff), "rugs_"//clnsurf(nsrf), &
1570     &          "Latent heat flux "//clnsurf(nsrf), "W/m2", &
1571     &         iim,jj_nb,nhori, 1,1,1, -99, 32, &
1572     &         type_ecri(iff), zstophy,zout)
1573       ENDIF
1574
1575        IF (flag_ages_sol(iff)<=lev_files(iff)) THEN
1576         CALL histdef(nid_files(iff), &
1577     &          "ages_"//clnsurf(nsrf), "Snow age","day", &
1578     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1579     &                type_ecri(iff), zstophy,zout)
1580       ENDIF
1581
1582         ENDDO !nsrf=1, nbsrf
1583
1584       IF (flag_albs(iff)<=lev_files(iff)) THEN
1585         CALL histdef(nid_files(iff),"albs","Surface albedo","-", &
1586     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1587     &                type_ecri(iff), zstophy,zout)
1588      ENDIF
1589
1590       IF (flag_albslw(iff)<=lev_files(iff)) THEN
1591         CALL histdef(nid_files(iff),"albslw", &
1592     &                  "Surface albedo LW", "-", &
1593     &                iim,jj_nb,nhori, 1,1,1, -99, 32, &
1594     &                type_ecri(iff), zstophy,zout)
1595      ENDIF
1596
1597!FH Sorties pour la couche limite
1598      if (iflag_pbl>1) then
1599       IF (flag_tke(iff)<=lev_files(iff)) THEN
1600         CALL histdef(nid_files(iff), "tke","TKE","m2/s2", &
1601     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1602     &                type_ecri(iff), zstophy,zout)
1603      ENDIF
1604
1605       IF (flag_tke_max(iff)<=lev_files(iff)) THEN
1606         CALL histdef(nid_files(iff), "tke_max","TKE max","m2/s2", &
1607     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1608     &                "t_max(X)", zstophy,zout)
1609      ENDIF
1610      endif
1611
1612       IF (flag_kz(iff)<=lev_files(iff)) THEN
1613         CALL histdef(nid_files(iff), "kz","Kz melange","m2/s", &
1614     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1615     &                type_ecri(iff), zstophy,zout)
1616      ENDIF
1617
1618       IF (flag_kz_max(iff)<=lev_files(iff)) THEN
1619         CALL histdef(nid_files(iff), "kz_max", &
1620     &                  "Kz melange max","m2/s", &
1621     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1622     &                "t_max(X)", zstophy,zout)
1623      ENDIF
1624
1625       IF (flag_clwcon(iff)<=lev_files(iff)) THEN
1626         CALL histdef(nid_files(iff), "clwcon", &
1627     &                "Convective Cloud Liquid water content", &
1628     &                 "kg/kg", &
1629     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1630     &                type_ecri(iff), zstophy,zout)
1631      ENDIF
1632
1633       IF (flag_Ma(iff)<=lev_files(iff)) THEN
1634         CALL histdef(nid_files(iff),"Ma", &
1635     &                  "undilute adiab updraft","kg/m2/s", &
1636     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1637     &                type_ecri(iff), zstophy,zout)
1638      ENDIF
1639
1640       IF (flag_dnwd(iff)<=lev_files(iff)) THEN
1641         CALL histdef(nid_files(iff), "dnwd", &
1642     &                  "saturated downdraft","kg/m2/s", &
1643     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1644     &                type_ecri(iff), zstophy,zout)
1645      ENDIF
1646
1647       IF (flag_dnwd0(iff)<=lev_files(iff)) THEN
1648         CALL histdef(nid_files(iff), "dnwd0", &
1649     &                  "unsat. downdraft", "kg/m2/s", &
1650     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1651     &                type_ecri(iff), zstophy,zout)
1652      ENDIF
1653
1654       IF (flag_dtdyn(iff)<=lev_files(iff)) THEN
1655         CALL histdef(nid_files(iff),"dtdyn","Dynamics dT","K/s", &
1656     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1657     &                type_ecri(iff), zstophy,zout)
1658      ENDIF
1659
1660       IF (flag_dqdyn(iff)<=lev_files(iff)) THEN
1661         CALL histdef(nid_files(iff), "dqdyn", &
1662     &                  "Dynamics dQ", "(kg/kg)/s", &
1663     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1664     &                type_ecri(iff), zstophy,zout)
1665      ENDIF
1666
1667       IF (flag_dtcon(iff)<=lev_files(iff)) THEN
1668         CALL histdef(nid_files(iff),"dtcon","Convection dT","K/s", &
1669     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1670     &                type_ecri(iff), zstophy,zout)
1671      ENDIF
1672
1673       IF (flag_ducon(iff)<=lev_files(iff)) THEN
1674        CALL histdef(nid_files(iff),"ducon","Convection du","m/s2", &
1675     &               iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1676     &               type_ecri(iff), zstophy,zout)
1677      ENDIF
1678
1679       IF (flag_dqcon(iff)<=lev_files(iff)) THEN
1680         CALL histdef(nid_files(iff), "dqcon", &
1681     &                  "Convection dQ", "(kg/kg)/s", &
1682     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1683     &                type_ecri(iff), zstophy,zout)
1684      ENDIF
1685
1686       IF (flag_dtlsc(iff)<=lev_files(iff)) THEN
1687         CALL histdef(nid_files(iff), "dtlsc", &
1688     &                  "Condensation dT", "K/s", &
1689     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1690     &                type_ecri(iff), zstophy,zout)
1691      ENDIF
1692
1693       IF (flag_dtlschr(iff)<=lev_files(iff)) THEN
1694         CALL histdef(nid_files(iff), "dtlschr", &
1695     &                "Large-scale condensational heating rate", &
1696     &                "K/s",iim,jj_nb, nhori, klev,1,klev,nvert, &
1697     &                 32,type_ecri(iff), zstophy,zout)
1698      ENDIF
1699
1700       IF (flag_dqlsc(iff)<=lev_files(iff)) THEN
1701         CALL histdef(nid_files(iff), "dqlsc", &
1702     &                "Condensation dQ", "(kg/kg)/s", &
1703     &               iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1704     &                type_ecri(iff), zstophy,zout)
1705      ENDIF
1706
1707       IF (flag_dtvdf(iff)<=lev_files(iff)) THEN
1708        CALL histdef(nid_files(iff), "dtvdf", &
1709     &                "Boundary-layer dT", "K/s", &
1710     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1711     &                type_ecri(iff), zstophy,zout)
1712      ENDIF
1713
1714       IF (flag_dqvdf(iff)<=lev_files(iff)) THEN
1715         CALL histdef(nid_files(iff), "dqvdf", &
1716     &                "Boundary-layer dQ","(kg/kg)/s", &
1717     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1718     &                type_ecri(iff), zstophy,zout)
1719      ENDIF
1720
1721       IF (flag_dteva(iff)<=lev_files(iff)) THEN
1722         CALL histdef(nid_files(iff), "dteva", &
1723     &                  "Reevaporation dT", "K/s", &
1724     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1725     &                type_ecri(iff), zstophy,zout)
1726      ENDIF
1727
1728       IF (flag_dqeva(iff)<=lev_files(iff)) THEN
1729         CALL histdef(nid_files(iff), "dqeva", &
1730     &                  "Reevaporation dQ","(kg/kg)/s", &
1731     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1732     &                type_ecri(iff), zstophy,zout)
1733      ENDIF
1734
1735       IF (flag_ptconv(iff)<=lev_files(iff)) THEN
1736         CALL histdef(nid_files(iff), "ptconv", &
1737     &                  "POINTS CONVECTIFS"," ", &
1738     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1739     &                type_ecri(iff), zstophy,zout)
1740      ENDIF
1741
1742       IF (flag_ratqs(iff)<=lev_files(iff)) THEN
1743         CALL histdef(nid_files(iff), "ratqs", "RATQS"," ", &
1744     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1745     &                type_ecri(iff), zstophy,zout)
1746      ENDIF
1747
1748       IF (flag_dtthe(iff)<=lev_files(iff)) THEN
1749         CALL histdef(nid_files(iff), "dtthe", &
1750     &                  "Dry adjust. dT", "K/s", &
1751     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1752     &                type_ecri(iff), zstophy,zout)
1753      ENDIF
1754
1755       IF (flag_dqthe(iff)<=lev_files(iff)) THEN
1756         CALL histdef(nid_files(iff),"dqthe", &
1757     &                "Dry adjust. dQ","(kg/kg)/s", &
1758     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1759     &                type_ecri(iff), zstophy,zout)
1760      ENDIF
1761
1762       IF (flag_dtajs(iff)<=lev_files(iff)) THEN
1763         CALL histdef(nid_files(iff), "dtajs", &
1764     &                  "Dry adjust. dT", "K/s", &
1765     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1766     &                type_ecri(iff), zstophy,zout)
1767      ENDIF
1768
1769       IF (flag_dqajs(iff)<=lev_files(iff)) THEN
1770         CALL histdef(nid_files(iff),"dqajs", &
1771     &                  "Dry adjust. dQ","(kg/kg)/s", &
1772     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1773     &                type_ecri(iff), zstophy,zout)
1774      ENDIF
1775
1776       IF (flag_dtswr(iff)<=lev_files(iff)) THEN
1777         CALL histdef(nid_files(iff), "dtswr", &
1778     &                  "SW radiation dT", "K/s", &
1779     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1780     &                type_ecri(iff), zstophy,zout)
1781      ENDIF
1782
1783       IF (flag_dtsw0(iff)<=lev_files(iff)) THEN
1784         CALL histdef(nid_files(iff), "dtsw0", &
1785     &                  "CS SW radiation dT", "K/s", &
1786     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1787     &                type_ecri(iff), zstophy,zout)
1788      ENDIF
1789
1790       IF (flag_dtlwr(iff)<=lev_files(iff)) THEN
1791         CALL histdef(nid_files(iff), "dtlwr", &
1792     &                  "LW radiation dT", "K/s", &
1793     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1794     &                type_ecri(iff), zstophy,zout)
1795      ENDIF
1796
1797       IF (flag_dtlw0(iff)<=lev_files(iff)) THEN
1798         CALL histdef(nid_files(iff),"dtlw0", &
1799     &                  "CS LW radiation dT","K/s", &
1800     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1801     &                type_ecri(iff), zstophy,zout)
1802      ENDIF
1803
1804       IF (flag_dtec(iff)<=lev_files(iff)) THEN
1805         CALL histdef(nid_files(iff), "dtec", &
1806     &                  "Cinetic dissip dT", "K/s", &
1807     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1808     &                type_ecri(iff), zstophy,zout)
1809      ENDIF
1810
1811       IF (flag_duvdf(iff)<=lev_files(iff)) THEN
1812         CALL histdef(nid_files(iff), "duvdf", &
1813     &                  "Boundary-layer dU", "m/s2", &
1814     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1815     &                type_ecri(iff), zstophy,zout)
1816      ENDIF
1817
1818       IF (flag_dvvdf(iff)<=lev_files(iff)) THEN
1819         CALL histdef(nid_files(iff), "dvvdf", &
1820     &          "Boundary-layer dV", "m/s2", &
1821     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1822     &                type_ecri(iff), zstophy,zout)
1823      ENDIF
1824
1825         IF (ok_orodr) THEN
1826       IF (flag_duoro(iff)<=lev_files(iff)) THEN
1827         CALL histdef(nid_files(iff), "duoro", &
1828     &                  "Orography dU", "m/s2", &
1829     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1830     &                type_ecri(iff), zstophy,zout)
1831      ENDIF
1832
1833       IF (flag_dvoro(iff)<=lev_files(iff)) THEN
1834         CALL histdef(nid_files(iff), "dvoro", &
1835     &                  "Orography dV", "m/s2", &
1836     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1837     &                type_ecri(iff), zstophy,zout)
1838      ENDIF
1839
1840         ENDIF
1841
1842      IF (ok_orolf) THEN
1843       IF (flag_dulif(iff)<=lev_files(iff)) THEN
1844         CALL histdef(nid_files(iff), "dulif", &
1845     &                "Orography dU", "m/s2", &
1846     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1847     &                type_ecri(iff), zstophy,zout)
1848       ENDIF
1849
1850       IF (flag_dvlif(iff)<=lev_files(iff)) THEN
1851         CALL histdef(nid_files(iff), "dvlif", &
1852     &                  "Orography dV", "m/s2", &
1853     &               iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1854     &                type_ecri(iff), zstophy,zout)
1855       ENDIF
1856      ENDIF
1857
1858          IF (flag_trac(iff)<=lev_files(iff)) THEN
1859           if (nqmax>=3) THEN
1860             DO iq=3,nqmax
1861              iiq=niadv(iq)
1862         CALL histdef(nid_files(iff),tnom(iq),ttext(iiq), "-", &
1863     &                iim,jj_nb,nhori, klev,1,klev,nvert, 32, &
1864     &                type_ecri(iff), zstophy,zout)
1865             ENDDO
1866           endif
1867         ENDIF
1868
1869        CALL histend(nid_files(iff))
1870
1871         ndex2d = 0
1872         ndex3d = 0
1873
1874         ENDIF ! clef_files
1875
1876         ENDDO !
1877      end subroutine phys_output_open
1878
1879END MODULE phys_output_mod
1880
Note: See TracBrowser for help on using the repository browser.