source: LMDZ6/trunk/libf/phylmd/cosp/cosp_read_otputkeys.f90 @ 5428

Last change on this file since 5428 was 5268, checked in by abarral, 2 months ago

.f90 <-> .F90 depending on cpp key use

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