source: LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/cosp/cosp_read_otputkeys.F90 @ 3373

Last change on this file since 3373 was 3348, checked in by idelkadi, 6 years ago

Correction de la gestion des cles logiques des sorties COSP (en mode OpenMP)

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
285!$OMP BARRIER
286 
287  CALL bcast(Lradar_sim)
288  CALL bcast(Llidar_sim)
289  CALL bcast(Lisccp_sim)
290  CALL bcast(Lmodis_sim)
291  CALL bcast(Lmisr_sim)
292  CALL bcast(Lrttov_sim)
293
294  CALL bcast(Lstats)
295
296  CALL bcast(Lalbisccp)
297  CALL bcast(Latb532)
298  CALL bcast(Lboxptopisccp)
299  CALL bcast(Lboxtauisccp)
300  CALL bcast(LcfadDbze94)
301  CALL bcast(LcfadLidarsr532)
302  CALL bcast(Lclcalipso2)
303  CALL bcast(Lclcalipso)
304  CALL bcast(Lclhcalipso)
305  CALL bcast(Lclcalipsoliq)
306  CALL bcast(Lclcalipsoice)
307  CALL bcast(Lclcalipsoun)
308  CALL bcast(Lclcalipsotmp)
309  CALL bcast(Lclcalipsotmpliq)
310  CALL bcast(Lclcalipsotmpice)
311  CALL bcast(Lclcalipsotmpun)
312  CALL bcast(Lcltcalipsoliq)
313  CALL bcast(Lcltcalipsoice)
314  CALL bcast(Lcltcalipsoun)
315  CALL bcast(Lclhcalipsoliq)
316  CALL bcast(Lclhcalipsoice)
317  CALL bcast(Lclhcalipsoun)
318  CALL bcast(Lclmcalipsoliq)
319  CALL bcast(Lclmcalipsoice)
320  CALL bcast(Lclmcalipsoun)
321  CALL bcast(Lcllcalipsoliq)
322  CALL bcast(Lcllcalipsoice)
323  CALL bcast(Lcllcalipsoun)
324  CALL bcast(Lclisccp)
325  CALL bcast(Lcllcalipso)
326  CALL bcast(Lclmcalipso)
327  CALL bcast(Lcltcalipso)
328  CALL bcast(Lcltlidarradar)
329  CALL bcast(Lpctisccp)
330  CALL bcast(Ldbze94)
331  CALL bcast(Ltauisccp)
332  CALL bcast(Lcltisccp)
333  CALL bcast(LparasolRefl)
334  CALL bcast(LclMISR)
335  CALL bcast(Lmeantbisccp)
336  CALL bcast(Lmeantbclrisccp)
337  CALL bcast(Lfracout)
338  CALL bcast(LlidarBetaMol532)
339  CALL bcast(Lcltmodis)
340  CALL bcast(Lclwmodis)
341  CALL bcast(Lclimodis)
342  CALL bcast(Lclhmodis)
343  CALL bcast(Lclmmodis)
344  CALL bcast(Lcllmodis)
345  CALL bcast(Ltautmodis)
346  CALL bcast(Ltauwmodis)
347  CALL bcast(Ltauimodis)
348  CALL bcast(Ltautlogmodis)
349  CALL bcast(Ltauwlogmodis)
350  CALL bcast(Ltauilogmodis)
351  CALL bcast(Lreffclwmodis)
352  CALL bcast(Lreffclimodis)
353  CALL bcast(Lpctmodis)
354  CALL bcast(Llwpmodis)
355  CALL bcast(Liwpmodis)
356  CALL bcast(Lclmodis)
357  CALL bcast(Ltbrttov)
358  CALL bcast(Lcrimodis)
359  CALL bcast(Lcrlmodis)
360  CALL bcast(Lclopaquecalipso)  !OPAQ
361  CALL bcast(Lclthincalipso)    !OPAQ
362  CALL bcast(Lclzopaquecalipso) !OPAQ
363  CALL bcast(Lclcalipsoopaque)  !OPAQ
364  CALL bcast(Lclcalipsothin)    !OPAQ
365  CALL bcast(Lclcalipsozopaque) !OPAQ
366  CALL bcast(Lclcalipsoopacity) !OPAQ
367  CALL bcast(LprofSR)           !TIBO
368  CALL bcast(Lproftemp)         !TIBO
369
370!  print*,' Cles sorties cosp :'
371!  print*,' Lradar_sim,Llidar_sim,Lisccp_sim,Lmisr_sim,Lrttov_sim', &
372!           Lradar_sim,Llidar_sim,Lisccp_sim,Lmisr_sim,Lrttov_sim
373
374
375  ! Deal with dependencies
376  if (.not.Lradar_sim) then
377    LcfadDbze94   = .false.
378    Lclcalipso2    = .false.
379    Lcltlidarradar = .false. ! Needs radar & lidar
380    Ldbze94        = .false.
381    Lclcalipso2    = .false. ! Needs radar & lidar
382  endif
383
384  if (.not.Llidar_sim) then
385    Latb532          = .false.
386    LcfadLidarsr532  = .false.
387    Lclcalipso2      = .false.
388    Lclcalipso       = .false.
389    Lclhcalipso      = .false.
390    Lcllcalipso      = .false.
391    Lclmcalipso      = .false.
392    Lcltcalipso      = .false.
393    Lcltlidarradar   = .false. ! Needs radar & lidar
394    LparasolRefl     = .false.
395    LlidarBetaMol532 = .false.
396!! AI
397    Lclcalipsoliq       = .false.
398    Lclcalipsoice       = .false.
399    Lclcalipsoun        = .false.
400    Lclcalipsotmp       = .false.
401    Lclcalipsotmpun     = .false.
402    Lclcalipsotmpliq    = .false.
403    Lclcalipsotmpice    = .false.
404    Lclhcalipsoliq      = .false.
405    Lcllcalipsoliq      = .false.
406    Lclmcalipsoliq      = .false.
407    Lcltcalipsoliq      = .false.
408    Lclhcalipsoice      = .false.
409    Lcllcalipsoice      = .false.
410    Lclmcalipsoice      = .false.
411    Lcltcalipsoice      = .false.
412    Lclhcalipsoun       = .false.
413    Lcllcalipsoun       = .false.
414    Lclmcalipsoun       = .false.
415    Lcltcalipsoun       = .false.
416    Lclopaquecalipso    = .false. !OPAQ
417    Lclthincalipso      = .false. !OPAQ
418    Lclzopaquecalipso   = .false. !OPAQ
419    Lclcalipsoopaque    = .false. !OPAQ
420    Lclcalipsothin      = .false. !OPAQ
421    Lclcalipsozopaque   = .false. !OPAQ
422    Lclcalipsoopacity   = .false. !OPAQ
423    LprofSR             = .false. !TIBO
424    Lproftemp           = .false. !TIBO
425  endif
426
427  if (.not.Lisccp_sim) then
428    Lalbisccp       = .false.
429    Lboxptopisccp   = .false.
430    Lboxtauisccp    = .false.
431    Lclisccp        = .false.
432    Lpctisccp       = .false.
433    Ltauisccp       = .false.
434    Lcltisccp       = .false.
435    Lmeantbisccp    = .false.
436    Lmeantbclrisccp = .false.
437  endif
438
439  if (.not.Lmisr_sim) then
440    LclMISR = .false.
441  endif
442  if (.not.Lrttov_sim) then
443    Ltbrttov = .false.
444  endif
445  if ((.not.Lradar_sim).and.(.not.Llidar_sim).and. &
446      (.not.Lisccp_sim).and.(.not.Lmisr_sim)) then
447    Lfracout = .false.
448    Lstats = .false.
449  endif
450 if (.not.Lmodis_sim) then
451    Lcltmodis=.false.
452    Lclwmodis=.false.
453    Lclimodis=.false.
454    Lclhmodis=.false.
455    Lclmmodis=.false.
456    Lcllmodis=.false.
457    Ltautmodis=.false.
458    Ltauwmodis=.false.
459    Ltauimodis=.false.
460    Ltautlogmodis=.false.
461    Ltauwlogmodis=.false.
462    Ltauilogmodis=.false.
463    Lreffclwmodis=.false.
464    Lreffclimodis=.false.
465    Lpctmodis=.false.
466    Llwpmodis=.false.
467    Liwpmodis=.false.
468    Lclmodis=.false.
469    Lcrimodis=.false.
470    Lcrlmodis=.false.
471  endif
472  if (Lmodis_sim) Lisccp_sim = .true.
473
474  ! Diagnostics that use Radar and Lidar
475  if (((Lclcalipso2).or.(Lcltlidarradar)).and.((Lradar_sim).or.(Llidar_sim))) then
476    Lclcalipso2    = .true.
477    Lcltlidarradar = .true.
478    Llidar_sim     = .true.
479    Lradar_sim     = .true.
480  endif
481
482  if ((Lradar_sim).or.(Llidar_sim).or.(Lisccp_sim)) Lstats = .true.
483
484  ! Copy instrument flags to cfg structure
485  cfg%Lradar_sim = Lradar_sim
486  cfg%Llidar_sim = Llidar_sim
487  cfg%Lisccp_sim = Lisccp_sim
488  cfg%Lmodis_sim = Lmodis_sim
489  cfg%Lmisr_sim  = Lmisr_sim
490  cfg%Lrttov_sim = Lrttov_sim
491
492  cfg%Lstats = Lstats
493
494  ! Flag to control output to file
495  cfg%Lwrite_output = .false.
496  if (cfg%Lstats.or.cfg%Lmisr_sim.or.cfg%Lrttov_sim) then
497    cfg%Lwrite_output = .true.
498  endif
499
500  ! Output diagnostics
501  i = 1
502  if (Lalbisccp)        cfg%out_list(i) = 'albisccp'
503  i = i+1
504  if (Latb532)          cfg%out_list(i) = 'atb532'
505  i = i+1
506  if (Lboxptopisccp)    cfg%out_list(i) = 'boxptopisccp'
507  i = i+1
508  if (Lboxtauisccp)     cfg%out_list(i) = 'boxtauisccp'
509  i = i+1
510  if (LcfadDbze94)      cfg%out_list(i) = 'cfadDbze94'
511  i = i+1
512  if (LcfadLidarsr532)  cfg%out_list(i) = 'cfadLidarsr532'
513  i = i+1
514  if (Lclcalipso2)      cfg%out_list(i) = 'clcalipso2'
515  i = i+1
516  if (Lclcalipso)       cfg%out_list(i) = 'clcalipso'
517  i = i+1
518  if (Lclhcalipso)      cfg%out_list(i) = 'clhcalipso'
519  i = i+1
520  if (Lclisccp)         cfg%out_list(i) = 'clisccp'
521  i = i+1
522  if (Lcllcalipso)      cfg%out_list(i) = 'cllcalipso'
523  i = i+1
524  if (Lclmcalipso)      cfg%out_list(i) = 'clmcalipso'
525  i = i+1
526  if (Lcltcalipso)      cfg%out_list(i) = 'cltcalipso'
527  i = i+1
528
529  if (Lcllcalipsoice)      cfg%out_list(i) = 'cllcalipsoice'
530  i = i+1
531  if (Lclmcalipsoice)      cfg%out_list(i) = 'clmcalipsoice'
532  i = i+1
533  if (Lclhcalipsoice)      cfg%out_list(i) = 'clhcalipsoice'
534  i = i+1
535  if (Lcltcalipsoice)      cfg%out_list(i) = 'cltcalipsoice'
536  i = i+1
537  if (Lcllcalipsoliq)      cfg%out_list(i) = 'cllcalipsoliq'
538  i = i+1
539  if (Lclmcalipsoliq)      cfg%out_list(i) = 'clmcalipsoliq'
540  i = i+1
541  if (Lclhcalipsoliq)      cfg%out_list(i) = 'clhcalipsoliq'
542  i = i+1
543  if (Lcltcalipsoliq)      cfg%out_list(i) = 'cltcalipsoliq'
544  i = i+1
545  if (Lcllcalipsoun)      cfg%out_list(i) = 'cllcalipsoun'
546  i = i+1
547  if (Lclmcalipsoun)      cfg%out_list(i) = 'clmcalipsoun'
548  i = i+1
549  if (Lclhcalipsoun)      cfg%out_list(i) = 'clhcalipsoun'
550  i = i+1
551  if (Lcltcalipsoun)      cfg%out_list(i) = 'cltcalipsoun'
552  i = i+1
553
554  if (Lclcalipsoice)       cfg%out_list(i) = 'clcalipsoice'
555  i = i+1
556  if (Lclcalipsoliq)       cfg%out_list(i) = 'clcalipsoliq'
557  i = i+1
558  if (Lclcalipsoun)       cfg%out_list(i) = 'clcalipsoun'
559  i = i+1
560
561  if (Lclcalipsotmp)       cfg%out_list(i) = 'clcalipsotmp'
562  i = i+1
563  if (Lclcalipsotmpice)       cfg%out_list(i) = 'clcalipsotmpice'
564  i = i+1
565  if (Lclcalipsotmpliq)       cfg%out_list(i) = 'clcalipsotmpliq'
566  i = i+1
567  if (Lclcalipsotmpun)       cfg%out_list(i) = 'clcalipsotmpun'
568  i = i+1
569  if (Lcltlidarradar)   cfg%out_list(i) = 'cltlidarradar'
570  i = i+1
571  if (Lpctisccp)        cfg%out_list(i) = 'pctisccp'
572  i = i+1
573  if (Ldbze94)          cfg%out_list(i) = 'dbze94'
574  i = i+1
575  if (Ltauisccp)        cfg%out_list(i) = 'tauisccp'
576  i = i+1
577  if (Lcltisccp)        cfg%out_list(i) = 'cltisccp'
578  i = i+1
579  if (Ltoffset)         cfg%out_list(i) = 'toffset'
580  i = i+1
581  if (LparasolRefl)     cfg%out_list(i) = 'parasolRefl'
582  i = i+1
583  if (LclMISR)          cfg%out_list(i) = 'clMISR'
584  i = i+1
585  if (Lmeantbisccp)     cfg%out_list(i) = 'meantbisccp'
586  i = i+1
587  if (Lmeantbclrisccp)  cfg%out_list(i) = 'meantbclrisccp'
588  i = i+1
589  if (Lfracout)         cfg%out_list(i) = 'fracout'
590  i = i+1
591  if (LlidarBetaMol532) cfg%out_list(i) = 'lidarBetaMol532'
592  i = i+1
593  if (Ltbrttov)         cfg%out_list(i) = 'tbrttov'
594  i = i+1
595  if (Lcltmodis)        cfg%out_list(i) = 'cltmodis'
596  i = i+1
597  if (Lclwmodis)        cfg%out_list(i) = 'clwmodis'
598  i = i+1
599  if (Lclimodis)        cfg%out_list(i) = 'climodis'
600  i = i+1
601  if (Lclhmodis)        cfg%out_list(i) = 'clhmodis'
602  i = i+1
603  if (Lclmmodis)        cfg%out_list(i) = 'clmmodis'
604  i = i+1
605  if (Lcllmodis)        cfg%out_list(i) = 'cllmodis'
606  i = i+1
607  if (Ltautmodis)       cfg%out_list(i) = 'tautmodis'
608  i = i+1
609  if (Ltauwmodis)       cfg%out_list(i) = 'tauwmodis'
610  i = i+1
611  if (Ltauimodis)       cfg%out_list(i) = 'tauimodis'
612  i = i+1
613  if (Ltautlogmodis)    cfg%out_list(i) = 'tautlogmodis'
614  i = i+1
615  if (Ltauwlogmodis)    cfg%out_list(i) = 'tauwlogmodis'
616  i = i+1
617  if (Ltauilogmodis)    cfg%out_list(i) = 'tauilogmodis'
618  i = i+1
619  if (Lreffclwmodis)    cfg%out_list(i) = 'reffclwmodis'
620  i = i+1
621  if (Lreffclimodis)    cfg%out_list(i) = 'reffclimodis'
622  i = i+1
623  if (Lpctmodis)        cfg%out_list(i) = 'pctmodis'
624  i = i+1
625  if (Llwpmodis)        cfg%out_list(i) = 'lwpmodis'
626  i = i+1
627  if (Liwpmodis)        cfg%out_list(i) = 'iwpmodis'
628  i = i+1
629  if (Lclmodis)         cfg%out_list(i) = 'clmodis'
630  i = i+1
631  if (Lcrimodis)         cfg%out_list(i) = 'crimodis'
632  i = i+1
633  if (Lcrlmodis)         cfg%out_list(i) = 'crlmodis'
634
635  i = i+1                                                            !OPAQ
636  if (Lclopaquecalipso)         cfg%out_list(i) = 'clopaquecalipso'  !OPAQ
637  i = i+1                                                            !OPAQ
638  if (Lclthincalipso)           cfg%out_list(i) = 'clthincalipso'    !OPAQ
639  i = i+1                                                            !OPAQ
640  if (Lclzopaquecalipso)        cfg%out_list(i) = 'clzopaquecalipso' !OPAQ
641  i = i+1                                                            !OPAQ
642  if (Lclcalipsoopaque)         cfg%out_list(i) = 'clcalipsoopaque'  !OPAQ
643  i = i+1                                                            !OPAQ
644  if (Lclcalipsothin)           cfg%out_list(i) = 'clcalipsothin'    !OPAQ
645  i = i+1                                                            !OPAQ
646  if (Lclcalipsozopaque)        cfg%out_list(i) = 'clcalipsozopaque' !OPAQ
647  i = i+1                                                            !OPAQ
648  if (Lclcalipsoopacity)        cfg%out_list(i) = 'clcalipsoopacity' !OPAQ
649  i = i+1                                                            !TIBO
650  if (LprofSR)                  cfg%out_list(i) = 'profSR'           !TIBO
651  i = i+1                                                            !TIBO
652  if (Lproftemp)                cfg%out_list(i) = 'proftemp'         !TIBO
653   
654  if (i /= N_OUT_LIST) then
655     print *, 'COSP_IO: wrong number of output diagnostics'
656     print *, i,N_OUT_LIST
657     stop
658  endif
659
660  ! Copy diagnostic flags to cfg structure
661  ! ISCCP simulator 
662  cfg%Lalbisccp = Lalbisccp
663  cfg%Latb532 = Latb532
664  cfg%Lboxptopisccp = Lboxptopisccp
665  cfg%Lboxtauisccp = Lboxtauisccp
666  cfg%Lmeantbisccp = Lmeantbisccp
667  cfg%Lmeantbclrisccp = Lmeantbclrisccp
668  cfg%Lclisccp = Lclisccp
669  cfg%Lpctisccp = Lpctisccp
670  cfg%Ltauisccp = Ltauisccp
671  cfg%Lcltisccp = Lcltisccp
672  ! CloudSat simulator 
673  cfg%Ldbze94 = Ldbze94
674  cfg%LcfadDbze94 = LcfadDbze94
675  ! CALIPSO/PARASOL simulator 
676  cfg%LcfadLidarsr532 = LcfadLidarsr532
677  cfg%Lclcalipso2 = Lclcalipso2
678  cfg%Lclcalipso = Lclcalipso
679  cfg%Lclhcalipso = Lclhcalipso
680  cfg%Lcllcalipso = Lcllcalipso
681  cfg%Lclmcalipso = Lclmcalipso
682  cfg%Lcltcalipso = Lcltcalipso
683  cfg%Lclhcalipsoice = Lclhcalipsoice
684  cfg%Lcllcalipsoice = Lcllcalipsoice
685  cfg%Lclmcalipsoice = Lclmcalipsoice
686  cfg%Lcltcalipsoice = Lcltcalipsoice
687  cfg%Lclhcalipsoliq = Lclhcalipsoliq
688  cfg%Lcllcalipsoliq = Lcllcalipsoliq
689  cfg%Lclmcalipsoliq = Lclmcalipsoliq
690  cfg%Lcltcalipsoliq = Lcltcalipsoliq
691  cfg%Lclhcalipsoun = Lclhcalipsoun
692  cfg%Lcllcalipsoun = Lcllcalipsoun
693  cfg%Lclmcalipsoun = Lclmcalipsoun
694  cfg%Lcltcalipsoun = Lcltcalipsoun
695  cfg%Lclcalipsoice = Lclcalipsoice
696  cfg%Lclcalipsoliq = Lclcalipsoliq
697  cfg%Lclcalipsoun = Lclcalipsoun
698  cfg%Lclcalipsotmp = Lclcalipsotmp
699  cfg%Lclcalipsotmpice = Lclcalipsotmpice
700  cfg%Lclcalipsotmpliq = Lclcalipsotmpliq
701  cfg%Lclcalipsotmpun = Lclcalipsotmpun
702  cfg%Lcltlidarradar = Lcltlidarradar
703  cfg%LparasolRefl = LparasolRefl
704  cfg%Lclopaquecalipso  = Lclopaquecalipso  !OPAQ
705  cfg%Lclthincalipso    = Lclthincalipso    !OPAQ
706  cfg%Lclzopaquecalipso = Lclzopaquecalipso !OPAQ
707  cfg%Lclcalipsoopaque  = Lclcalipsoopaque  !OPAQ
708  cfg%Lclcalipsothin    = Lclcalipsothin    !OPAQ
709  cfg%Lclcalipsozopaque = Lclcalipsozopaque !OPAQ
710  cfg%Lclcalipsoopacity = Lclcalipsoopacity !OPAQ
711  cfg%LprofSR           = LprofSR           !TIBO
712  cfg%Lproftemp         = Lproftemp         !TIBO
713  ! MISR simulator 
714  cfg%LclMISR = LclMISR
715  ! Other
716  cfg%Ltoffset = Ltoffset
717  cfg%Lfracout = Lfracout
718  cfg%LlidarBetaMol532 = LlidarBetaMol532
719  ! RTTOV
720  cfg%Ltbrttov = Ltbrttov
721  ! MODIS simulator 
722  cfg%Lcltmodis=Lcltmodis
723  cfg%Lclwmodis=Lclwmodis
724  cfg%Lclimodis=Lclimodis
725  cfg%Lclhmodis=Lclhmodis
726  cfg%Lclmmodis=Lclmmodis
727  cfg%Lcllmodis=Lcllmodis
728  cfg%Ltautmodis=Ltautmodis
729  cfg%Ltauwmodis=Ltauwmodis
730  cfg%Ltauimodis=Ltauimodis
731  cfg%Ltautlogmodis=Ltautlogmodis
732  cfg%Ltauwlogmodis=Ltauwlogmodis
733  cfg%Ltauilogmodis=Ltauilogmodis
734  cfg%Lreffclwmodis=Lreffclwmodis
735  cfg%Lreffclimodis=Lreffclimodis
736  cfg%Lpctmodis=Lpctmodis
737  cfg%Llwpmodis=Llwpmodis
738  cfg%Liwpmodis=Liwpmodis
739  cfg%Lclmodis=Lclmodis
740  cfg%Lcrimodis=Lcrimodis
741  cfg%Lcrlmodis=Lcrlmodis
742 
743 END SUBROUTINE READ_COSP_OUTPUT_NL
744
745 SUBROUTINE read_xiosfieldactive(cfg)
746
747    USE MOD_COSP_CONSTANTS
748    USE MOD_COSP_TYPES
749#ifdef CPP_XIOS
750    USE xios, ONLY: xios_field_is_active
751#endif
752  implicit none
753  type(cosp_config),intent(out) :: cfg
754  integer :: i
755
756#ifdef CPP_XIOS
757
758 logical :: Lradar_sim,Llidar_sim,Lisccp_sim,Lmodis_sim,Lmisr_sim,Lrttov_sim, Lstats, &
759             Lalbisccp,Latb532,Lboxptopisccp,Lboxtauisccp,LcfadDbze94, &
760             LcfadLidarsr532,Lclcalipso2,Lclcalipso,Lclhcalipso,Lclisccp,Lcllcalipso, &
761             Lclmcalipso,Lcltcalipso,Lcltlidarradar,Lpctisccp,Ldbze94,Ltauisccp,Lcltisccp, &
762             Lclcalipsoliq,Lclcalipsoice,Lclcalipsoun, &
763             Lclcalipsotmp,Lclcalipsotmpliq,Lclcalipsotmpice,Lclcalipsotmpun, &
764             Lcltcalipsoliq,Lcltcalipsoice,Lcltcalipsoun, &
765             Lclhcalipsoliq,Lclhcalipsoice,Lclhcalipsoun, &
766             Lclmcalipsoliq,Lclmcalipsoice,Lclmcalipsoun, &
767             Lcllcalipsoliq,Lcllcalipsoice,Lcllcalipsoun, &
768             Ltoffset,LparasolRefl,LclMISR,Lmeantbisccp,Lmeantbclrisccp, &
769             Lfracout,LlidarBetaMol532,Ltbrttov, &
770             Lcltmodis,Lclwmodis,Lclimodis,Lclhmodis,Lclmmodis,Lcllmodis, &
771             Ltautmodis,Ltauwmodis,Ltauimodis,Ltautlogmodis, &
772             Ltauwlogmodis,Ltauilogmodis,Lreffclwmodis,Lreffclimodis,Lpctmodis,Llwpmodis, &
773             Liwpmodis,Lclmodis,Lcrimodis,Lcrlmodis,Lclopaquecalipso,Lclthincalipso, &
774             Lclzopaquecalipso,Lclcalipsoopaque,Lclcalipsothin,Lclcalipsozopaque,Lclcalipsoopacity, &
775             LprofSR,Lproftemp
776       
777  character(len=32) :: out_list(N_OUT_LIST)
778
779  do i=1,N_OUT_LIST
780    cfg%out_list(i)=''
781  enddo
782
783    LcfadDbze94   = .false.
784    Lclcalipso2    = .false.
785    Lcltlidarradar = .false. ! Needs radar & lidar
786    Ldbze94        = .false.
787    Lclcalipso2    = .false. ! Needs radar & lidar
788
789    Latb532          = .false.
790    LcfadLidarsr532  = .false.
791    Lclcalipso       = .false.
792    Lclhcalipso      = .false.
793    Lcllcalipso      = .false.
794    Lclmcalipso      = .false.
795    Lcltcalipso      = .false.
796    LparasolRefl     = .false.
797    LlidarBetaMol532 = .false.
798    Lclcalipsoliq       = .false.
799    Lclcalipsoice       = .false.
800    Lclcalipsoun        = .false.
801    Lclcalipsotmp       = .false.
802    Lclcalipsotmpun     = .false.
803    Lclcalipsotmpliq    = .false.
804    Lclcalipsotmpice    = .false.
805    Lclhcalipsoliq      = .false.
806    Lcllcalipsoliq      = .false.
807    Lclmcalipsoliq      = .false.
808    Lcltcalipsoliq      = .false.
809    Lclhcalipsoice      = .false.
810    Lcllcalipsoice      = .false.
811    Lclmcalipsoice      = .false.
812    Lcltcalipsoice      = .false.
813    Lclhcalipsoun       = .false.
814    Lcllcalipsoun       = .false.
815    Lclmcalipsoun       = .false.
816    Lcltcalipsoun       = .false.
817    Lclopaquecalipso    = .false. !OPAQ
818    Lclthincalipso      = .false. !OPAQ
819    Lclzopaquecalipso   = .false. !OPAQ
820    Lclcalipsoopaque    = .false. !OPAQ
821    Lclcalipsothin      = .false. !OPAQ
822    Lclcalipsozopaque   = .false. !OPAQ
823    Lclcalipsoopacity   = .false. !OPAQ
824    LprofSR             = .false. !TIBO
825    Lproftemp           = .false. !TIBO
826
827    Lalbisccp       = .false.
828    Lboxptopisccp   = .false.
829    Lboxtauisccp    = .false.
830    Lclisccp        = .false.
831    Lpctisccp       = .false.
832    Ltauisccp       = .false.
833    Lcltisccp       = .false.
834    Lmeantbisccp    = .false.
835    Lmeantbclrisccp = .false.
836
837    LclMISR = .false.
838
839    Ltbrttov = .false.
840
841    Lcltmodis=.false.
842    Lclwmodis=.false.
843    Lclimodis=.false.
844    Lclhmodis=.false.
845    Lclmmodis=.false.
846    Lcllmodis=.false.
847    Ltautmodis=.false.
848    Ltauwmodis=.false.
849    Ltauimodis=.false.
850    Ltautlogmodis=.false.
851    Ltauwlogmodis=.false.
852    Ltauilogmodis=.false.
853    Lreffclwmodis=.false.
854    Lreffclimodis=.false.
855    Lpctmodis=.false.
856    Llwpmodis=.false.
857    Liwpmodis=.false.
858    Lclmodis=.false.
859    Lcrimodis=.false.
860    Lcrlmodis=.false.
861
862    Lradar_sim=.false.
863    Llidar_sim=.false.
864    Lisccp_sim=.false.
865    Lmodis_sim=.false.
866    Lmisr_sim=.false.
867    Lrttov_sim=.false.
868
869    Lstats=.false.
870!    Ltoffset=.false.
871!    Lfracout=.false.
872!    Lwrite_output=.false.
873
874  IF (is_master) THEN
875! VEREFIER LES CHAMPS DEMANDES DANS .XML
876! 2. Si champs active dans .xml alors mettre la cles de sortie en true
877 IF (xios_field_is_active("cllcalipso")) Lcllcalipso=.TRUE.
878 IF (xios_field_is_active("clmcalipso")) Lclmcalipso=.TRUE.
879 IF (xios_field_is_active("clhcalipso")) Lclhcalipso=.TRUE.
880 IF (xios_field_is_active("cltcalipso")) Lcltcalipso=.TRUE.
881 IF (xios_field_is_active("cllcalipsoice")) Lcllcalipsoice=.TRUE.
882 IF (xios_field_is_active("clmcalipsoice")) Lclmcalipsoice=.TRUE.
883 IF (xios_field_is_active("clhcalipsoice")) Lclhcalipsoice=.TRUE.
884 IF (xios_field_is_active("cltcalipsoice")) Lcltcalipsoice=.TRUE.
885 IF (xios_field_is_active("cllcalipsoliq")) Lcllcalipsoliq=.TRUE.
886 IF (xios_field_is_active("clmcalipsoliq")) Lclmcalipsoliq=.TRUE.
887 IF (xios_field_is_active("clhcalipsoliq")) Lclhcalipsoliq=.TRUE.
888 IF (xios_field_is_active("cltcalipsoliq")) Lcltcalipsoliq=.TRUE.
889 IF (xios_field_is_active("cllcalipsoun")) Lcllcalipsoun=.TRUE.
890 IF (xios_field_is_active("clmcalipsoun")) Lclmcalipsoun=.TRUE.
891 IF (xios_field_is_active("clhcalipsoun")) Lclhcalipsoun=.TRUE.
892 IF (xios_field_is_active("cltcalipsoun")) Lcltcalipsoun=.TRUE.
893 IF (xios_field_is_active("clcalipso")) Lclcalipso=.TRUE.
894 IF (xios_field_is_active("clcalipsoice")) Lclcalipsoice=.TRUE.
895 IF (xios_field_is_active("clcalipsoliq")) Lclcalipsoliq=.TRUE.
896 IF (xios_field_is_active("clcalipsoun")) Lclcalipsoun=.TRUE.
897 IF (xios_field_is_active("clcalipsotmp")) Lclcalipsotmp=.TRUE.
898 IF (xios_field_is_active("clcalipsotmpice")) Lclcalipsotmpice=.TRUE.
899 IF (xios_field_is_active("clcalipsotmpliq")) Lclcalipsotmpliq=.TRUE.
900 IF (xios_field_is_active("clcalipsotmpun")) Lclcalipsotmpun=.TRUE.
901 IF (xios_field_is_active("parasol_refl")) LparasolRefl=.TRUE.
902! IF (xios_field_is_active("parasol_crefl")) cfg%LparasolRefl=.TRUE.
903! IF (xios_field_is_active("Ncrefl")) cfg%LparasolRefl=.TRUE.
904 IF (xios_field_is_active("cfad_lidarsr532")) LcfadLidarsr532=.TRUE.
905 IF (xios_field_is_active("atb532")) Latb532=.TRUE.
906 IF (xios_field_is_active("beta_mol532")) LlidarBetaMol532=.TRUE.
907 IF (xios_field_is_active("clopaquecalipso")) Lclopaquecalipso=.TRUE.
908 IF (xios_field_is_active("clthincalipso")) Lclthincalipso=.TRUE.
909 IF (xios_field_is_active("clzopaquecalipso")) Lclzopaquecalipso=.TRUE.
910 IF (xios_field_is_active("clcalipsoopaque")) Lclcalipsoopaque=.TRUE.
911 IF (xios_field_is_active("clcalipsothin")) Lclcalipsothin=.TRUE.
912 IF (xios_field_is_active("clcalipsozopaque")) Lclcalipsozopaque=.TRUE.
913 IF (xios_field_is_active("clcalipsoopacity")) Lclcalipsoopacity=.TRUE.
914 IF (xios_field_is_active("proftemp")) Lproftemp=.TRUE.
915 IF (xios_field_is_active("profSR")) LprofSR=.TRUE.
916!!!! 38 champ Calipso
917
918 IF (xios_field_is_active("cfadDbze94")) LcfadDbze94=.TRUE.
919 IF (xios_field_is_active("dbze94")) Ldbze94=.TRUE.
920!!! 2 champs CLOUDSAT
921
922 IF (xios_field_is_active("cltlidarradar")) Lcltlidarradar=.TRUE.
923 IF (xios_field_is_active("clcalipso2")) Lclcalipso2=.TRUE.
924!!! 2 champs CLOUDSAT et CALIPSO
925
926 IF (xios_field_is_active("clisccp2")) Lclisccp=.TRUE.
927 IF (xios_field_is_active("boxtauisccp")) Lboxtauisccp=.TRUE.
928 IF (xios_field_is_active("boxptopisccp")) Lboxptopisccp=.TRUE.
929 IF (xios_field_is_active("tclisccp")) Lcltisccp=.TRUE.
930 IF (xios_field_is_active("ctpisccp")) Lpctisccp=.TRUE.
931 IF (xios_field_is_active("tauisccp")) Ltauisccp=.TRUE.
932 IF (xios_field_is_active("albisccp")) Lalbisccp=.TRUE.
933 IF (xios_field_is_active("meantbisccp")) Lmeantbisccp=.TRUE.
934 IF (xios_field_is_active("meantbclrisccp")) Lmeantbclrisccp=.TRUE.
935!!! 9 champs ISCCP
936
937 IF (xios_field_is_active("clMISR")) LclMISR=.TRUE.
938!!! 1 champs MISR
939
940 IF (xios_field_is_active("cllmodis")) Lcllmodis=.TRUE.
941 IF (xios_field_is_active("clmmodis")) Lclmmodis=.TRUE.
942 IF (xios_field_is_active("clhmodis")) Lclhmodis=.TRUE.
943 IF (xios_field_is_active("cltmodis")) Lcltmodis=.TRUE.
944 IF (xios_field_is_active("clwmodis")) Lclwmodis=.TRUE.
945 IF (xios_field_is_active("climodis")) Lclimodis=.TRUE.
946 IF (xios_field_is_active("tautmodis")) Ltautmodis=.TRUE.
947 IF (xios_field_is_active("tauwmodis")) Ltauwmodis=.TRUE.
948 IF (xios_field_is_active("tauimodis")) Ltauimodis=.TRUE.
949 IF (xios_field_is_active("tautlogmodis")) Ltautlogmodis=.TRUE.
950 IF (xios_field_is_active("tauilogmodis")) Ltauilogmodis=.TRUE.
951 IF (xios_field_is_active("tauwlogmodis")) Ltauwlogmodis=.TRUE.
952 IF (xios_field_is_active("reffclwmodis")) Lreffclwmodis=.TRUE.
953 IF (xios_field_is_active("reffclimodis")) Lreffclimodis=.TRUE.
954 IF (xios_field_is_active("pctmodis")) Lpctmodis=.TRUE.
955 IF (xios_field_is_active("lwpmodis")) Llwpmodis=.TRUE.
956 IF (xios_field_is_active("iwpmodis")) Liwpmodis=.TRUE.
957 IF (xios_field_is_active("clmodis")) Lclmodis=.TRUE.
958 IF (xios_field_is_active("crimodis")) Lcrimodis=.TRUE.
959 IF (xios_field_is_active("crlmodis")) Lcrlmodis=.TRUE.
960!!! 20 champs MODIS
961! IF (xios_field_is_active("tbrttov")) cfg%Ltbrttov=.TRUE.
962
963! 2.  si champs demande alors activer le simulateur correspondant
964   IF (xios_field_is_active("cllcalipso").OR. &
965       xios_field_is_active("clmcalipso").OR. &
966       xios_field_is_active("clhcalipso").OR. &
967       xios_field_is_active("cltcalipso").OR. &
968       xios_field_is_active("cllcalipsoice").OR. &
969       xios_field_is_active("clmcalipsoice").OR. &
970       xios_field_is_active("clhcalipsoice").OR. &
971       xios_field_is_active("cltcalipsoice").OR. &
972       xios_field_is_active("cllcalipsoliq").OR. &
973       xios_field_is_active("clmcalipsoliq").OR. &
974       xios_field_is_active("clhcalipsoliq").OR. &
975       xios_field_is_active("cltcalipsoliq").OR. &
976       xios_field_is_active("cllcalipsoun").OR. &
977       xios_field_is_active("clmcalipsoun").OR. &
978       xios_field_is_active("clhcalipsoun").OR. &
979       xios_field_is_active("cltcalipsoun").OR. &
980       xios_field_is_active("clcalipso").OR. &
981       xios_field_is_active("clcalipsoice").OR. &
982       xios_field_is_active("clcalipsoliq").OR. &
983       xios_field_is_active("clcalipsoun").OR. &
984       xios_field_is_active("clcalipsotmp").OR. &
985       xios_field_is_active("clcalipsotmpice").OR. &
986       xios_field_is_active("clcalipsotmpliq").OR. &
987       xios_field_is_active("clcalipsotmpun").OR. &
988       xios_field_is_active("parasol_refl").OR. &
989       xios_field_is_active("cfad_lidarsr532").OR. &
990       xios_field_is_active("atb532").OR. &
991       xios_field_is_active("beta_mol532").OR. &
992       xios_field_is_active("clopaquecalipso").OR. &
993       xios_field_is_active("clthincalipso").OR. &
994       xios_field_is_active("clzopaquecalipso").OR. &
995       xios_field_is_active("clcalipsoopaque").OR. &
996       xios_field_is_active("clcalipsothin").OR. &
997       xios_field_is_active("clcalipsozopaque").OR. &
998       xios_field_is_active("clcalipsoopacity").OR. &
999       xios_field_is_active("proftemp").OR. &
1000       xios_field_is_active("profSR")) Llidar_sim=.TRUE.
1001
1002    IF (xios_field_is_active("cfadDbze94").OR. &
1003      xios_field_is_active("dbze94")) & Lradar_sim=.TRUE.
1004
1005    IF (xios_field_is_active("cltlidarradar").OR. &
1006      xios_field_is_active("clcalipso2")) THEN
1007               Lradar_sim=.TRUE.
1008               Llidar_sim=.TRUE.
1009    ENDIF
1010
1011    IF (xios_field_is_active("clisccp2").OR. &
1012       xios_field_is_active("boxtauisccp").OR. &
1013       xios_field_is_active("boxptopisccp").OR. &
1014       xios_field_is_active("tclisccp").OR. &
1015       xios_field_is_active("ctpisccp").OR. &
1016       xios_field_is_active("tauisccp").OR. &
1017       xios_field_is_active("albisccp").OR. &
1018       xios_field_is_active("meantbisccp").OR. &
1019       xios_field_is_active("meantbclrisccp")) Lisccp_sim=.TRUE.
1020
1021    IF (xios_field_is_active("clMISR")) Lmisr_sim=.TRUE.
1022
1023    IF (xios_field_is_active("cllmodis").OR. &
1024       xios_field_is_active("clmmodis").OR. &
1025       xios_field_is_active("clhmodis").OR. &
1026       xios_field_is_active("cltmodis").OR. &
1027       xios_field_is_active("clwmodis").OR. &
1028       xios_field_is_active("climodis").OR. &
1029       xios_field_is_active("tautmodis").OR. &
1030       xios_field_is_active("tauwmodis").OR. &
1031       xios_field_is_active("tauimodis").OR. &
1032       xios_field_is_active("tautlogmodis").OR. &
1033       xios_field_is_active("tauilogmodis").OR. &
1034       xios_field_is_active("tauwlogmodis").OR. &
1035       xios_field_is_active("reffclwmodis").OR. &
1036       xios_field_is_active("reffclimodis").OR. &
1037       xios_field_is_active("pctmodis").OR. &
1038       xios_field_is_active("lwpmodis").OR. &
1039       xios_field_is_active("iwpmodis").OR. &
1040       xios_field_is_active("clmodis").OR. &
1041       xios_field_is_active("crimodis").OR. &
1042       xios_field_is_active("crlmodis")) Lmodis_sim=.TRUE.
1043
1044  ENDIF !   (is_master)
1045
1046!$OMP BARRIER
1047
1048  CALL bcast(Lradar_sim)
1049  CALL bcast(Llidar_sim)
1050  CALL bcast(Lisccp_sim)
1051  CALL bcast(Lmodis_sim)
1052  CALL bcast(Lmisr_sim)
1053  CALL bcast(Lrttov_sim)
1054
1055  CALL bcast(Lstats)
1056
1057  CALL bcast(Lalbisccp)
1058  CALL bcast(Latb532)
1059  CALL bcast(Lboxptopisccp)
1060  CALL bcast(Lboxtauisccp)
1061  CALL bcast(LcfadDbze94)
1062  CALL bcast(LcfadLidarsr532)
1063  CALL bcast(Lclcalipso2)
1064  CALL bcast(Lclcalipso)
1065  CALL bcast(Lclhcalipso)
1066  CALL bcast(Lclcalipsoliq)
1067  CALL bcast(Lclcalipsoice)
1068  CALL bcast(Lclcalipsoun)
1069  CALL bcast(Lclcalipsotmp)
1070  CALL bcast(Lclcalipsotmpliq)
1071  CALL bcast(Lclcalipsotmpice)
1072  CALL bcast(Lclcalipsotmpun)
1073  CALL bcast(Lcltcalipsoliq)
1074  CALL bcast(Lcltcalipsoice)
1075  CALL bcast(Lcltcalipsoun)
1076  CALL bcast(Lclhcalipsoliq)
1077  CALL bcast(Lclhcalipsoice)
1078  CALL bcast(Lclhcalipsoun)
1079  CALL bcast(Lclmcalipsoliq)
1080  CALL bcast(Lclmcalipsoice)
1081  CALL bcast(Lclmcalipsoun)
1082  CALL bcast(Lcllcalipsoliq)
1083  CALL bcast(Lcllcalipsoice)
1084  CALL bcast(Lcllcalipsoun)
1085  CALL bcast(Lclisccp)
1086  CALL bcast(Lcllcalipso)
1087  CALL bcast(Lclmcalipso)
1088  CALL bcast(Lcltcalipso)
1089  CALL bcast(Lcltlidarradar)
1090  CALL bcast(Lpctisccp)
1091  CALL bcast(Ldbze94)
1092  CALL bcast(Ltauisccp)
1093  CALL bcast(Lcltisccp)
1094  CALL bcast(LparasolRefl)
1095  CALL bcast(LclMISR)
1096  CALL bcast(Lmeantbisccp)
1097  CALL bcast(Lmeantbclrisccp)
1098  CALL bcast(Lfracout)
1099  CALL bcast(LlidarBetaMol532)
1100  CALL bcast(Lcltmodis)
1101  CALL bcast(Lclwmodis)
1102  CALL bcast(Lclimodis)
1103  CALL bcast(Lclhmodis)
1104  CALL bcast(Lclmmodis)
1105  CALL bcast(Lcllmodis)
1106  CALL bcast(Ltautmodis)
1107  CALL bcast(Ltauwmodis)
1108  CALL bcast(Ltauimodis)
1109  CALL bcast(Ltautlogmodis)
1110  CALL bcast(Ltauwlogmodis)
1111  CALL bcast(Ltauilogmodis)
1112  CALL bcast(Lreffclwmodis)
1113  CALL bcast(Lreffclimodis)
1114  CALL bcast(Lpctmodis)
1115  CALL bcast(Llwpmodis)
1116  CALL bcast(Liwpmodis)
1117  CALL bcast(Lclmodis)
1118  CALL bcast(Ltbrttov)
1119  CALL bcast(Lcrimodis)
1120  CALL bcast(Lcrlmodis)
1121  CALL bcast(Lclopaquecalipso)  !OPAQ
1122  CALL bcast(Lclthincalipso)    !OPAQ
1123  CALL bcast(Lclzopaquecalipso) !OPAQ
1124  CALL bcast(Lclcalipsoopaque)  !OPAQ
1125  CALL bcast(Lclcalipsothin)    !OPAQ
1126  CALL bcast(Lclcalipsozopaque) !OPAQ
1127  CALL bcast(Lclcalipsoopacity) !OPAQ
1128  CALL bcast(LprofSR)           !TIBO
1129  CALL bcast(Lproftemp)         !TIBO
1130
1131
1132    if (Lmodis_sim) Lisccp_sim = .true.
1133    if ((Lradar_sim).or.(Llidar_sim).or.(Lisccp_sim)) Lstats = .true.
1134!    IF (xios_field_is_active("tbrttov")) cfg%Lrttov_sim=.TRUE.
1135
1136  ! Copy diagnostic flags to cfg structure
1137  ! ISCCP simulator 
1138  cfg%Lalbisccp = Lalbisccp
1139  cfg%Latb532 = Latb532
1140  cfg%Lboxptopisccp = Lboxptopisccp
1141  cfg%Lboxtauisccp = Lboxtauisccp
1142  cfg%Lmeantbisccp = Lmeantbisccp
1143  cfg%Lmeantbclrisccp = Lmeantbclrisccp
1144  cfg%Lclisccp = Lclisccp
1145  cfg%Lpctisccp = Lpctisccp
1146  cfg%Ltauisccp = Ltauisccp
1147  cfg%Lcltisccp = Lcltisccp
1148
1149! CloudSat simulator 
1150  cfg%Ldbze94 = Ldbze94
1151  cfg%LcfadDbze94 = LcfadDbze94
1152
1153! Cloudsat et Calipso
1154  cfg%Lclcalipso2 = Lclcalipso2
1155  cfg%Lcltlidarradar = Lcltlidarradar
1156
1157! CALIPSO/PARASOL simulator 
1158  cfg%LcfadLidarsr532 = LcfadLidarsr532
1159  cfg%Lclcalipso = Lclcalipso
1160  cfg%Lclhcalipso = Lclhcalipso
1161  cfg%Lcllcalipso = Lcllcalipso
1162  cfg%Lclmcalipso = Lclmcalipso
1163  cfg%Lcltcalipso = Lcltcalipso
1164  cfg%Lclhcalipsoice = Lclhcalipsoice
1165  cfg%Lcllcalipsoice = Lcllcalipsoice
1166  cfg%Lclmcalipsoice = Lclmcalipsoice
1167  cfg%Lcltcalipsoice = Lcltcalipsoice
1168  cfg%Lclhcalipsoliq = Lclhcalipsoliq
1169  cfg%Lcllcalipsoliq = Lcllcalipsoliq
1170  cfg%Lclmcalipsoliq = Lclmcalipsoliq
1171  cfg%Lcltcalipsoliq = Lcltcalipsoliq
1172  cfg%Lclhcalipsoun = Lclhcalipsoun
1173  cfg%Lcllcalipsoun = Lcllcalipsoun
1174  cfg%Lclmcalipsoun = Lclmcalipsoun
1175  cfg%Lcltcalipsoun = Lcltcalipsoun
1176  cfg%Lclcalipsoice = Lclcalipsoice
1177  cfg%Lclcalipsoliq = Lclcalipsoliq
1178  cfg%Lclcalipsoun = Lclcalipsoun
1179  cfg%Lclcalipsotmp = Lclcalipsotmp
1180  cfg%Lclcalipsotmpice = Lclcalipsotmpice
1181  cfg%Lclcalipsotmpliq = Lclcalipsotmpliq
1182  cfg%Lclcalipsotmpun = Lclcalipsotmpun
1183  cfg%LparasolRefl = LparasolRefl
1184  cfg%Lclopaquecalipso  = Lclopaquecalipso  !OPAQ
1185  cfg%Lclthincalipso    = Lclthincalipso    !OPAQ
1186  cfg%Lclzopaquecalipso = Lclzopaquecalipso !OPAQ
1187  cfg%Lclcalipsoopaque  = Lclcalipsoopaque  !OPAQ
1188  cfg%Lclcalipsothin    = Lclcalipsothin    !OPAQ
1189  cfg%Lclcalipsozopaque = Lclcalipsozopaque !OPAQ
1190  cfg%Lclcalipsoopacity = Lclcalipsoopacity !OPAQ
1191  cfg%LprofSR           = LprofSR           !TIBO
1192  cfg%Lproftemp         = Lproftemp         !TIBO
1193  cfg%LlidarBetaMol532 = LlidarBetaMol532
1194
1195! MISR simulator 
1196  cfg%LclMISR = LclMISR
1197
1198! RTTOV
1199  cfg%Ltbrttov = Ltbrttov
1200
1201! MODIS simulator 
1202  cfg%Lcltmodis=Lcltmodis
1203  cfg%Lclwmodis=Lclwmodis
1204  cfg%Lclimodis=Lclimodis
1205  cfg%Lclhmodis=Lclhmodis
1206  cfg%Lclmmodis=Lclmmodis
1207  cfg%Lcllmodis=Lcllmodis
1208  cfg%Ltautmodis=Ltautmodis
1209  cfg%Ltauwmodis=Ltauwmodis
1210  cfg%Ltauimodis=Ltauimodis
1211  cfg%Ltautlogmodis=Ltautlogmodis
1212  cfg%Ltauwlogmodis=Ltauwlogmodis
1213  cfg%Ltauilogmodis=Ltauilogmodis
1214  cfg%Lreffclwmodis=Lreffclwmodis
1215  cfg%Lreffclimodis=Lreffclimodis
1216  cfg%Lpctmodis=Lpctmodis
1217  cfg%Llwpmodis=Llwpmodis
1218  cfg%Liwpmodis=Liwpmodis
1219  cfg%Lclmodis=Lclmodis
1220  cfg%Lcrimodis=Lcrimodis
1221  cfg%Lcrlmodis=Lcrlmodis
1222
1223! Others
1224!  cfg%Lwrite_output=Lwrite_output
1225!  cfg%Ltoffset=Ltoffset
1226!  cfg%Lfracout=Lfracout
1227  cfg%Lstats = Lstats
1228
1229! Copy instrument flags to cfg structure
1230  cfg%Lradar_sim = Lradar_sim
1231  cfg%Llidar_sim = Llidar_sim
1232  cfg%Lisccp_sim = Lisccp_sim
1233  cfg%Lmodis_sim = Lmodis_sim
1234  cfg%Lmisr_sim  = Lmisr_sim
1235  cfg%Lrttov_sim = Lrttov_sim
1236
1237#endif
1238
1239  END SUBROUTINE read_xiosfieldactive
1240
1241END MODULE cosp_read_otputkeys
Note: See TracBrowser for help on using the repository browser.