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

Last change on this file since 4744 was 4619, checked in by yann meurdesoif, 16 months ago

Suppress usage of preprocessing key CPP_XIOS.
Wrapper file is used to suppress XIOS symbol when xios is not linked and not used (-io ioipsl)
The CPP_XIOS key is replaced in model by "using_xios" boolean variable to switch between IOIPSL or XIOS output.

YM

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