source: LMDZ6/trunk/libf/phylmd/cosp/cosp_read_otputkeys.F90 @ 3291

Last change on this file since 3291 was 3269, checked in by idelkadi, 7 years ago

Corrections :

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