source: LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/cosp/read_cosp_output_nl.F90 @ 3173

Last change on this file since 3173 was 3173, checked in by idelkadi, 6 years ago
  • Controle des sorties des champs Cosp en fonction du contenu des fichiers *.xml (pour CMIP)
  • Optimisation de la routine de sorties cosp_output_write.F90
  • Appel a la mise a jours du calendrier pour XIOS commente (car deja fait dans phys_output_write.F90)
  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
File size: 27.6 KB
Line 
1!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2!--------------- SUBROUTINE READ_COSP_OUTPUT_NL -------------------------
3!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 SUBROUTINE READ_COSP_OUTPUT_NL(itap,cosp_nl,cfg)
5  USE MOD_COSP_CONSTANTS
6  USE MOD_COSP_TYPES
7  USE mod_phys_lmdz_para
8
9#ifdef CPP_XIOS
10    USE xios, ONLY: xios_field_is_active
11#endif
12
13  character(len=*),intent(in) :: cosp_nl
14  type(cosp_config),intent(out) :: cfg
15  ! Local variables
16  integer :: i, itap
17
18!! AI
19!  logical, save ::   Lradar_sim,Llidar_sim,Lisccp_sim,Lmisr_sim,Lrttov_sim, &
20!             Lalbisccp,Latb532,Lboxptopisccp,Lboxtauisccp,Lcfad_dbze94, &
21!             Lcfad_lidarsr532,Lclcalipso2,Lclcalipso,Lclhcalipso,Lclisccp2,Lcllcalipso, &
22!             Lclmcalipso,Lcltcalipso,Lcltlidarradar,Lctpisccp,Ldbze94,Ltauisccp,Ltclisccp, &
23!             Llongitude,Llatitude,Lparasol_refl,LclMISR,Lmeantbisccp,Lmeantbclrisccp, &
24!             Lfrac_out,Lbeta_mol532,Ltbrttov
25
26!  namelist/COSP_OUTPUT/Lradar_sim,Llidar_sim,Lisccp_sim,Lmisr_sim,Lrttov_sim, &
27!             Lalbisccp,Latb532,Lboxptopisccp,Lboxtauisccp,Lcfad_dbze94, &
28!             Lcfad_lidarsr532,Lclcalipso2,Lclcalipso,Lclhcalipso,Lclisccp2, &
29!             Lcllcalipso,Lclmcalipso,Lcltcalipso,Lcltlidarradar,Lctpisccp,Ldbze94,Ltauisccp, &
30!             Ltclisccp,Llongitude,Llatitude,Lparasol_refl,LclMISR,Lmeantbisccp,Lmeantbclrisccp, &
31!             Lfrac_out,Lbeta_mol532,Ltbrttov
32!!
33
34 logical, save :: Lradar_sim,Llidar_sim,Lisccp_sim,Lmodis_sim,Lmisr_sim,Lrttov_sim, &
35             Lalbisccp,Latb532,Lboxptopisccp,Lboxtauisccp,LcfadDbze94, &
36             LcfadLidarsr532,Lclcalipso2,Lclcalipso,Lclhcalipso,Lclisccp,Lcllcalipso, &
37             Lclmcalipso,Lcltcalipso,Lcltlidarradar,Lpctisccp,Ldbze94,Ltauisccp,Lcltisccp, &
38             Lclcalipsoliq,Lclcalipsoice,Lclcalipsoun, &
39             Lclcalipsotmp,Lclcalipsotmpliq,Lclcalipsotmpice,Lclcalipsotmpun, &
40             Lcltcalipsoliq,Lcltcalipsoice,Lcltcalipsoun, &
41             Lclhcalipsoliq,Lclhcalipsoice,Lclhcalipsoun, &
42             Lclmcalipsoliq,Lclmcalipsoice,Lclmcalipsoun, &
43             Lcllcalipsoliq,Lcllcalipsoice,Lcllcalipsoun, &
44             Ltoffset,LparasolRefl,LclMISR,Lmeantbisccp,Lmeantbclrisccp, &
45             Lfracout,LlidarBetaMol532,Ltbrttov, &
46             Lcltmodis,Lclwmodis,Lclimodis,Lclhmodis,Lclmmodis,Lcllmodis,Ltautmodis,Ltauwmodis,Ltauimodis,Ltautlogmodis, &
47             Ltauwlogmodis,Ltauilogmodis,Lreffclwmodis,Lreffclimodis,Lpctmodis,Llwpmodis, &
48             Liwpmodis,Lclmodis,Lcrimodis,Lcrlmodis,Lclopaquecalipso,Lclthincalipso,      &           !OPAQ (2)
49             Lclzopaquecalipso,Lclcalipsoopaque,Lclcalipsothin,Lclcalipsozopaque,Lclcalipsoopacity, & !OPAQ (5)
50             LprofSR,Lproftemp                                                                        !TIBO (2)
51
52  namelist/COSP_OUTPUT/Lradar_sim,Llidar_sim,Lisccp_sim,Lmodis_sim,Lmisr_sim,Lrttov_sim, &
53             Lalbisccp,Latb532,Lboxptopisccp,Lboxtauisccp,LcfadDbze94, &
54             LcfadLidarsr532,Lclcalipso2,Lclcalipso,Lclhcalipso,Lclisccp, &
55             Lcllcalipso,Lclmcalipso,Lcltcalipso,Lcltlidarradar,Lpctisccp,Ldbze94,Ltauisccp, &
56             Lclcalipsoliq,Lclcalipsoice,Lclcalipsoun, &
57             Lclcalipsotmp,Lclcalipsotmpliq,Lclcalipsotmpice,Lclcalipsotmpun, &
58             Lcltcalipsoliq,Lcltcalipsoice,Lcltcalipsoun, &
59             Lclhcalipsoliq,Lclhcalipsoice,Lclhcalipsoun, &
60             Lclmcalipsoliq,Lclmcalipsoice,Lclmcalipsoun, &
61             Lcllcalipsoliq,Lcllcalipsoice,Lcllcalipsoun, &
62             Lcltisccp,Ltoffset,LparasolRefl,LclMISR,Lmeantbisccp,Lmeantbclrisccp, &
63             Lfracout,LlidarBetaMol532,Ltbrttov, &
64             Lcltmodis,Lclwmodis,Lclimodis,Lclhmodis,Lclmmodis,Lcllmodis,Ltautmodis,Ltauwmodis,Ltauimodis,Ltautlogmodis, &
65             Ltauwlogmodis,Ltauilogmodis,Lreffclwmodis,Lreffclimodis,Lpctmodis,Llwpmodis, &
66             Liwpmodis,Lclmodis,Lcrimodis,Lcrlmodis,Lclopaquecalipso,Lclthincalipso,      &           !OPAQ (2)
67             Lclzopaquecalipso,Lclcalipsoopaque,Lclcalipsothin,Lclcalipsozopaque,Lclcalipsoopacity, & !OPAQ (5)
68             LprofSR,Lproftemp                                                                        !TIBO (2)
69   
70  do i=1,N_OUT_LIST
71    cfg%out_list(i)=''
72  enddo
73 
74! Lecture du fichier namelist
75  IF (is_master) THEN
76    open(10,file=cosp_nl,status='old')
77    read(10,nml=cosp_output)
78    close(10)
79  ENDIF
80 
81  CALL bcast(Lradar_sim)
82  CALL bcast(Llidar_sim)
83  CALL bcast(Lisccp_sim)
84  CALL bcast(Lmodis_sim)
85  CALL bcast(Lmisr_sim)
86  CALL bcast(Lrttov_sim)
87
88  CALL bcast(Lalbisccp)
89  CALL bcast(Latb532)
90  CALL bcast(Lboxptopisccp)
91  CALL bcast(Lboxtauisccp)
92  CALL bcast(LcfadDbze94)
93  CALL bcast(LcfadLidarsr532)
94  CALL bcast(Lclcalipso2)
95  CALL bcast(Lclcalipso)
96  CALL bcast(Lclhcalipso)
97  CALL bcast(Lclcalipsoliq)
98  CALL bcast(Lclcalipsoice)
99  CALL bcast(Lclcalipsoun)
100  CALL bcast(Lclcalipsotmp)
101  CALL bcast(Lclcalipsotmpliq)
102  CALL bcast(Lclcalipsotmpice)
103  CALL bcast(Lclcalipsotmpun)
104  CALL bcast(Lcltcalipsoliq)
105  CALL bcast(Lcltcalipsoice)
106  CALL bcast(Lcltcalipsoun)
107  CALL bcast(Lclhcalipsoliq)
108  CALL bcast(Lclhcalipsoice)
109  CALL bcast(Lclhcalipsoun)
110  CALL bcast(Lclmcalipsoliq)
111  CALL bcast(Lclmcalipsoice)
112  CALL bcast(Lclmcalipsoun)
113  CALL bcast(Lcllcalipsoliq)
114  CALL bcast(Lcllcalipsoice)
115  CALL bcast(Lcllcalipsoun)
116  CALL bcast(Lclisccp)
117  CALL bcast(Lcllcalipso)
118  CALL bcast(Lclmcalipso)
119  CALL bcast(Lcltcalipso)
120  CALL bcast(Lcltlidarradar)
121  CALL bcast(Lpctisccp)
122  CALL bcast(Ldbze94)
123  CALL bcast(Ltauisccp)
124  CALL bcast(Lcltisccp)
125  CALL bcast(LparasolRefl)
126  CALL bcast(LclMISR)
127  CALL bcast(Lmeantbisccp)
128  CALL bcast(Lmeantbclrisccp)
129  CALL bcast(Lfrac_out)
130  CALL bcast(LlidarBetaMol532)
131  CALL bcast(Lcltmodis)
132  CALL bcast(Lclwmodis)
133  CALL bcast(Lclimodis)
134  CALL bcast(Lclhmodis)
135  CALL bcast(Lclmmodis)
136  CALL bcast(Lcllmodis)
137  CALL bcast(Ltautmodis)
138  CALL bcast(Ltauwmodis)
139  CALL bcast(Ltauimodis)
140  CALL bcast(Ltautlogmodis)
141  CALL bcast(Ltauwlogmodis)
142  CALL bcast(Ltauilogmodis)
143  CALL bcast(Lreffclwmodis)
144  CALL bcast(Lreffclimodis)
145  CALL bcast(Lpctmodis)
146  CALL bcast(Llwpmodis)
147  CALL bcast(Liwpmodis)
148  CALL bcast(Lclmodis)
149  CALL bcast(Ltbrttov)
150  CALL bcast(Lcrimodis)
151  CALL bcast(Lcrlmodis)
152  CALL bcast(Lclopaquecalipso)  !OPAQ
153  CALL bcast(Lclthincalipso)    !OPAQ
154  CALL bcast(Lclzopaquecalipso) !OPAQ
155  CALL bcast(Lclcalipsoopaque)  !OPAQ
156  CALL bcast(Lclcalipsothin)    !OPAQ
157  CALL bcast(Lclcalipsozopaque) !OPAQ
158  CALL bcast(Lclcalipsoopacity) !OPAQ
159  CALL bcast(LprofSR)           !TIBO
160  CALL bcast(Lproftemp)         !TIBO
161
162!$OMP BARRIER
163
164!  print*,' Cles sorties cosp :'
165!  print*,' Lradar_sim,Llidar_sim,Lisccp_sim,Lmisr_sim,Lrttov_sim', &
166!           Lradar_sim,Llidar_sim,Lisccp_sim,Lmisr_sim,Lrttov_sim
167
168
169  ! Deal with dependencies
170  if (.not.Lradar_sim) then
171    LcfadDbze94   = .false.
172    Lclcalipso2    = .false.
173    Lcltlidarradar = .false. ! Needs radar & lidar
174    Ldbze94        = .false.
175    Lclcalipso2    = .false. ! Needs radar & lidar
176  endif
177
178  if (.not.Llidar_sim) then
179    Latb532          = .false.
180    LcfadLidarsr532  = .false.
181    Lclcalipso2      = .false.
182    Lclcalipso       = .false.
183    Lclhcalipso      = .false.
184    Lcllcalipso      = .false.
185    Lclmcalipso      = .false.
186    Lcltcalipso      = .false.
187    Lcltlidarradar   = .false. ! Needs radar & lidar
188    LparasolRefl     = .false.
189    LlidarBetaMol532 = .false.
190!! AI
191    Lclcalipsoliq       = .false.
192    Lclcalipsoice       = .false.
193    Lclcalipsoun        = .false.
194    Lclcalipsotmp       = .false.
195    Lclcalipsotmpun     = .false.
196    Lclcalipsotmpliq    = .false.
197    Lclcalipsotmpice    = .false.
198    Lclhcalipsoliq      = .false.
199    Lcllcalipsoliq      = .false.
200    Lclmcalipsoliq      = .false.
201    Lcltcalipsoliq      = .false.
202    Lclhcalipsoice      = .false.
203    Lcllcalipsoice      = .false.
204    Lclmcalipsoice      = .false.
205    Lcltcalipsoice      = .false.
206    Lclhcalipsoun       = .false.
207    Lcllcalipsoun       = .false.
208    Lclmcalipsoun       = .false.
209    Lcltcalipsoun       = .false.
210    Lclopaquecalipso    = .false. !OPAQ
211    Lclthincalipso      = .false. !OPAQ
212    Lclzopaquecalipso   = .false. !OPAQ
213    Lclcalipsoopaque    = .false. !OPAQ
214    Lclcalipsothin      = .false. !OPAQ
215    Lclcalipsozopaque   = .false. !OPAQ
216    Lclcalipsoopacity   = .false. !OPAQ
217    LprofSR             = .false. !TIBO
218    Lproftemp           = .false. !TIBO
219  endif
220
221  if (.not.Lisccp_sim) then
222    Lalbisccp       = .false.
223    Lboxptopisccp   = .false.
224    Lboxtauisccp    = .false.
225    Lclisccp        = .false.
226    Lpctisccp       = .false.
227    Ltauisccp       = .false.
228    Lcltisccp       = .false.
229    Lmeantbisccp    = .false.
230    Lmeantbclrisccp = .false.
231  endif
232
233  if (.not.Lmisr_sim) then
234    LclMISR = .false.
235  endif
236  if (.not.Lrttov_sim) then
237    Ltbrttov = .false.
238  endif
239  if ((.not.Lradar_sim).and.(.not.Llidar_sim).and. &
240      (.not.Lisccp_sim).and.(.not.Lmisr_sim)) then
241    Lfrac_out = .false.
242  endif
243 if (.not.Lmodis_sim) then
244    Lcltmodis=.false.
245    Lclwmodis=.false.
246    Lclimodis=.false.
247    Lclhmodis=.false.
248    Lclmmodis=.false.
249    Lcllmodis=.false.
250    Ltautmodis=.false.
251    Ltauwmodis=.false.
252    Ltauimodis=.false.
253    Ltautlogmodis=.false.
254    Ltauwlogmodis=.false.
255    Ltauilogmodis=.false.
256    Lreffclwmodis=.false.
257    Lreffclimodis=.false.
258    Lpctmodis=.false.
259    Llwpmodis=.false.
260    Liwpmodis=.false.
261    Lclmodis=.false.
262    Lcrimodis=.false.
263    Lcrlmodis=.false.
264  endif
265  if (Lmodis_sim) Lisccp_sim = .true.
266
267  ! Diagnostics that use Radar and Lidar
268  if (((Lclcalipso2).or.(Lcltlidarradar)).and.((Lradar_sim).or.(Llidar_sim))) then
269    Lclcalipso2    = .true.
270    Lcltlidarradar = .true.
271    Llidar_sim     = .true.
272    Lradar_sim     = .true.
273  endif
274
275  cfg%Lstats = .false.
276  if ((Lradar_sim).or.(Llidar_sim).or.(Lisccp_sim)) cfg%Lstats = .true.
277
278  ! Copy instrument flags to cfg structure
279  cfg%Lradar_sim = Lradar_sim
280  cfg%Llidar_sim = Llidar_sim
281  cfg%Lisccp_sim = Lisccp_sim
282  cfg%Lmodis_sim = Lmodis_sim
283  cfg%Lmisr_sim  = Lmisr_sim
284  cfg%Lrttov_sim = Lrttov_sim
285
286  ! Flag to control output to file
287  cfg%Lwrite_output = .false.
288  if (cfg%Lstats.or.cfg%Lmisr_sim.or.cfg%Lrttov_sim) then
289    cfg%Lwrite_output = .true.
290  endif
291
292  ! Output diagnostics
293  i = 1
294  if (Lalbisccp)        cfg%out_list(i) = 'albisccp'
295  i = i+1
296  if (Latb532)          cfg%out_list(i) = 'atb532'
297  i = i+1
298  if (Lboxptopisccp)    cfg%out_list(i) = 'boxptopisccp'
299  i = i+1
300  if (Lboxtauisccp)     cfg%out_list(i) = 'boxtauisccp'
301  i = i+1
302  if (LcfadDbze94)      cfg%out_list(i) = 'cfadDbze94'
303  i = i+1
304  if (LcfadLidarsr532)  cfg%out_list(i) = 'cfadLidarsr532'
305  i = i+1
306  if (Lclcalipso2)      cfg%out_list(i) = 'clcalipso2'
307  i = i+1
308  if (Lclcalipso)       cfg%out_list(i) = 'clcalipso'
309  i = i+1
310  if (Lclhcalipso)      cfg%out_list(i) = 'clhcalipso'
311  i = i+1
312  if (Lclisccp)         cfg%out_list(i) = 'clisccp'
313  i = i+1
314  if (Lcllcalipso)      cfg%out_list(i) = 'cllcalipso'
315  i = i+1
316  if (Lclmcalipso)      cfg%out_list(i) = 'clmcalipso'
317  i = i+1
318  if (Lcltcalipso)      cfg%out_list(i) = 'cltcalipso'
319  i = i+1
320
321  if (Lcllcalipsoice)      cfg%out_list(i) = 'cllcalipsoice'
322  i = i+1
323  if (Lclmcalipsoice)      cfg%out_list(i) = 'clmcalipsoice'
324  i = i+1
325  if (Lclhcalipsoice)      cfg%out_list(i) = 'clhcalipsoice'
326  i = i+1
327  if (Lcltcalipsoice)      cfg%out_list(i) = 'cltcalipsoice'
328  i = i+1
329  if (Lcllcalipsoliq)      cfg%out_list(i) = 'cllcalipsoliq'
330  i = i+1
331  if (Lclmcalipsoliq)      cfg%out_list(i) = 'clmcalipsoliq'
332  i = i+1
333  if (Lclhcalipsoliq)      cfg%out_list(i) = 'clhcalipsoliq'
334  i = i+1
335  if (Lcltcalipsoliq)      cfg%out_list(i) = 'cltcalipsoliq'
336  i = i+1
337  if (Lcllcalipsoun)      cfg%out_list(i) = 'cllcalipsoun'
338  i = i+1
339  if (Lclmcalipsoun)      cfg%out_list(i) = 'clmcalipsoun'
340  i = i+1
341  if (Lclhcalipsoun)      cfg%out_list(i) = 'clhcalipsoun'
342  i = i+1
343  if (Lcltcalipsoun)      cfg%out_list(i) = 'cltcalipsoun'
344  i = i+1
345
346  if (Lclcalipsoice)       cfg%out_list(i) = 'clcalipsoice'
347  i = i+1
348  if (Lclcalipsoliq)       cfg%out_list(i) = 'clcalipsoliq'
349  i = i+1
350  if (Lclcalipsoun)       cfg%out_list(i) = 'clcalipsoun'
351  i = i+1
352
353  if (Lclcalipsotmp)       cfg%out_list(i) = 'clcalipsotmp'
354  i = i+1
355  if (Lclcalipsotmpice)       cfg%out_list(i) = 'clcalipsotmpice'
356  i = i+1
357  if (Lclcalipsotmpliq)       cfg%out_list(i) = 'clcalipsotmpliq'
358  i = i+1
359  if (Lclcalipsotmpun)       cfg%out_list(i) = 'clcalipsotmpun'
360  i = i+1
361  if (Lcltlidarradar)   cfg%out_list(i) = 'cltlidarradar'
362  i = i+1
363  if (Lpctisccp)        cfg%out_list(i) = 'pctisccp'
364  i = i+1
365  if (Ldbze94)          cfg%out_list(i) = 'dbze94'
366  i = i+1
367  if (Ltauisccp)        cfg%out_list(i) = 'tauisccp'
368  i = i+1
369  if (Lcltisccp)        cfg%out_list(i) = 'cltisccp'
370  i = i+1
371  if (Ltoffset)         cfg%out_list(i) = 'toffset'
372  i = i+1
373  if (LparasolRefl)     cfg%out_list(i) = 'parasolRefl'
374  i = i+1
375  if (LclMISR)          cfg%out_list(i) = 'clMISR'
376  i = i+1
377  if (Lmeantbisccp)     cfg%out_list(i) = 'meantbisccp'
378  i = i+1
379  if (Lmeantbclrisccp)  cfg%out_list(i) = 'meantbclrisccp'
380  i = i+1
381  if (Lfracout)         cfg%out_list(i) = 'fracout'
382  i = i+1
383  if (LlidarBetaMol532) cfg%out_list(i) = 'lidarBetaMol532'
384  i = i+1
385  if (Ltbrttov)         cfg%out_list(i) = 'tbrttov'
386  i = i+1
387  if (Lcltmodis)        cfg%out_list(i) = 'cltmodis'
388  i = i+1
389  if (Lclwmodis)        cfg%out_list(i) = 'clwmodis'
390  i = i+1
391  if (Lclimodis)        cfg%out_list(i) = 'climodis'
392  i = i+1
393  if (Lclhmodis)        cfg%out_list(i) = 'clhmodis'
394  i = i+1
395  if (Lclmmodis)        cfg%out_list(i) = 'clmmodis'
396  i = i+1
397  if (Lcllmodis)        cfg%out_list(i) = 'cllmodis'
398  i = i+1
399  if (Ltautmodis)       cfg%out_list(i) = 'tautmodis'
400  i = i+1
401  if (Ltauwmodis)       cfg%out_list(i) = 'tauwmodis'
402  i = i+1
403  if (Ltauimodis)       cfg%out_list(i) = 'tauimodis'
404  i = i+1
405  if (Ltautlogmodis)    cfg%out_list(i) = 'tautlogmodis'
406  i = i+1
407  if (Ltauwlogmodis)    cfg%out_list(i) = 'tauwlogmodis'
408  i = i+1
409  if (Ltauilogmodis)    cfg%out_list(i) = 'tauilogmodis'
410  i = i+1
411  if (Lreffclwmodis)    cfg%out_list(i) = 'reffclwmodis'
412  i = i+1
413  if (Lreffclimodis)    cfg%out_list(i) = 'reffclimodis'
414  i = i+1
415  if (Lpctmodis)        cfg%out_list(i) = 'pctmodis'
416  i = i+1
417  if (Llwpmodis)        cfg%out_list(i) = 'lwpmodis'
418  i = i+1
419  if (Liwpmodis)        cfg%out_list(i) = 'iwpmodis'
420  i = i+1
421  if (Lclmodis)         cfg%out_list(i) = 'clmodis'
422  i = i+1
423  if (Lcrimodis)         cfg%out_list(i) = 'crimodis'
424  i = i+1
425  if (Lcrlmodis)         cfg%out_list(i) = 'crlmodis'
426
427  i = i+1                                                            !OPAQ
428  if (Lclopaquecalipso)         cfg%out_list(i) = 'clopaquecalipso'  !OPAQ
429  i = i+1                                                            !OPAQ
430  if (Lclthincalipso)           cfg%out_list(i) = 'clthincalipso'    !OPAQ
431  i = i+1                                                            !OPAQ
432  if (Lclzopaquecalipso)        cfg%out_list(i) = 'clzopaquecalipso' !OPAQ
433  i = i+1                                                            !OPAQ
434  if (Lclcalipsoopaque)         cfg%out_list(i) = 'clcalipsoopaque'  !OPAQ
435  i = i+1                                                            !OPAQ
436  if (Lclcalipsothin)           cfg%out_list(i) = 'clcalipsothin'    !OPAQ
437  i = i+1                                                            !OPAQ
438  if (Lclcalipsozopaque)        cfg%out_list(i) = 'clcalipsozopaque' !OPAQ
439  i = i+1                                                            !OPAQ
440  if (Lclcalipsoopacity)        cfg%out_list(i) = 'clcalipsoopacity' !OPAQ
441  i = i+1                                                            !TIBO
442  if (LprofSR)                  cfg%out_list(i) = 'profSR'           !TIBO
443  i = i+1                                                            !TIBO
444  if (Lproftemp)                cfg%out_list(i) = 'proftemp'         !TIBO
445   
446  if (i /= N_OUT_LIST) then
447     print *, 'COSP_IO: wrong number of output diagnostics'
448     print *, i,N_OUT_LIST
449     stop
450  endif
451
452  ! Copy diagnostic flags to cfg structure
453  ! ISCCP simulator 
454  cfg%Lalbisccp = Lalbisccp
455  cfg%Latb532 = Latb532
456  cfg%Lboxptopisccp = Lboxptopisccp
457  cfg%Lboxtauisccp = Lboxtauisccp
458  cfg%Lmeantbisccp = Lmeantbisccp
459  cfg%Lmeantbclrisccp = Lmeantbclrisccp
460  cfg%Lclisccp = Lclisccp
461  cfg%Lpctisccp = Lpctisccp
462  cfg%Ltauisccp = Ltauisccp
463  cfg%Lcltisccp = Lcltisccp
464  ! CloudSat simulator 
465  cfg%Ldbze94 = Ldbze94
466  cfg%LcfadDbze94 = LcfadDbze94
467  ! CALIPSO/PARASOL simulator 
468  cfg%LcfadLidarsr532 = LcfadLidarsr532
469  cfg%Lclcalipso2 = Lclcalipso2
470  cfg%Lclcalipso = Lclcalipso
471  cfg%Lclhcalipso = Lclhcalipso
472  cfg%Lcllcalipso = Lcllcalipso
473  cfg%Lclmcalipso = Lclmcalipso
474  cfg%Lcltcalipso = Lcltcalipso
475  cfg%Lclhcalipsoice = Lclhcalipsoice
476  cfg%Lcllcalipsoice = Lcllcalipsoice
477  cfg%Lclmcalipsoice = Lclmcalipsoice
478  cfg%Lcltcalipsoice = Lcltcalipsoice
479  cfg%Lclhcalipsoliq = Lclhcalipsoliq
480  cfg%Lcllcalipsoliq = Lcllcalipsoliq
481  cfg%Lclmcalipsoliq = Lclmcalipsoliq
482  cfg%Lcltcalipsoliq = Lcltcalipsoliq
483  cfg%Lclhcalipsoun = Lclhcalipsoun
484  cfg%Lcllcalipsoun = Lcllcalipsoun
485  cfg%Lclmcalipsoun = Lclmcalipsoun
486  cfg%Lcltcalipsoun = Lcltcalipsoun
487  cfg%Lclcalipsoice = Lclcalipsoice
488  cfg%Lclcalipsoliq = Lclcalipsoliq
489  cfg%Lclcalipsoun = Lclcalipsoun
490  cfg%Lclcalipsotmp = Lclcalipsotmp
491  cfg%Lclcalipsotmpice = Lclcalipsotmpice
492  cfg%Lclcalipsotmpliq = Lclcalipsotmpliq
493  cfg%Lclcalipsotmpun = Lclcalipsotmpun
494  cfg%Lcltlidarradar = Lcltlidarradar
495  cfg%LparasolRefl = LparasolRefl
496  cfg%Lclopaquecalipso  = Lclopaquecalipso  !OPAQ
497  cfg%Lclthincalipso    = Lclthincalipso    !OPAQ
498  cfg%Lclzopaquecalipso = Lclzopaquecalipso !OPAQ
499  cfg%Lclcalipsoopaque  = Lclcalipsoopaque  !OPAQ
500  cfg%Lclcalipsothin    = Lclcalipsothin    !OPAQ
501  cfg%Lclcalipsozopaque = Lclcalipsozopaque !OPAQ
502  cfg%Lclcalipsoopacity = Lclcalipsoopacity !OPAQ
503  cfg%LprofSR           = LprofSR           !TIBO
504  cfg%Lproftemp         = Lproftemp         !TIBO
505  ! MISR simulator 
506  cfg%LclMISR = LclMISR
507  ! Other
508  cfg%Ltoffset = Ltoffset
509  cfg%Lfracout = Lfracout
510  cfg%LlidarBetaMol532 = LlidarBetaMol532
511  ! RTTOV
512  cfg%Ltbrttov = Ltbrttov
513  ! MODIS simulator 
514  cfg%Lcltmodis=Lcltmodis
515  cfg%Lclwmodis=Lclwmodis
516  cfg%Lclimodis=Lclimodis
517  cfg%Lclhmodis=Lclhmodis
518  cfg%Lclmmodis=Lclmmodis
519  cfg%Lcllmodis=Lcllmodis
520  cfg%Ltautmodis=Ltautmodis
521  cfg%Ltauwmodis=Ltauwmodis
522  cfg%Ltauimodis=Ltauimodis
523  cfg%Ltautlogmodis=Ltautlogmodis
524  cfg%Ltauwlogmodis=Ltauwlogmodis
525  cfg%Ltauilogmodis=Ltauilogmodis
526  cfg%Lreffclwmodis=Lreffclwmodis
527  cfg%Lreffclimodis=Lreffclimodis
528  cfg%Lpctmodis=Lpctmodis
529  cfg%Llwpmodis=Llwpmodis
530  cfg%Liwpmodis=Liwpmodis
531  cfg%Lclmodis=Lclmodis
532  cfg%Lcrimodis=Lcrimodis
533  cfg%Lcrlmodis=Lcrlmodis
534 
535    if (itap.gt.1) then
536
537! VEREFIER LES CHAMPS DEMANDES DANS .XML
538! 2. Si champs active dans .xml alors mettre la cles de sortie en true
539 IF (xios_field_is_active("cllcalipso")) cfg%Lcllcalipso=.TRUE.
540 IF (xios_field_is_active("clmcalipso")) cfg%Lclmcalipso=.TRUE.
541 IF (xios_field_is_active("clhcalipso")) cfg%Lclhcalipso=.TRUE.
542 IF (xios_field_is_active("cltcalipso")) cfg%Lcltcalipso=.TRUE.
543! IF (xios_field_is_active("pcllcalipso")) cfg%Lcllcalipso=.TRUE.
544! IF (xios_field_is_active("pclmcalipso")) cfg%Lclmcalipso=.TRUE.
545! IF (xios_field_is_active("pclhcalipso")) cfg%Lclhcalipso=.TRUE.
546! IF (xios_field_is_active("pcltcalipso")) cfg%Lcltcalipso=.TRUE.
547 IF (xios_field_is_active("cllcalipsoice")) cfg%Lcllcalipsoice=.TRUE.
548 IF (xios_field_is_active("clmcalipsoice")) cfg%Lclmcalipsoice=.TRUE.
549 IF (xios_field_is_active("clhcalipsoice")) cfg%Lclhcalipsoice=.TRUE.
550 IF (xios_field_is_active("cltcalipsoice")) cfg%Lcltcalipsoice=.TRUE.
551 IF (xios_field_is_active("cllcalipsoliq")) cfg%Lcllcalipsoliq=.TRUE.
552 IF (xios_field_is_active("clmcalipsoliq")) cfg%Lclmcalipsoliq=.TRUE.
553 IF (xios_field_is_active("clhcalipsoliq")) cfg%Lclhcalipsoliq=.TRUE.
554 IF (xios_field_is_active("cltcalipsoliq")) cfg%Lcltcalipsoliq=.TRUE.
555 IF (xios_field_is_active("cllcalipsoun")) cfg%Lcllcalipsoun=.TRUE.
556 IF (xios_field_is_active("clmcalipsoun")) cfg%Lclmcalipsoun=.TRUE.
557 IF (xios_field_is_active("clhcalipsoun")) cfg%Lclhcalipsoun=.TRUE.
558 IF (xios_field_is_active("cltcalipsoun")) cfg%Lcltcalipsoun=.TRUE.
559 IF (xios_field_is_active("clcalipso")) cfg%Lclcalipso=.TRUE.
560! IF (xios_field_is_active("pclcalipso")) cfg%Lclcalipso=.TRUE.
561 IF (xios_field_is_active("clcalipsoice")) cfg%Lclcalipsoice=.TRUE.
562 IF (xios_field_is_active("clcalipsoliq")) cfg%Lclcalipsoliq=.TRUE.
563 IF (xios_field_is_active("clcalipsoun")) cfg%Lclcalipsoun=.TRUE.
564 IF (xios_field_is_active("clcalipsotmp")) cfg%Lclcalipsotmp=.TRUE.
565 IF (xios_field_is_active("clcalipsotmpice")) cfg%Lclcalipsotmpice=.TRUE.
566 IF (xios_field_is_active("clcalipsotmpliq")) cfg%Lclcalipsotmpliq=.TRUE.
567 IF (xios_field_is_active("clcalipsotmpun")) cfg%Lclcalipsotmpun=.TRUE.
568 IF (xios_field_is_active("parasol_refl")) cfg%LparasolRefl=.TRUE.
569 IF (xios_field_is_active("parasol_crefl")) cfg%LparasolRefl=.TRUE.
570 IF (xios_field_is_active("Ncrefl")) cfg%LparasolRefl=.TRUE.
571 IF (xios_field_is_active("cfad_lidarsr532")) cfg%LcfadLidarsr532=.TRUE.
572 IF (xios_field_is_active("atb532")) cfg%Latb532=.TRUE.
573 IF (xios_field_is_active("beta_mol532")) cfg%LlidarBetaMol532=.TRUE.
574 IF (xios_field_is_active("clopaquecalipso")) cfg%Lclopaquecalipso=.TRUE.
575 IF (xios_field_is_active("clthincalipso")) cfg%Lclthincalipso=.TRUE.
576 IF (xios_field_is_active("clzopaquecalipso")) cfg%Lclzopaquecalipso=.TRUE.
577 IF (xios_field_is_active("clcalipsoopaque")) cfg%Lclcalipsoopaque=.TRUE.
578 IF (xios_field_is_active("clcalipsothin")) cfg%Lclcalipsothin=.TRUE.
579 IF (xios_field_is_active("clcalipsozopaque")) cfg%Lclcalipsozopaque=.TRUE.
580 IF (xios_field_is_active("clcalipsoopacity")) cfg%Lclcalipsoopacity=.TRUE.
581 IF (xios_field_is_active("proftemp")) cfg%Lproftemp=.TRUE.
582 IF (xios_field_is_active("profSR")) cfg%LprofSR=.TRUE.
583
584 IF (xios_field_is_active("cfadDbze94")) cfg%LcfadDbze94=.TRUE.
585 IF (xios_field_is_active("dbze94")) cfg%Ldbze94=.TRUE.
586 IF (xios_field_is_active("cltlidarradar")) cfg%Lcltlidarradar=.TRUE.
587 IF (xios_field_is_active("clcalipso2")) cfg%Lclcalipso2=.TRUE.
588
589   IF (xios_field_is_active("clisccp2")) cfg%Lclisccp=.TRUE.
590 IF (xios_field_is_active("boxtauisccp")) cfg%Lboxtauisccp=.TRUE.
591 IF (xios_field_is_active("boxptopisccp")) cfg%Lboxptopisccp=.TRUE.
592 IF (xios_field_is_active("tclisccp")) cfg%Lcltisccp=.TRUE.
593 IF (xios_field_is_active("ctpisccp")) cfg%Lpctisccp=.TRUE.
594 IF (xios_field_is_active("tauisccp")) cfg%Ltauisccp=.TRUE.
595 IF (xios_field_is_active("albisccp")) cfg%Lalbisccp=.TRUE.
596 IF (xios_field_is_active("meantbisccp")) cfg%Lmeantbisccp=.TRUE.
597 IF (xios_field_is_active("meantbclrisccp")) cfg%Lmeantbclrisccp=.TRUE.
598
599   IF (xios_field_is_active("clMISR")) cfg%LclMISR=.TRUE.
600
601IF (xios_field_is_active("cllmodis")) cfg%Lcllmodis=.TRUE.
602 IF (xios_field_is_active("clmmodis")) cfg%Lclmmodis=.TRUE.
603 IF (xios_field_is_active("clhmodis")) cfg%Lclhmodis=.TRUE.
604 IF (xios_field_is_active("cltmodis")) cfg%Lcltmodis=.TRUE.
605 IF (xios_field_is_active("clwmodis")) cfg%Lclwmodis=.TRUE.
606 IF (xios_field_is_active("climodis")) cfg%Lclimodis=.TRUE.
607 IF (xios_field_is_active("tautmodis")) cfg%Ltautmodis=.TRUE.
608 IF (xios_field_is_active("tauwmodis")) cfg%Ltauwmodis=.TRUE.
609 IF (xios_field_is_active("tauimodis")) cfg%Ltauimodis=.TRUE.
610 IF (xios_field_is_active("tautlogmodis")) cfg%Ltautlogmodis=.TRUE.
611 IF (xios_field_is_active("tauilogmodis")) cfg%Ltauilogmodis=.TRUE.
612 IF (xios_field_is_active("tauwlogmodis")) cfg%Ltauwlogmodis=.TRUE.
613 IF (xios_field_is_active("reffclwmodis")) cfg%Lreffclwmodis=.TRUE.
614 IF (xios_field_is_active("reffclimodis")) cfg%Lreffclimodis=.TRUE.
615 IF (xios_field_is_active("pctmodis")) cfg%Lpctmodis=.TRUE.
616 IF (xios_field_is_active("lwpmodis")) cfg%Llwpmodis=.TRUE.
617 IF (xios_field_is_active("iwpmodis")) cfg%Liwpmodis=.TRUE.
618 IF (xios_field_is_active("clmodis")) cfg%Lclmodis=.TRUE.
619 IF (xios_field_is_active("crimodis")) cfg%Lcrimodis=.TRUE.
620 IF (xios_field_is_active("crlmodis")) cfg%Lcrlmodis=.TRUE.
621
622! 2.  si champs demande alors activer le simulateur correspondant
623   IF (xios_field_is_active("cllcalipso").OR. &
624       xios_field_is_active("clmcalipso").OR. &
625       xios_field_is_active("clhcalipso").OR. &
626       xios_field_is_active("cltcalipso").OR. &
627!       xios_field_is_active("pcllcalipso").OR. &
628!       xios_field_is_active("pclmcalipso").OR. &
629!       xios_field_is_active("pclhcalipso").OR. &
630!       xios_field_is_active("pcltcalipso").OR. &
631       xios_field_is_active("cllcalipsoice").OR. &
632       xios_field_is_active("clmcalipsoice").OR. &
633       xios_field_is_active("clhcalipsoice").OR. &
634       xios_field_is_active("cltcalipsoice").OR. &
635       xios_field_is_active("cllcalipsoliq").OR. &
636       xios_field_is_active("clmcalipsoliq").OR. &
637       xios_field_is_active("clhcalipsoliq").OR. &
638       xios_field_is_active("cltcalipsoliq").OR. &
639       xios_field_is_active("cllcalipsoun").OR. &
640       xios_field_is_active("clmcalipsoun").OR. &
641       xios_field_is_active("clhcalipsoun").OR. &
642       xios_field_is_active("cltcalipsoun").OR. &
643       xios_field_is_active("clcalipso").OR. &
644!       xios_field_is_active("pclcalipso").OR. &
645       xios_field_is_active("clcalipsoice").OR. &
646       xios_field_is_active("clcalipsoliq").OR. &
647       xios_field_is_active("clcalipsoun").OR. &
648       xios_field_is_active("clcalipsotmp").OR. &
649       xios_field_is_active("clcalipsotmpice").OR. &
650       xios_field_is_active("clcalipsotmpliq").OR. &
651       xios_field_is_active("clcalipsotmpun").OR. &
652       xios_field_is_active("parasol_refl").OR. &
653       xios_field_is_active("parasol_crefl").OR. &
654       xios_field_is_active("Ncrefl").OR. &
655       xios_field_is_active("cfad_lidarsr532").OR. &
656       xios_field_is_active("atb532").OR. &
657       xios_field_is_active("beta_mol532").OR. &
658       xios_field_is_active("clopaquecalipso").OR. &
659       xios_field_is_active("clthincalipso").OR. &
660       xios_field_is_active("clzopaquecalipso").OR. &
661       xios_field_is_active("clcalipsoopaque").OR. &
662       xios_field_is_active("clcalipsothin").OR. &
663       xios_field_is_active("clcalipsozopaque").OR. &
664       xios_field_is_active("clcalipsoopacity").OR. &
665       xios_field_is_active("proftemp").OR. &
666       xios_field_is_active("profSR")) cfg%Llidar_sim=.TRUE.
667
668    IF (xios_field_is_active("cfadDbze94").OR. &
669      xios_field_is_active("dbze94")) &
670               cfg%Lradar_sim=.TRUE.
671
672    IF (xios_field_is_active("cltlidarradar").OR. &
673      xios_field_is_active("clcalipso2")) THEN
674               cfg%Lradar_sim=.TRUE.
675               cfg%Llidar_sim=.TRUE.
676    ENDIF
677
678    IF (xios_field_is_active("clisccp2").OR. &
679       xios_field_is_active("boxtauisccp").OR. &
680       xios_field_is_active("boxptopisccp").OR. &
681       xios_field_is_active("tclisccp").OR. &
682       xios_field_is_active("ctpisccp").OR. &
683       xios_field_is_active("tauisccp").OR. &
684       xios_field_is_active("albisccp").OR. &
685       xios_field_is_active("meantbisccp").OR. &
686       xios_field_is_active("meantbclrisccp")) cfg%Lisccp_sim=.TRUE.
687
688    IF (xios_field_is_active("clMISR")) cfg%Lmisr_sim=.TRUE.
689
690    IF (xios_field_is_active("cllmodis").OR. &
691       xios_field_is_active("clmmodis").OR. &
692       xios_field_is_active("clhmodis").OR. &
693       xios_field_is_active("cltmodis").OR. &
694       xios_field_is_active("clwmodis").OR. &
695       xios_field_is_active("climodis").OR. &
696       xios_field_is_active("tautmodis").OR. &
697       xios_field_is_active("tauwmodis").OR. &
698       xios_field_is_active("tauimodis").OR. &
699       xios_field_is_active("tautlogmodis").OR. &
700       xios_field_is_active("tauilogmodis").OR. &
701       xios_field_is_active("tauwlogmodis").OR. &
702       xios_field_is_active("reffclwmodis").OR. &
703       xios_field_is_active("reffclimodis").OR. &
704       xios_field_is_active("pctmodis").OR. &
705       xios_field_is_active("lwpmodis").OR. &
706       xios_field_is_active("iwpmodis").OR. &
707       xios_field_is_active("clmodis").OR. &
708       xios_field_is_active("crimodis").OR. &
709       xios_field_is_active("crlmodis")) cfg%Lmodis_sim=.TRUE.
710
711  endif
712
713
714 END SUBROUTINE READ_COSP_OUTPUT_NL
715
Note: See TracBrowser for help on using the repository browser.