source: LMDZ6/trunk/libf/phylmd/cosp2/cosp_read_otputkeys.F90 @ 3373

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

Implementation de COSPv2 dans LMDZ (Corrections)

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