source: LMDZ6/branches/Optimisation_LMDZ/libf/phylmd/cosp/cosp_read_otputkeys.F90 @ 5408

Last change on this file since 5408 was 3377, checked in by idelkadi, 6 years ago

Correction for radar diagnostic management

File size: 40.7 KB
Line 
1!!!=============================================================================
2!!! AI mars 2018
3!!  Module permettant de controler les cles de sorties cosp
4!!  pour LMDZ
5!! 1. on initialise les cles au 1er passage a cosp itap de la physique = 1
6!! 2. on garde la routine de lecture du fichier namelist cosp_out...txt pour le
7!!    cas non XIOS (ioipsl)
8!! 3. on rajoutte une subroutine qui interoge XIOS si les champs sont demandes
9!!    dans les xml alors on les active et on active les simulateurs
10!!    correspondant
11!!!=============================================================================
12
13module cosp_read_otputkeys
14
15  USE MOD_COSP_CONSTANTS
16  USE MOD_COSP_TYPES
17  USE mod_phys_lmdz_para
18
19CONTAINS
20!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
21!--------------- SUBROUTINE READ_COSP_OUTPUT_NL -------------------------
22!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
23 SUBROUTINE cosp_outputkeys_init(cfg)
24  implicit none
25  type(cosp_config),intent(out) :: cfg
26  character(len=32) :: out_list(N_OUT_LIST)
27  integer :: i
28
29               
30   do i=1,N_OUT_LIST
31      cfg%out_list(i)=''
32   enddo
33
34   cfg%Llidar_sim=.false.
35   cfg%Lradar_sim=.false.
36   cfg%Lisccp_sim=.false.
37   cfg%Lmodis_sim=.false.
38   cfg%Lmisr_sim=.false.
39   cfg%Lrttov_sim=.false.
40   cfg%Lstats=.false.
41   cfg%Lwrite_output=.false.
42   cfg%Ltoffset=.false.
43   cfg%Lfracout=.false.
44
45  cfg%Lcllcalipso=.FALSE.
46  cfg%Lclmcalipso=.FALSE.
47  cfg%Lclhcalipso=.FALSE.
48  cfg%Lcltcalipso=.FALSE.
49  cfg%Lcllcalipsoice=.FALSE.
50  cfg%Lclmcalipsoice=.FALSE.
51  cfg%Lclhcalipsoice=.FALSE.
52  cfg%Lcltcalipsoice=.FALSE.
53  cfg%Lcllcalipsoliq=.FALSE.
54  cfg%Lclmcalipsoliq=.FALSE.
55  cfg%Lclhcalipsoliq=.FALSE.
56  cfg%Lcltcalipsoliq=.FALSE.
57  cfg%Lcllcalipsoun=.FALSE.
58  cfg%Lclmcalipsoun=.FALSE.
59  cfg%Lclhcalipsoun=.FALSE.
60  cfg%Lcltcalipsoun=.FALSE.
61  cfg%Lclcalipso=.FALSE.
62  cfg%Lclcalipsoice=.FALSE.
63  cfg%Lclcalipsoliq=.FALSE.
64  cfg%Lclcalipsoun=.FALSE.
65  cfg%Lclcalipsotmp=.FALSE.
66  cfg%Lclcalipsotmpice=.FALSE.
67  cfg%Lclcalipsotmpliq=.FALSE.
68  cfg%Lclcalipsotmpun=.FALSE.
69  cfg%LparasolRefl=.FALSE.
70  cfg%LcfadLidarsr532=.FALSE.
71  cfg%Latb532=.FALSE.
72  cfg%LlidarBetaMol532=.FALSE.
73  cfg%Lclopaquecalipso=.FALSE.
74  cfg%Lclthincalipso=.FALSE.
75  cfg%Lclzopaquecalipso=.FALSE.
76  cfg%Lclcalipsoopaque=.FALSE.
77  cfg%Lclcalipsothin=.FALSE.
78  cfg%Lclcalipsozopaque=.FALSE.
79  cfg%Lclcalipsoopacity=.FALSE.
80  cfg%Lproftemp=.FALSE.
81  cfg%LprofSR=.FALSE.
82
83  cfg%LcfadDbze94=.FALSE.
84  cfg%Ldbze94=.FALSE.
85  cfg%Lcltlidarradar=.FALSE.
86  cfg%Lclcalipso2=.FALSE.
87
88  cfg%Lclisccp=.FALSE.
89  cfg%Lboxtauisccp=.FALSE.
90  cfg%Lboxptopisccp=.FALSE.
91  cfg%Lcltisccp=.FALSE.
92  cfg%Lpctisccp=.FALSE.
93  cfg%Ltauisccp=.FALSE.
94  cfg%Lalbisccp=.FALSE.
95  cfg%Lmeantbisccp=.FALSE.
96  cfg%Lmeantbclrisccp=.FALSE.
97
98  cfg%LclMISR=.FALSE.
99
100  cfg%Lcllmodis=.FALSE.
101  cfg%Lclmmodis=.FALSE.
102  cfg%Lclhmodis=.FALSE.
103  cfg%Lcltmodis=.FALSE.
104  cfg%Lclwmodis=.FALSE.
105  cfg%Lclimodis=.FALSE.
106  cfg%Ltautmodis=.FALSE.
107  cfg%Ltauwmodis=.FALSE.
108  cfg%Ltauimodis=.FALSE.
109  cfg%Ltautlogmodis=.FALSE.
110  cfg%Ltauilogmodis=.FALSE.
111  cfg%Ltauwlogmodis=.FALSE.
112  cfg%Lreffclwmodis=.FALSE.
113  cfg%Lreffclimodis=.FALSE.
114  cfg%Lpctmodis=.FALSE.
115  cfg%Llwpmodis=.FALSE.
116  cfg%Liwpmodis=.FALSE.
117  cfg%Lclmodis=.FALSE.
118  cfg%Lcrimodis=.FALSE.
119  cfg%Lcrlmodis=.FALSE.
120
121  cfg%Ltbrttov=.FALSE.
122
123 end subroutine cosp_outputkeys_init
124
125 SUBROUTINE cosp_outputkeys_test(cfg)
126  implicit none
127  type(cosp_config),intent(out) :: cfg
128  character(len=32) :: out_list(N_OUT_LIST)
129  integer :: i
130
131
132   do i=1,N_OUT_LIST
133      cfg%out_list(i)=''
134   enddo
135
136   cfg%Llidar_sim=.true.
137   cfg%Lradar_sim=.false.
138   cfg%Lisccp_sim=.false.
139   cfg%Lmodis_sim=.false.
140   cfg%Lmisr_sim=.false.
141   cfg%Lrttov_sim=.false.
142   cfg%Lstats=.false.
143   cfg%Lwrite_output=.false.
144   cfg%Ltoffset=.false.
145   cfg%Lfracout=.false.
146
147  cfg%Lcllcalipso=.TRUE.
148  cfg%Lclmcalipso=.TRUE.
149  cfg%Lclhcalipso=.TRUE.
150  cfg%Lcltcalipso=.TRUE.
151  cfg%Lcllcalipsoice=.FALSE.
152  cfg%Lclmcalipsoice=.FALSE.
153  cfg%Lclhcalipsoice=.FALSE.
154  cfg%Lcltcalipsoice=.FALSE.
155  cfg%Lcllcalipsoliq=.FALSE.
156  cfg%Lclmcalipsoliq=.FALSE.
157  cfg%Lclhcalipsoliq=.FALSE.
158  cfg%Lcltcalipsoliq=.FALSE.
159  cfg%Lcllcalipsoun=.FALSE.
160  cfg%Lclmcalipsoun=.FALSE.
161  cfg%Lclhcalipsoun=.FALSE.
162  cfg%Lcltcalipsoun=.FALSE.
163  cfg%Lclcalipso=.FALSE.
164  cfg%Lclcalipsoice=.FALSE.
165  cfg%Lclcalipsoliq=.FALSE.
166  cfg%Lclcalipsoun=.FALSE.
167  cfg%Lclcalipsotmp=.FALSE.
168  cfg%Lclcalipsotmpice=.FALSE.
169  cfg%Lclcalipsotmpliq=.FALSE.
170  cfg%Lclcalipsotmpun=.FALSE.
171  cfg%LparasolRefl=.FALSE.
172  cfg%LcfadLidarsr532=.FALSE.
173  cfg%Latb532=.FALSE.
174  cfg%LlidarBetaMol532=.FALSE.
175  cfg%Lclopaquecalipso=.FALSE.
176  cfg%Lclthincalipso=.FALSE.
177  cfg%Lclzopaquecalipso=.FALSE.
178  cfg%Lclcalipsoopaque=.FALSE.
179  cfg%Lclcalipsothin=.FALSE.
180  cfg%Lclcalipsozopaque=.FALSE.
181  cfg%Lclcalipsoopacity=.FALSE.
182  cfg%Lproftemp=.FALSE.
183  cfg%LprofSR=.FALSE.
184
185  cfg%LcfadDbze94=.FALSE.
186  cfg%Ldbze94=.FALSE.
187  cfg%Lcltlidarradar=.FALSE.
188  cfg%Lclcalipso2=.FALSE.
189
190  cfg%Lclisccp=.FALSE.
191  cfg%Lboxtauisccp=.FALSE.
192  cfg%Lboxptopisccp=.FALSE.
193  cfg%Lcltisccp=.FALSE.
194  cfg%Lpctisccp=.FALSE.
195  cfg%Ltauisccp=.FALSE.
196  cfg%Lalbisccp=.FALSE.
197  cfg%Lmeantbisccp=.FALSE.
198  cfg%Lmeantbclrisccp=.FALSE.
199
200  cfg%LclMISR=.FALSE.
201
202  cfg%Lcllmodis=.FALSE.
203  cfg%Lclmmodis=.FALSE.
204  cfg%Lclhmodis=.FALSE.
205  cfg%Lcltmodis=.FALSE.
206  cfg%Lclwmodis=.FALSE.
207  cfg%Lclimodis=.FALSE.
208  cfg%Ltautmodis=.FALSE.
209  cfg%Ltauwmodis=.FALSE.
210  cfg%Ltauimodis=.FALSE.
211  cfg%Ltautlogmodis=.FALSE.
212  cfg%Ltauilogmodis=.FALSE.
213  cfg%Ltauwlogmodis=.FALSE.
214  cfg%Lreffclwmodis=.FALSE.
215  cfg%Lreffclimodis=.FALSE.
216  cfg%Lpctmodis=.FALSE.
217  cfg%Llwpmodis=.FALSE.
218  cfg%Liwpmodis=.FALSE.
219  cfg%Lclmodis=.FALSE.
220  cfg%Lcrimodis=.FALSE.
221  cfg%Lcrlmodis=.FALSE.
222
223  cfg%Ltbrttov=.FALSE.
224
225 end subroutine cosp_outputkeys_test
226
227 SUBROUTINE READ_COSP_OUTPUT_NL(itap,cosp_nl,cfg)
228
229#ifdef CPP_XIOS
230    USE xios, ONLY: xios_field_is_active
231#endif
232  implicit none
233  character(len=*),intent(in) :: cosp_nl
234  type(cosp_config),intent(out) :: cfg
235  ! Local variables
236  integer :: i, itap
237
238 logical, save :: Lradar_sim,Llidar_sim,Lisccp_sim,Lmodis_sim,Lmisr_sim,Lrttov_sim, Lstats, &
239             Lalbisccp,Latb532,Lboxptopisccp,Lboxtauisccp,LcfadDbze94, &
240             LcfadLidarsr532,Lclcalipso2,Lclcalipso,Lclhcalipso,Lclisccp,Lcllcalipso, &
241             Lclmcalipso,Lcltcalipso,Lcltlidarradar,Lpctisccp,Ldbze94,Ltauisccp,Lcltisccp, &
242             Lclcalipsoliq,Lclcalipsoice,Lclcalipsoun, &
243             Lclcalipsotmp,Lclcalipsotmpliq,Lclcalipsotmpice,Lclcalipsotmpun, &
244             Lcltcalipsoliq,Lcltcalipsoice,Lcltcalipsoun, &
245             Lclhcalipsoliq,Lclhcalipsoice,Lclhcalipsoun, &
246             Lclmcalipsoliq,Lclmcalipsoice,Lclmcalipsoun, &
247             Lcllcalipsoliq,Lcllcalipsoice,Lcllcalipsoun, &
248             Ltoffset,LparasolRefl,LclMISR,Lmeantbisccp,Lmeantbclrisccp, &
249             Lfracout,LlidarBetaMol532,Ltbrttov, &
250             Lcltmodis,Lclwmodis,Lclimodis,Lclhmodis,Lclmmodis,Lcllmodis,Ltautmodis,Ltauwmodis,Ltauimodis,Ltautlogmodis, &
251             Ltauwlogmodis,Ltauilogmodis,Lreffclwmodis,Lreffclimodis,Lpctmodis,Llwpmodis, &
252             Liwpmodis,Lclmodis,Lcrimodis,Lcrlmodis,Lclopaquecalipso,Lclthincalipso,      &           !OPAQ (2)
253             Lclzopaquecalipso,Lclcalipsoopaque,Lclcalipsothin,Lclcalipsozopaque,Lclcalipsoopacity, & !OPAQ (5)
254             LprofSR,Lproftemp                                                                        !TIBO (2)
255
256  namelist/COSP_OUTPUT/Lradar_sim,Llidar_sim,Lisccp_sim,Lmodis_sim,Lmisr_sim,Lrttov_sim, &
257             Lalbisccp,Latb532,Lboxptopisccp,Lboxtauisccp,LcfadDbze94, &
258             LcfadLidarsr532,Lclcalipso2,Lclcalipso,Lclhcalipso,Lclisccp, &
259             Lcllcalipso,Lclmcalipso,Lcltcalipso,Lcltlidarradar,Lpctisccp,Ldbze94,Ltauisccp, &
260             Lclcalipsoliq,Lclcalipsoice,Lclcalipsoun, &
261             Lclcalipsotmp,Lclcalipsotmpliq,Lclcalipsotmpice,Lclcalipsotmpun, &
262             Lcltcalipsoliq,Lcltcalipsoice,Lcltcalipsoun, &
263             Lclhcalipsoliq,Lclhcalipsoice,Lclhcalipsoun, &
264             Lclmcalipsoliq,Lclmcalipsoice,Lclmcalipsoun, &
265             Lcllcalipsoliq,Lcllcalipsoice,Lcllcalipsoun, &
266             Lcltisccp,Ltoffset,LparasolRefl,LclMISR,Lmeantbisccp,Lmeantbclrisccp, &
267             Lfracout,LlidarBetaMol532,Ltbrttov, &
268             Lcltmodis,Lclwmodis,Lclimodis,Lclhmodis,Lclmmodis,Lcllmodis,Ltautmodis,Ltauwmodis,Ltauimodis,Ltautlogmodis, &
269             Ltauwlogmodis,Ltauilogmodis,Lreffclwmodis,Lreffclimodis,Lpctmodis,Llwpmodis, &
270             Liwpmodis,Lclmodis,Lcrimodis,Lcrlmodis,Lclopaquecalipso,Lclthincalipso,      &           !OPAQ (2)
271             Lclzopaquecalipso,Lclcalipsoopaque,Lclcalipsothin,Lclcalipsozopaque,Lclcalipsoopacity, & !OPAQ (5)
272             LprofSR,Lproftemp                                                                        !TIBO (2)
273   
274  do i=1,N_OUT_LIST
275    cfg%out_list(i)=''
276  enddo
277 
278! Lecture du fichier namelist
279  IF (is_master) THEN
280    open(10,file=cosp_nl,status='old')
281    read(10,nml=cosp_output)
282    close(10)
283  ENDIF
284!$OMP BARRIER
285 
286  CALL bcast(Lradar_sim)
287  CALL bcast(Llidar_sim)
288  CALL bcast(Lisccp_sim)
289  CALL bcast(Lmodis_sim)
290  CALL bcast(Lmisr_sim)
291  CALL bcast(Lrttov_sim)
292
293  CALL bcast(Lstats)
294
295  CALL bcast(Lalbisccp)
296  CALL bcast(Latb532)
297  CALL bcast(Lboxptopisccp)
298  CALL bcast(Lboxtauisccp)
299  CALL bcast(LcfadDbze94)
300  CALL bcast(LcfadLidarsr532)
301  CALL bcast(Lclcalipso2)
302  CALL bcast(Lclcalipso)
303  CALL bcast(Lclhcalipso)
304  CALL bcast(Lclcalipsoliq)
305  CALL bcast(Lclcalipsoice)
306  CALL bcast(Lclcalipsoun)
307  CALL bcast(Lclcalipsotmp)
308  CALL bcast(Lclcalipsotmpliq)
309  CALL bcast(Lclcalipsotmpice)
310  CALL bcast(Lclcalipsotmpun)
311  CALL bcast(Lcltcalipsoliq)
312  CALL bcast(Lcltcalipsoice)
313  CALL bcast(Lcltcalipsoun)
314  CALL bcast(Lclhcalipsoliq)
315  CALL bcast(Lclhcalipsoice)
316  CALL bcast(Lclhcalipsoun)
317  CALL bcast(Lclmcalipsoliq)
318  CALL bcast(Lclmcalipsoice)
319  CALL bcast(Lclmcalipsoun)
320  CALL bcast(Lcllcalipsoliq)
321  CALL bcast(Lcllcalipsoice)
322  CALL bcast(Lcllcalipsoun)
323  CALL bcast(Lclisccp)
324  CALL bcast(Lcllcalipso)
325  CALL bcast(Lclmcalipso)
326  CALL bcast(Lcltcalipso)
327  CALL bcast(Lcltlidarradar)
328  CALL bcast(Lpctisccp)
329  CALL bcast(Ldbze94)
330  CALL bcast(Ltauisccp)
331  CALL bcast(Lcltisccp)
332  CALL bcast(LparasolRefl)
333  CALL bcast(LclMISR)
334  CALL bcast(Lmeantbisccp)
335  CALL bcast(Lmeantbclrisccp)
336  CALL bcast(Lfracout)
337  CALL bcast(LlidarBetaMol532)
338  CALL bcast(Lcltmodis)
339  CALL bcast(Lclwmodis)
340  CALL bcast(Lclimodis)
341  CALL bcast(Lclhmodis)
342  CALL bcast(Lclmmodis)
343  CALL bcast(Lcllmodis)
344  CALL bcast(Ltautmodis)
345  CALL bcast(Ltauwmodis)
346  CALL bcast(Ltauimodis)
347  CALL bcast(Ltautlogmodis)
348  CALL bcast(Ltauwlogmodis)
349  CALL bcast(Ltauilogmodis)
350  CALL bcast(Lreffclwmodis)
351  CALL bcast(Lreffclimodis)
352  CALL bcast(Lpctmodis)
353  CALL bcast(Llwpmodis)
354  CALL bcast(Liwpmodis)
355  CALL bcast(Lclmodis)
356  CALL bcast(Ltbrttov)
357  CALL bcast(Lcrimodis)
358  CALL bcast(Lcrlmodis)
359  CALL bcast(Lclopaquecalipso)  !OPAQ
360  CALL bcast(Lclthincalipso)    !OPAQ
361  CALL bcast(Lclzopaquecalipso) !OPAQ
362  CALL bcast(Lclcalipsoopaque)  !OPAQ
363  CALL bcast(Lclcalipsothin)    !OPAQ
364  CALL bcast(Lclcalipsozopaque) !OPAQ
365  CALL bcast(Lclcalipsoopacity) !OPAQ
366  CALL bcast(LprofSR)           !TIBO
367  CALL bcast(Lproftemp)         !TIBO
368
369!  print*,' Cles sorties cosp :'
370!  print*,' Lradar_sim,Llidar_sim,Lisccp_sim,Lmisr_sim,Lrttov_sim', &
371!           Lradar_sim,Llidar_sim,Lisccp_sim,Lmisr_sim,Lrttov_sim
372
373
374  ! Deal with dependencies
375  if (.not.Lradar_sim) then
376    LcfadDbze94   = .false.
377    Lclcalipso2    = .false.
378    Lcltlidarradar = .false. ! Needs radar & lidar
379    Ldbze94        = .false.
380    Lclcalipso2    = .false. ! Needs radar & lidar
381  endif
382
383  if (.not.Llidar_sim) then
384    Latb532          = .false.
385    LcfadLidarsr532  = .false.
386    Lclcalipso2      = .false.
387    Lclcalipso       = .false.
388    Lclhcalipso      = .false.
389    Lcllcalipso      = .false.
390    Lclmcalipso      = .false.
391    Lcltcalipso      = .false.
392    Lcltlidarradar   = .false. ! Needs radar & lidar
393    LparasolRefl     = .false.
394    LlidarBetaMol532 = .false.
395!! AI
396    Lclcalipsoliq       = .false.
397    Lclcalipsoice       = .false.
398    Lclcalipsoun        = .false.
399    Lclcalipsotmp       = .false.
400    Lclcalipsotmpun     = .false.
401    Lclcalipsotmpliq    = .false.
402    Lclcalipsotmpice    = .false.
403    Lclhcalipsoliq      = .false.
404    Lcllcalipsoliq      = .false.
405    Lclmcalipsoliq      = .false.
406    Lcltcalipsoliq      = .false.
407    Lclhcalipsoice      = .false.
408    Lcllcalipsoice      = .false.
409    Lclmcalipsoice      = .false.
410    Lcltcalipsoice      = .false.
411    Lclhcalipsoun       = .false.
412    Lcllcalipsoun       = .false.
413    Lclmcalipsoun       = .false.
414    Lcltcalipsoun       = .false.
415    Lclopaquecalipso    = .false. !OPAQ
416    Lclthincalipso      = .false. !OPAQ
417    Lclzopaquecalipso   = .false. !OPAQ
418    Lclcalipsoopaque    = .false. !OPAQ
419    Lclcalipsothin      = .false. !OPAQ
420    Lclcalipsozopaque   = .false. !OPAQ
421    Lclcalipsoopacity   = .false. !OPAQ
422    LprofSR             = .false. !TIBO
423    Lproftemp           = .false. !TIBO
424  endif
425
426  if (.not.Lisccp_sim) then
427    Lalbisccp       = .false.
428    Lboxptopisccp   = .false.
429    Lboxtauisccp    = .false.
430    Lclisccp        = .false.
431    Lpctisccp       = .false.
432    Ltauisccp       = .false.
433    Lcltisccp       = .false.
434    Lmeantbisccp    = .false.
435    Lmeantbclrisccp = .false.
436  endif
437
438  if (.not.Lmisr_sim) then
439    LclMISR = .false.
440  endif
441  if (.not.Lrttov_sim) then
442    Ltbrttov = .false.
443  endif
444  if ((.not.Lradar_sim).and.(.not.Llidar_sim).and. &
445      (.not.Lisccp_sim).and.(.not.Lmisr_sim)) then
446    Lfracout = .false.
447    Lstats = .false.
448  endif
449 if (.not.Lmodis_sim) then
450    Lcltmodis=.false.
451    Lclwmodis=.false.
452    Lclimodis=.false.
453    Lclhmodis=.false.
454    Lclmmodis=.false.
455    Lcllmodis=.false.
456    Ltautmodis=.false.
457    Ltauwmodis=.false.
458    Ltauimodis=.false.
459    Ltautlogmodis=.false.
460    Ltauwlogmodis=.false.
461    Ltauilogmodis=.false.
462    Lreffclwmodis=.false.
463    Lreffclimodis=.false.
464    Lpctmodis=.false.
465    Llwpmodis=.false.
466    Liwpmodis=.false.
467    Lclmodis=.false.
468    Lcrimodis=.false.
469    Lcrlmodis=.false.
470  endif
471  if (Lmodis_sim) Lisccp_sim = .true.
472
473  ! Diagnostics that use Radar and Lidar
474  if (((Lclcalipso2).or.(Lcltlidarradar)).and.((Lradar_sim).or.(Llidar_sim))) then
475    Lclcalipso2    = .true.
476    Lcltlidarradar = .true.
477    Llidar_sim     = .true.
478    Lradar_sim     = .true.
479  endif
480
481  if ((Lradar_sim).or.(Llidar_sim).or.(Lisccp_sim)) Lstats = .true.
482
483  ! Copy instrument flags to cfg structure
484  cfg%Lradar_sim = Lradar_sim
485  cfg%Llidar_sim = Llidar_sim
486  cfg%Lisccp_sim = Lisccp_sim
487  cfg%Lmodis_sim = Lmodis_sim
488  cfg%Lmisr_sim  = Lmisr_sim
489  cfg%Lrttov_sim = Lrttov_sim
490
491  cfg%Lstats = Lstats
492
493  ! Flag to control output to file
494  cfg%Lwrite_output = .false.
495  if (cfg%Lstats.or.cfg%Lmisr_sim.or.cfg%Lrttov_sim) then
496    cfg%Lwrite_output = .true.
497  endif
498
499  ! Output diagnostics
500  i = 1
501  if (Lalbisccp)        cfg%out_list(i) = 'albisccp'
502  i = i+1
503  if (Latb532)          cfg%out_list(i) = 'atb532'
504  i = i+1
505  if (Lboxptopisccp)    cfg%out_list(i) = 'boxptopisccp'
506  i = i+1
507  if (Lboxtauisccp)     cfg%out_list(i) = 'boxtauisccp'
508  i = i+1
509  if (LcfadDbze94)      cfg%out_list(i) = 'cfadDbze94'
510  i = i+1
511  if (LcfadLidarsr532)  cfg%out_list(i) = 'cfadLidarsr532'
512  i = i+1
513  if (Lclcalipso2)      cfg%out_list(i) = 'clcalipso2'
514  i = i+1
515  if (Lclcalipso)       cfg%out_list(i) = 'clcalipso'
516  i = i+1
517  if (Lclhcalipso)      cfg%out_list(i) = 'clhcalipso'
518  i = i+1
519  if (Lclisccp)         cfg%out_list(i) = 'clisccp'
520  i = i+1
521  if (Lcllcalipso)      cfg%out_list(i) = 'cllcalipso'
522  i = i+1
523  if (Lclmcalipso)      cfg%out_list(i) = 'clmcalipso'
524  i = i+1
525  if (Lcltcalipso)      cfg%out_list(i) = 'cltcalipso'
526  i = i+1
527
528  if (Lcllcalipsoice)      cfg%out_list(i) = 'cllcalipsoice'
529  i = i+1
530  if (Lclmcalipsoice)      cfg%out_list(i) = 'clmcalipsoice'
531  i = i+1
532  if (Lclhcalipsoice)      cfg%out_list(i) = 'clhcalipsoice'
533  i = i+1
534  if (Lcltcalipsoice)      cfg%out_list(i) = 'cltcalipsoice'
535  i = i+1
536  if (Lcllcalipsoliq)      cfg%out_list(i) = 'cllcalipsoliq'
537  i = i+1
538  if (Lclmcalipsoliq)      cfg%out_list(i) = 'clmcalipsoliq'
539  i = i+1
540  if (Lclhcalipsoliq)      cfg%out_list(i) = 'clhcalipsoliq'
541  i = i+1
542  if (Lcltcalipsoliq)      cfg%out_list(i) = 'cltcalipsoliq'
543  i = i+1
544  if (Lcllcalipsoun)      cfg%out_list(i) = 'cllcalipsoun'
545  i = i+1
546  if (Lclmcalipsoun)      cfg%out_list(i) = 'clmcalipsoun'
547  i = i+1
548  if (Lclhcalipsoun)      cfg%out_list(i) = 'clhcalipsoun'
549  i = i+1
550  if (Lcltcalipsoun)      cfg%out_list(i) = 'cltcalipsoun'
551  i = i+1
552
553  if (Lclcalipsoice)       cfg%out_list(i) = 'clcalipsoice'
554  i = i+1
555  if (Lclcalipsoliq)       cfg%out_list(i) = 'clcalipsoliq'
556  i = i+1
557  if (Lclcalipsoun)       cfg%out_list(i) = 'clcalipsoun'
558  i = i+1
559
560  if (Lclcalipsotmp)       cfg%out_list(i) = 'clcalipsotmp'
561  i = i+1
562  if (Lclcalipsotmpice)       cfg%out_list(i) = 'clcalipsotmpice'
563  i = i+1
564  if (Lclcalipsotmpliq)       cfg%out_list(i) = 'clcalipsotmpliq'
565  i = i+1
566  if (Lclcalipsotmpun)       cfg%out_list(i) = 'clcalipsotmpun'
567  i = i+1
568  if (Lcltlidarradar)   cfg%out_list(i) = 'cltlidarradar'
569  i = i+1
570  if (Lpctisccp)        cfg%out_list(i) = 'pctisccp'
571  i = i+1
572  if (Ldbze94)          cfg%out_list(i) = 'dbze94'
573  i = i+1
574  if (Ltauisccp)        cfg%out_list(i) = 'tauisccp'
575  i = i+1
576  if (Lcltisccp)        cfg%out_list(i) = 'cltisccp'
577  i = i+1
578  if (Ltoffset)         cfg%out_list(i) = 'toffset'
579  i = i+1
580  if (LparasolRefl)     cfg%out_list(i) = 'parasolRefl'
581  i = i+1
582  if (LclMISR)          cfg%out_list(i) = 'clMISR'
583  i = i+1
584  if (Lmeantbisccp)     cfg%out_list(i) = 'meantbisccp'
585  i = i+1
586  if (Lmeantbclrisccp)  cfg%out_list(i) = 'meantbclrisccp'
587  i = i+1
588  if (Lfracout)         cfg%out_list(i) = 'fracout'
589  i = i+1
590  if (LlidarBetaMol532) cfg%out_list(i) = 'lidarBetaMol532'
591  i = i+1
592  if (Ltbrttov)         cfg%out_list(i) = 'tbrttov'
593  i = i+1
594  if (Lcltmodis)        cfg%out_list(i) = 'cltmodis'
595  i = i+1
596  if (Lclwmodis)        cfg%out_list(i) = 'clwmodis'
597  i = i+1
598  if (Lclimodis)        cfg%out_list(i) = 'climodis'
599  i = i+1
600  if (Lclhmodis)        cfg%out_list(i) = 'clhmodis'
601  i = i+1
602  if (Lclmmodis)        cfg%out_list(i) = 'clmmodis'
603  i = i+1
604  if (Lcllmodis)        cfg%out_list(i) = 'cllmodis'
605  i = i+1
606  if (Ltautmodis)       cfg%out_list(i) = 'tautmodis'
607  i = i+1
608  if (Ltauwmodis)       cfg%out_list(i) = 'tauwmodis'
609  i = i+1
610  if (Ltauimodis)       cfg%out_list(i) = 'tauimodis'
611  i = i+1
612  if (Ltautlogmodis)    cfg%out_list(i) = 'tautlogmodis'
613  i = i+1
614  if (Ltauwlogmodis)    cfg%out_list(i) = 'tauwlogmodis'
615  i = i+1
616  if (Ltauilogmodis)    cfg%out_list(i) = 'tauilogmodis'
617  i = i+1
618  if (Lreffclwmodis)    cfg%out_list(i) = 'reffclwmodis'
619  i = i+1
620  if (Lreffclimodis)    cfg%out_list(i) = 'reffclimodis'
621  i = i+1
622  if (Lpctmodis)        cfg%out_list(i) = 'pctmodis'
623  i = i+1
624  if (Llwpmodis)        cfg%out_list(i) = 'lwpmodis'
625  i = i+1
626  if (Liwpmodis)        cfg%out_list(i) = 'iwpmodis'
627  i = i+1
628  if (Lclmodis)         cfg%out_list(i) = 'clmodis'
629  i = i+1
630  if (Lcrimodis)         cfg%out_list(i) = 'crimodis'
631  i = i+1
632  if (Lcrlmodis)         cfg%out_list(i) = 'crlmodis'
633
634  i = i+1                                                            !OPAQ
635  if (Lclopaquecalipso)         cfg%out_list(i) = 'clopaquecalipso'  !OPAQ
636  i = i+1                                                            !OPAQ
637  if (Lclthincalipso)           cfg%out_list(i) = 'clthincalipso'    !OPAQ
638  i = i+1                                                            !OPAQ
639  if (Lclzopaquecalipso)        cfg%out_list(i) = 'clzopaquecalipso' !OPAQ
640  i = i+1                                                            !OPAQ
641  if (Lclcalipsoopaque)         cfg%out_list(i) = 'clcalipsoopaque'  !OPAQ
642  i = i+1                                                            !OPAQ
643  if (Lclcalipsothin)           cfg%out_list(i) = 'clcalipsothin'    !OPAQ
644  i = i+1                                                            !OPAQ
645  if (Lclcalipsozopaque)        cfg%out_list(i) = 'clcalipsozopaque' !OPAQ
646  i = i+1                                                            !OPAQ
647  if (Lclcalipsoopacity)        cfg%out_list(i) = 'clcalipsoopacity' !OPAQ
648  i = i+1                                                            !TIBO
649  if (LprofSR)                  cfg%out_list(i) = 'profSR'           !TIBO
650  i = i+1                                                            !TIBO
651  if (Lproftemp)                cfg%out_list(i) = 'proftemp'         !TIBO
652   
653  if (i /= N_OUT_LIST) then
654     print *, 'COSP_IO: wrong number of output diagnostics'
655     print *, i,N_OUT_LIST
656     stop
657  endif
658
659  ! Copy diagnostic flags to cfg structure
660  ! ISCCP simulator 
661  cfg%Lalbisccp = Lalbisccp
662  cfg%Latb532 = Latb532
663  cfg%Lboxptopisccp = Lboxptopisccp
664  cfg%Lboxtauisccp = Lboxtauisccp
665  cfg%Lmeantbisccp = Lmeantbisccp
666  cfg%Lmeantbclrisccp = Lmeantbclrisccp
667  cfg%Lclisccp = Lclisccp
668  cfg%Lpctisccp = Lpctisccp
669  cfg%Ltauisccp = Ltauisccp
670  cfg%Lcltisccp = Lcltisccp
671  ! CloudSat simulator 
672  cfg%Ldbze94 = Ldbze94
673  cfg%LcfadDbze94 = LcfadDbze94
674  ! CALIPSO/PARASOL simulator 
675  cfg%LcfadLidarsr532 = LcfadLidarsr532
676  cfg%Lclcalipso2 = Lclcalipso2
677  cfg%Lclcalipso = Lclcalipso
678  cfg%Lclhcalipso = Lclhcalipso
679  cfg%Lcllcalipso = Lcllcalipso
680  cfg%Lclmcalipso = Lclmcalipso
681  cfg%Lcltcalipso = Lcltcalipso
682  cfg%Lclhcalipsoice = Lclhcalipsoice
683  cfg%Lcllcalipsoice = Lcllcalipsoice
684  cfg%Lclmcalipsoice = Lclmcalipsoice
685  cfg%Lcltcalipsoice = Lcltcalipsoice
686  cfg%Lclhcalipsoliq = Lclhcalipsoliq
687  cfg%Lcllcalipsoliq = Lcllcalipsoliq
688  cfg%Lclmcalipsoliq = Lclmcalipsoliq
689  cfg%Lcltcalipsoliq = Lcltcalipsoliq
690  cfg%Lclhcalipsoun = Lclhcalipsoun
691  cfg%Lcllcalipsoun = Lcllcalipsoun
692  cfg%Lclmcalipsoun = Lclmcalipsoun
693  cfg%Lcltcalipsoun = Lcltcalipsoun
694  cfg%Lclcalipsoice = Lclcalipsoice
695  cfg%Lclcalipsoliq = Lclcalipsoliq
696  cfg%Lclcalipsoun = Lclcalipsoun
697  cfg%Lclcalipsotmp = Lclcalipsotmp
698  cfg%Lclcalipsotmpice = Lclcalipsotmpice
699  cfg%Lclcalipsotmpliq = Lclcalipsotmpliq
700  cfg%Lclcalipsotmpun = Lclcalipsotmpun
701  cfg%Lcltlidarradar = Lcltlidarradar
702  cfg%LparasolRefl = LparasolRefl
703  cfg%Lclopaquecalipso  = Lclopaquecalipso  !OPAQ
704  cfg%Lclthincalipso    = Lclthincalipso    !OPAQ
705  cfg%Lclzopaquecalipso = Lclzopaquecalipso !OPAQ
706  cfg%Lclcalipsoopaque  = Lclcalipsoopaque  !OPAQ
707  cfg%Lclcalipsothin    = Lclcalipsothin    !OPAQ
708  cfg%Lclcalipsozopaque = Lclcalipsozopaque !OPAQ
709  cfg%Lclcalipsoopacity = Lclcalipsoopacity !OPAQ
710  cfg%LprofSR           = LprofSR           !TIBO
711  cfg%Lproftemp         = Lproftemp         !TIBO
712  ! MISR simulator 
713  cfg%LclMISR = LclMISR
714  ! Other
715  cfg%Ltoffset = Ltoffset
716  cfg%Lfracout = Lfracout
717  cfg%LlidarBetaMol532 = LlidarBetaMol532
718  ! RTTOV
719  cfg%Ltbrttov = Ltbrttov
720  ! MODIS simulator 
721  cfg%Lcltmodis=Lcltmodis
722  cfg%Lclwmodis=Lclwmodis
723  cfg%Lclimodis=Lclimodis
724  cfg%Lclhmodis=Lclhmodis
725  cfg%Lclmmodis=Lclmmodis
726  cfg%Lcllmodis=Lcllmodis
727  cfg%Ltautmodis=Ltautmodis
728  cfg%Ltauwmodis=Ltauwmodis
729  cfg%Ltauimodis=Ltauimodis
730  cfg%Ltautlogmodis=Ltautlogmodis
731  cfg%Ltauwlogmodis=Ltauwlogmodis
732  cfg%Ltauilogmodis=Ltauilogmodis
733  cfg%Lreffclwmodis=Lreffclwmodis
734  cfg%Lreffclimodis=Lreffclimodis
735  cfg%Lpctmodis=Lpctmodis
736  cfg%Llwpmodis=Llwpmodis
737  cfg%Liwpmodis=Liwpmodis
738  cfg%Lclmodis=Lclmodis
739  cfg%Lcrimodis=Lcrimodis
740  cfg%Lcrlmodis=Lcrlmodis
741 
742 END SUBROUTINE READ_COSP_OUTPUT_NL
743
744 SUBROUTINE read_xiosfieldactive(cfg)
745
746    USE MOD_COSP_CONSTANTS
747    USE MOD_COSP_TYPES
748#ifdef CPP_XIOS
749    USE xios, ONLY: xios_field_is_active
750#endif
751  implicit none
752  type(cosp_config),intent(out) :: cfg
753  integer :: i
754
755#ifdef CPP_XIOS
756
757 logical :: Lradar_sim,Llidar_sim,Lisccp_sim,Lmodis_sim,Lmisr_sim,Lrttov_sim, Lstats, &
758             Lalbisccp,Latb532,Lboxptopisccp,Lboxtauisccp,LcfadDbze94, &
759             LcfadLidarsr532,Lclcalipso2,Lclcalipso,Lclhcalipso,Lclisccp,Lcllcalipso, &
760             Lclmcalipso,Lcltcalipso,Lcltlidarradar,Lpctisccp,Ldbze94,Ltauisccp,Lcltisccp, &
761             Lclcalipsoliq,Lclcalipsoice,Lclcalipsoun, &
762             Lclcalipsotmp,Lclcalipsotmpliq,Lclcalipsotmpice,Lclcalipsotmpun, &
763             Lcltcalipsoliq,Lcltcalipsoice,Lcltcalipsoun, &
764             Lclhcalipsoliq,Lclhcalipsoice,Lclhcalipsoun, &
765             Lclmcalipsoliq,Lclmcalipsoice,Lclmcalipsoun, &
766             Lcllcalipsoliq,Lcllcalipsoice,Lcllcalipsoun, &
767             Ltoffset,LparasolRefl,LclMISR,Lmeantbisccp,Lmeantbclrisccp, &
768             Lfracout,LlidarBetaMol532,Ltbrttov, &
769             Lcltmodis,Lclwmodis,Lclimodis,Lclhmodis,Lclmmodis,Lcllmodis, &
770             Ltautmodis,Ltauwmodis,Ltauimodis,Ltautlogmodis, &
771             Ltauwlogmodis,Ltauilogmodis,Lreffclwmodis,Lreffclimodis,Lpctmodis,Llwpmodis, &
772             Liwpmodis,Lclmodis,Lcrimodis,Lcrlmodis,Lclopaquecalipso,Lclthincalipso, &
773             Lclzopaquecalipso,Lclcalipsoopaque,Lclcalipsothin,Lclcalipsozopaque,Lclcalipsoopacity, &
774             LprofSR,Lproftemp
775       
776  character(len=32) :: out_list(N_OUT_LIST)
777
778  do i=1,N_OUT_LIST
779    cfg%out_list(i)=''
780  enddo
781
782    LcfadDbze94   = .false.
783    Lclcalipso2    = .false.
784    Lcltlidarradar = .false. ! Needs radar & lidar
785    Ldbze94        = .false.
786    Lclcalipso2    = .false. ! Needs radar & lidar
787
788    Latb532          = .false.
789    LcfadLidarsr532  = .false.
790    Lclcalipso       = .false.
791    Lclhcalipso      = .false.
792    Lcllcalipso      = .false.
793    Lclmcalipso      = .false.
794    Lcltcalipso      = .false.
795    LparasolRefl     = .false.
796    LlidarBetaMol532 = .false.
797    Lclcalipsoliq       = .false.
798    Lclcalipsoice       = .false.
799    Lclcalipsoun        = .false.
800    Lclcalipsotmp       = .false.
801    Lclcalipsotmpun     = .false.
802    Lclcalipsotmpliq    = .false.
803    Lclcalipsotmpice    = .false.
804    Lclhcalipsoliq      = .false.
805    Lcllcalipsoliq      = .false.
806    Lclmcalipsoliq      = .false.
807    Lcltcalipsoliq      = .false.
808    Lclhcalipsoice      = .false.
809    Lcllcalipsoice      = .false.
810    Lclmcalipsoice      = .false.
811    Lcltcalipsoice      = .false.
812    Lclhcalipsoun       = .false.
813    Lcllcalipsoun       = .false.
814    Lclmcalipsoun       = .false.
815    Lcltcalipsoun       = .false.
816    Lclopaquecalipso    = .false. !OPAQ
817    Lclthincalipso      = .false. !OPAQ
818    Lclzopaquecalipso   = .false. !OPAQ
819    Lclcalipsoopaque    = .false. !OPAQ
820    Lclcalipsothin      = .false. !OPAQ
821    Lclcalipsozopaque   = .false. !OPAQ
822    Lclcalipsoopacity   = .false. !OPAQ
823    LprofSR             = .false. !TIBO
824    Lproftemp           = .false. !TIBO
825
826    Lalbisccp       = .false.
827    Lboxptopisccp   = .false.
828    Lboxtauisccp    = .false.
829    Lclisccp        = .false.
830    Lpctisccp       = .false.
831    Ltauisccp       = .false.
832    Lcltisccp       = .false.
833    Lmeantbisccp    = .false.
834    Lmeantbclrisccp = .false.
835
836    LclMISR = .false.
837
838    Ltbrttov = .false.
839
840    Lcltmodis=.false.
841    Lclwmodis=.false.
842    Lclimodis=.false.
843    Lclhmodis=.false.
844    Lclmmodis=.false.
845    Lcllmodis=.false.
846    Ltautmodis=.false.
847    Ltauwmodis=.false.
848    Ltauimodis=.false.
849    Ltautlogmodis=.false.
850    Ltauwlogmodis=.false.
851    Ltauilogmodis=.false.
852    Lreffclwmodis=.false.
853    Lreffclimodis=.false.
854    Lpctmodis=.false.
855    Llwpmodis=.false.
856    Liwpmodis=.false.
857    Lclmodis=.false.
858    Lcrimodis=.false.
859    Lcrlmodis=.false.
860
861    Lradar_sim=.false.
862    Llidar_sim=.false.
863    Lisccp_sim=.false.
864    Lmodis_sim=.false.
865    Lmisr_sim=.false.
866    Lrttov_sim=.false.
867
868    Lstats=.false.
869!    Ltoffset=.false.
870!    Lfracout=.false.
871!    Lwrite_output=.false.
872
873  IF (is_master) THEN
874! VEREFIER LES CHAMPS DEMANDES DANS .XML
875! 2. Si champs active dans .xml alors mettre la cles de sortie en true
876 IF (xios_field_is_active("cllcalipso")) Lcllcalipso=.TRUE.
877 IF (xios_field_is_active("clmcalipso")) Lclmcalipso=.TRUE.
878 IF (xios_field_is_active("clhcalipso")) Lclhcalipso=.TRUE.
879 IF (xios_field_is_active("cltcalipso")) Lcltcalipso=.TRUE.
880 IF (xios_field_is_active("cllcalipsoice")) Lcllcalipsoice=.TRUE.
881 IF (xios_field_is_active("clmcalipsoice")) Lclmcalipsoice=.TRUE.
882 IF (xios_field_is_active("clhcalipsoice")) Lclhcalipsoice=.TRUE.
883 IF (xios_field_is_active("cltcalipsoice")) Lcltcalipsoice=.TRUE.
884 IF (xios_field_is_active("cllcalipsoliq")) Lcllcalipsoliq=.TRUE.
885 IF (xios_field_is_active("clmcalipsoliq")) Lclmcalipsoliq=.TRUE.
886 IF (xios_field_is_active("clhcalipsoliq")) Lclhcalipsoliq=.TRUE.
887 IF (xios_field_is_active("cltcalipsoliq")) Lcltcalipsoliq=.TRUE.
888 IF (xios_field_is_active("cllcalipsoun")) Lcllcalipsoun=.TRUE.
889 IF (xios_field_is_active("clmcalipsoun")) Lclmcalipsoun=.TRUE.
890 IF (xios_field_is_active("clhcalipsoun")) Lclhcalipsoun=.TRUE.
891 IF (xios_field_is_active("cltcalipsoun")) Lcltcalipsoun=.TRUE.
892 IF (xios_field_is_active("clcalipso")) Lclcalipso=.TRUE.
893 IF (xios_field_is_active("clcalipsoice")) Lclcalipsoice=.TRUE.
894 IF (xios_field_is_active("clcalipsoliq")) Lclcalipsoliq=.TRUE.
895 IF (xios_field_is_active("clcalipsoun")) Lclcalipsoun=.TRUE.
896 IF (xios_field_is_active("clcalipsotmp")) Lclcalipsotmp=.TRUE.
897 IF (xios_field_is_active("clcalipsotmpice")) Lclcalipsotmpice=.TRUE.
898 IF (xios_field_is_active("clcalipsotmpliq")) Lclcalipsotmpliq=.TRUE.
899 IF (xios_field_is_active("clcalipsotmpun")) Lclcalipsotmpun=.TRUE.
900 IF (xios_field_is_active("parasol_refl")) LparasolRefl=.TRUE.
901! IF (xios_field_is_active("parasol_crefl")) cfg%LparasolRefl=.TRUE.
902! IF (xios_field_is_active("Ncrefl")) cfg%LparasolRefl=.TRUE.
903 IF (xios_field_is_active("cfad_lidarsr532")) LcfadLidarsr532=.TRUE.
904 IF (xios_field_is_active("atb532")) Latb532=.TRUE.
905 IF (xios_field_is_active("beta_mol532")) LlidarBetaMol532=.TRUE.
906 IF (xios_field_is_active("clopaquecalipso")) Lclopaquecalipso=.TRUE.
907 IF (xios_field_is_active("clthincalipso")) Lclthincalipso=.TRUE.
908 IF (xios_field_is_active("clzopaquecalipso")) Lclzopaquecalipso=.TRUE.
909 IF (xios_field_is_active("clcalipsoopaque")) Lclcalipsoopaque=.TRUE.
910 IF (xios_field_is_active("clcalipsothin")) Lclcalipsothin=.TRUE.
911 IF (xios_field_is_active("clcalipsozopaque")) Lclcalipsozopaque=.TRUE.
912 IF (xios_field_is_active("clcalipsoopacity")) Lclcalipsoopacity=.TRUE.
913 IF (xios_field_is_active("proftemp")) Lproftemp=.TRUE.
914 IF (xios_field_is_active("profSR")) LprofSR=.TRUE.
915!!!! 38 champ Calipso
916
917 IF (xios_field_is_active("cfadDbze94")) LcfadDbze94=.TRUE.
918 IF (xios_field_is_active("dbze94")) Ldbze94=.TRUE.
919!!! 2 champs CLOUDSAT
920
921 IF (xios_field_is_active("cltlidarradar")) Lcltlidarradar=.TRUE.
922 IF (xios_field_is_active("clcalipso2")) Lclcalipso2=.TRUE.
923!!! 2 champs CLOUDSAT et CALIPSO
924
925 IF (xios_field_is_active("clisccp2")) Lclisccp=.TRUE.
926 IF (xios_field_is_active("boxtauisccp")) Lboxtauisccp=.TRUE.
927 IF (xios_field_is_active("boxptopisccp")) Lboxptopisccp=.TRUE.
928 IF (xios_field_is_active("tclisccp")) Lcltisccp=.TRUE.
929 IF (xios_field_is_active("ctpisccp")) Lpctisccp=.TRUE.
930 IF (xios_field_is_active("tauisccp")) Ltauisccp=.TRUE.
931 IF (xios_field_is_active("albisccp")) Lalbisccp=.TRUE.
932 IF (xios_field_is_active("meantbisccp")) Lmeantbisccp=.TRUE.
933 IF (xios_field_is_active("meantbclrisccp")) Lmeantbclrisccp=.TRUE.
934!!! 9 champs ISCCP
935
936 IF (xios_field_is_active("clMISR")) LclMISR=.TRUE.
937!!! 1 champs MISR
938
939 IF (xios_field_is_active("cllmodis")) Lcllmodis=.TRUE.
940 IF (xios_field_is_active("clmmodis")) Lclmmodis=.TRUE.
941 IF (xios_field_is_active("clhmodis")) Lclhmodis=.TRUE.
942 IF (xios_field_is_active("cltmodis")) Lcltmodis=.TRUE.
943 IF (xios_field_is_active("clwmodis")) Lclwmodis=.TRUE.
944 IF (xios_field_is_active("climodis")) Lclimodis=.TRUE.
945 IF (xios_field_is_active("tautmodis")) Ltautmodis=.TRUE.
946 IF (xios_field_is_active("tauwmodis")) Ltauwmodis=.TRUE.
947 IF (xios_field_is_active("tauimodis")) Ltauimodis=.TRUE.
948 IF (xios_field_is_active("tautlogmodis")) Ltautlogmodis=.TRUE.
949 IF (xios_field_is_active("tauilogmodis")) Ltauilogmodis=.TRUE.
950 IF (xios_field_is_active("tauwlogmodis")) Ltauwlogmodis=.TRUE.
951 IF (xios_field_is_active("reffclwmodis")) Lreffclwmodis=.TRUE.
952 IF (xios_field_is_active("reffclimodis")) Lreffclimodis=.TRUE.
953 IF (xios_field_is_active("pctmodis")) Lpctmodis=.TRUE.
954 IF (xios_field_is_active("lwpmodis")) Llwpmodis=.TRUE.
955 IF (xios_field_is_active("iwpmodis")) Liwpmodis=.TRUE.
956 IF (xios_field_is_active("clmodis")) Lclmodis=.TRUE.
957 IF (xios_field_is_active("crimodis")) Lcrimodis=.TRUE.
958 IF (xios_field_is_active("crlmodis")) Lcrlmodis=.TRUE.
959!!! 20 champs MODIS
960! IF (xios_field_is_active("tbrttov")) cfg%Ltbrttov=.TRUE.
961
962! 2.  si champs demande alors activer le simulateur correspondant
963   IF (xios_field_is_active("cllcalipso").OR. &
964       xios_field_is_active("clmcalipso").OR. &
965       xios_field_is_active("clhcalipso").OR. &
966       xios_field_is_active("cltcalipso").OR. &
967       xios_field_is_active("cllcalipsoice").OR. &
968       xios_field_is_active("clmcalipsoice").OR. &
969       xios_field_is_active("clhcalipsoice").OR. &
970       xios_field_is_active("cltcalipsoice").OR. &
971       xios_field_is_active("cllcalipsoliq").OR. &
972       xios_field_is_active("clmcalipsoliq").OR. &
973       xios_field_is_active("clhcalipsoliq").OR. &
974       xios_field_is_active("cltcalipsoliq").OR. &
975       xios_field_is_active("cllcalipsoun").OR. &
976       xios_field_is_active("clmcalipsoun").OR. &
977       xios_field_is_active("clhcalipsoun").OR. &
978       xios_field_is_active("cltcalipsoun").OR. &
979       xios_field_is_active("clcalipso").OR. &
980       xios_field_is_active("clcalipsoice").OR. &
981       xios_field_is_active("clcalipsoliq").OR. &
982       xios_field_is_active("clcalipsoun").OR. &
983       xios_field_is_active("clcalipsotmp").OR. &
984       xios_field_is_active("clcalipsotmpice").OR. &
985       xios_field_is_active("clcalipsotmpliq").OR. &
986       xios_field_is_active("clcalipsotmpun").OR. &
987       xios_field_is_active("parasol_refl").OR. &
988       xios_field_is_active("cfad_lidarsr532").OR. &
989       xios_field_is_active("atb532").OR. &
990       xios_field_is_active("beta_mol532").OR. &
991       xios_field_is_active("clopaquecalipso").OR. &
992       xios_field_is_active("clthincalipso").OR. &
993       xios_field_is_active("clzopaquecalipso").OR. &
994       xios_field_is_active("clcalipsoopaque").OR. &
995       xios_field_is_active("clcalipsothin").OR. &
996       xios_field_is_active("clcalipsozopaque").OR. &
997       xios_field_is_active("clcalipsoopacity").OR. &
998       xios_field_is_active("proftemp").OR. &
999       xios_field_is_active("profSR")) Llidar_sim=.TRUE.
1000
1001    IF (xios_field_is_active("cfadDbze94").OR. &
1002      xios_field_is_active("dbze94")) Lradar_sim=.TRUE.
1003
1004    IF (xios_field_is_active("cltlidarradar").OR. &
1005      xios_field_is_active("clcalipso2")) THEN
1006               Lradar_sim=.TRUE.
1007               Llidar_sim=.TRUE.
1008    ENDIF
1009
1010    IF (xios_field_is_active("clisccp2").OR. &
1011       xios_field_is_active("boxtauisccp").OR. &
1012       xios_field_is_active("boxptopisccp").OR. &
1013       xios_field_is_active("tclisccp").OR. &
1014       xios_field_is_active("ctpisccp").OR. &
1015       xios_field_is_active("tauisccp").OR. &
1016       xios_field_is_active("albisccp").OR. &
1017       xios_field_is_active("meantbisccp").OR. &
1018       xios_field_is_active("meantbclrisccp")) Lisccp_sim=.TRUE.
1019
1020    IF (xios_field_is_active("clMISR")) Lmisr_sim=.TRUE.
1021
1022    IF (xios_field_is_active("cllmodis").OR. &
1023       xios_field_is_active("clmmodis").OR. &
1024       xios_field_is_active("clhmodis").OR. &
1025       xios_field_is_active("cltmodis").OR. &
1026       xios_field_is_active("clwmodis").OR. &
1027       xios_field_is_active("climodis").OR. &
1028       xios_field_is_active("tautmodis").OR. &
1029       xios_field_is_active("tauwmodis").OR. &
1030       xios_field_is_active("tauimodis").OR. &
1031       xios_field_is_active("tautlogmodis").OR. &
1032       xios_field_is_active("tauilogmodis").OR. &
1033       xios_field_is_active("tauwlogmodis").OR. &
1034       xios_field_is_active("reffclwmodis").OR. &
1035       xios_field_is_active("reffclimodis").OR. &
1036       xios_field_is_active("pctmodis").OR. &
1037       xios_field_is_active("lwpmodis").OR. &
1038       xios_field_is_active("iwpmodis").OR. &
1039       xios_field_is_active("clmodis").OR. &
1040       xios_field_is_active("crimodis").OR. &
1041       xios_field_is_active("crlmodis")) Lmodis_sim=.TRUE.
1042
1043  ENDIF !   (is_master)
1044!$OMP BARRIER
1045
1046  CALL bcast(Lradar_sim)
1047  CALL bcast(Llidar_sim)
1048  CALL bcast(Lisccp_sim)
1049  CALL bcast(Lmodis_sim)
1050  CALL bcast(Lmisr_sim)
1051  CALL bcast(Lrttov_sim)
1052
1053  CALL bcast(Lstats)
1054
1055  CALL bcast(Lalbisccp)
1056  CALL bcast(Latb532)
1057  CALL bcast(Lboxptopisccp)
1058  CALL bcast(Lboxtauisccp)
1059  CALL bcast(LcfadDbze94)
1060  CALL bcast(LcfadLidarsr532)
1061  CALL bcast(Lclcalipso2)
1062  CALL bcast(Lclcalipso)
1063  CALL bcast(Lclhcalipso)
1064  CALL bcast(Lclcalipsoliq)
1065  CALL bcast(Lclcalipsoice)
1066  CALL bcast(Lclcalipsoun)
1067  CALL bcast(Lclcalipsotmp)
1068  CALL bcast(Lclcalipsotmpliq)
1069  CALL bcast(Lclcalipsotmpice)
1070  CALL bcast(Lclcalipsotmpun)
1071  CALL bcast(Lcltcalipsoliq)
1072  CALL bcast(Lcltcalipsoice)
1073  CALL bcast(Lcltcalipsoun)
1074  CALL bcast(Lclhcalipsoliq)
1075  CALL bcast(Lclhcalipsoice)
1076  CALL bcast(Lclhcalipsoun)
1077  CALL bcast(Lclmcalipsoliq)
1078  CALL bcast(Lclmcalipsoice)
1079  CALL bcast(Lclmcalipsoun)
1080  CALL bcast(Lcllcalipsoliq)
1081  CALL bcast(Lcllcalipsoice)
1082  CALL bcast(Lcllcalipsoun)
1083  CALL bcast(Lclisccp)
1084  CALL bcast(Lcllcalipso)
1085  CALL bcast(Lclmcalipso)
1086  CALL bcast(Lcltcalipso)
1087  CALL bcast(Lcltlidarradar)
1088  CALL bcast(Lpctisccp)
1089  CALL bcast(Ldbze94)
1090  CALL bcast(Ltauisccp)
1091  CALL bcast(Lcltisccp)
1092  CALL bcast(LparasolRefl)
1093  CALL bcast(LclMISR)
1094  CALL bcast(Lmeantbisccp)
1095  CALL bcast(Lmeantbclrisccp)
1096  CALL bcast(Lfracout)
1097  CALL bcast(LlidarBetaMol532)
1098  CALL bcast(Lcltmodis)
1099  CALL bcast(Lclwmodis)
1100  CALL bcast(Lclimodis)
1101  CALL bcast(Lclhmodis)
1102  CALL bcast(Lclmmodis)
1103  CALL bcast(Lcllmodis)
1104  CALL bcast(Ltautmodis)
1105  CALL bcast(Ltauwmodis)
1106  CALL bcast(Ltauimodis)
1107  CALL bcast(Ltautlogmodis)
1108  CALL bcast(Ltauwlogmodis)
1109  CALL bcast(Ltauilogmodis)
1110  CALL bcast(Lreffclwmodis)
1111  CALL bcast(Lreffclimodis)
1112  CALL bcast(Lpctmodis)
1113  CALL bcast(Llwpmodis)
1114  CALL bcast(Liwpmodis)
1115  CALL bcast(Lclmodis)
1116  CALL bcast(Ltbrttov)
1117  CALL bcast(Lcrimodis)
1118  CALL bcast(Lcrlmodis)
1119  CALL bcast(Lclopaquecalipso)  !OPAQ
1120  CALL bcast(Lclthincalipso)    !OPAQ
1121  CALL bcast(Lclzopaquecalipso) !OPAQ
1122  CALL bcast(Lclcalipsoopaque)  !OPAQ
1123  CALL bcast(Lclcalipsothin)    !OPAQ
1124  CALL bcast(Lclcalipsozopaque) !OPAQ
1125  CALL bcast(Lclcalipsoopacity) !OPAQ
1126  CALL bcast(LprofSR)           !TIBO
1127  CALL bcast(Lproftemp)         !TIBO
1128
1129    if (Lmodis_sim) Lisccp_sim = .true.
1130    if ((Lradar_sim).or.(Llidar_sim).or.(Lisccp_sim)) Lstats = .true.
1131!    IF (xios_field_is_active("tbrttov")) cfg%Lrttov_sim=.TRUE.
1132
1133  ! Copy diagnostic flags to cfg structure
1134  ! ISCCP simulator 
1135  cfg%Lalbisccp = Lalbisccp
1136  cfg%Latb532 = Latb532
1137  cfg%Lboxptopisccp = Lboxptopisccp
1138  cfg%Lboxtauisccp = Lboxtauisccp
1139  cfg%Lmeantbisccp = Lmeantbisccp
1140  cfg%Lmeantbclrisccp = Lmeantbclrisccp
1141  cfg%Lclisccp = Lclisccp
1142  cfg%Lpctisccp = Lpctisccp
1143  cfg%Ltauisccp = Ltauisccp
1144  cfg%Lcltisccp = Lcltisccp
1145
1146! CloudSat simulator 
1147  cfg%Ldbze94 = Ldbze94
1148  cfg%LcfadDbze94 = LcfadDbze94
1149
1150! Cloudsat et Calipso
1151  cfg%Lclcalipso2 = Lclcalipso2
1152  cfg%Lcltlidarradar = Lcltlidarradar
1153
1154! CALIPSO/PARASOL simulator 
1155  cfg%LcfadLidarsr532 = LcfadLidarsr532
1156  cfg%Lclcalipso = Lclcalipso
1157  cfg%Lclhcalipso = Lclhcalipso
1158  cfg%Lcllcalipso = Lcllcalipso
1159  cfg%Lclmcalipso = Lclmcalipso
1160  cfg%Lcltcalipso = Lcltcalipso
1161  cfg%Lclhcalipsoice = Lclhcalipsoice
1162  cfg%Lcllcalipsoice = Lcllcalipsoice
1163  cfg%Lclmcalipsoice = Lclmcalipsoice
1164  cfg%Lcltcalipsoice = Lcltcalipsoice
1165  cfg%Lclhcalipsoliq = Lclhcalipsoliq
1166  cfg%Lcllcalipsoliq = Lcllcalipsoliq
1167  cfg%Lclmcalipsoliq = Lclmcalipsoliq
1168  cfg%Lcltcalipsoliq = Lcltcalipsoliq
1169  cfg%Lclhcalipsoun = Lclhcalipsoun
1170  cfg%Lcllcalipsoun = Lcllcalipsoun
1171  cfg%Lclmcalipsoun = Lclmcalipsoun
1172  cfg%Lcltcalipsoun = Lcltcalipsoun
1173  cfg%Lclcalipsoice = Lclcalipsoice
1174  cfg%Lclcalipsoliq = Lclcalipsoliq
1175  cfg%Lclcalipsoun = Lclcalipsoun
1176  cfg%Lclcalipsotmp = Lclcalipsotmp
1177  cfg%Lclcalipsotmpice = Lclcalipsotmpice
1178  cfg%Lclcalipsotmpliq = Lclcalipsotmpliq
1179  cfg%Lclcalipsotmpun = Lclcalipsotmpun
1180  cfg%LparasolRefl = LparasolRefl
1181  cfg%Lclopaquecalipso  = Lclopaquecalipso  !OPAQ
1182  cfg%Lclthincalipso    = Lclthincalipso    !OPAQ
1183  cfg%Lclzopaquecalipso = Lclzopaquecalipso !OPAQ
1184  cfg%Lclcalipsoopaque  = Lclcalipsoopaque  !OPAQ
1185  cfg%Lclcalipsothin    = Lclcalipsothin    !OPAQ
1186  cfg%Lclcalipsozopaque = Lclcalipsozopaque !OPAQ
1187  cfg%Lclcalipsoopacity = Lclcalipsoopacity !OPAQ
1188  cfg%LprofSR           = LprofSR           !TIBO
1189  cfg%Lproftemp         = Lproftemp         !TIBO
1190  cfg%LlidarBetaMol532 = LlidarBetaMol532
1191
1192! MISR simulator 
1193  cfg%LclMISR = LclMISR
1194
1195! RTTOV
1196  cfg%Ltbrttov = Ltbrttov
1197
1198! MODIS simulator 
1199  cfg%Lcltmodis=Lcltmodis
1200  cfg%Lclwmodis=Lclwmodis
1201  cfg%Lclimodis=Lclimodis
1202  cfg%Lclhmodis=Lclhmodis
1203  cfg%Lclmmodis=Lclmmodis
1204  cfg%Lcllmodis=Lcllmodis
1205  cfg%Ltautmodis=Ltautmodis
1206  cfg%Ltauwmodis=Ltauwmodis
1207  cfg%Ltauimodis=Ltauimodis
1208  cfg%Ltautlogmodis=Ltautlogmodis
1209  cfg%Ltauwlogmodis=Ltauwlogmodis
1210  cfg%Ltauilogmodis=Ltauilogmodis
1211  cfg%Lreffclwmodis=Lreffclwmodis
1212  cfg%Lreffclimodis=Lreffclimodis
1213  cfg%Lpctmodis=Lpctmodis
1214  cfg%Llwpmodis=Llwpmodis
1215  cfg%Liwpmodis=Liwpmodis
1216  cfg%Lclmodis=Lclmodis
1217  cfg%Lcrimodis=Lcrimodis
1218  cfg%Lcrlmodis=Lcrlmodis
1219
1220! Others
1221!  cfg%Lwrite_output=Lwrite_output
1222!  cfg%Ltoffset=Ltoffset
1223!  cfg%Lfracout=Lfracout
1224  cfg%Lstats = Lstats
1225
1226! Copy instrument flags to cfg structure
1227  cfg%Lradar_sim = Lradar_sim
1228  cfg%Llidar_sim = Llidar_sim
1229  cfg%Lisccp_sim = Lisccp_sim
1230  cfg%Lmodis_sim = Lmodis_sim
1231  cfg%Lmisr_sim  = Lmisr_sim
1232  cfg%Lrttov_sim = Lrttov_sim
1233
1234#endif
1235
1236  END SUBROUTINE read_xiosfieldactive
1237
1238END MODULE cosp_read_otputkeys
Note: See TracBrowser for help on using the repository browser.