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

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

Implementation de la nouvelle version COSPv2 dans LMDZ.
Pour compiler avec makelmdz_fcma utiliser l'option "-cosp2 true"

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