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

Last change on this file was 3396, checked in by idelkadi, 6 years ago

Corrections dans la nouvelle version du simulateur Cosp (cosp2) :

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