source: LMDZ6/trunk/libf/phylmd/cosp/read_cosp_output_nl.F90 @ 3152

Last change on this file since 3152 was 3152, checked in by idelkadi, 6 years ago
  • Activation des simulateurs et des champs de sortie en fonction de ce qui est demande dans les fichiers .xml pour XIOS (CMIP6)
  • Mise a jour du calendrier pour Xios dans Cosp
  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
File size: 29.0 KB
Line 
1!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2!--------------- SUBROUTINE READ_COSP_OUTPUT_NL -------------------------
3!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 SUBROUTINE READ_COSP_OUTPUT_NL(cosp_nl,cfg)
5  USE MOD_COSP_CONSTANTS
6  USE MOD_COSP_TYPES
7  USE mod_phys_lmdz_para
8
9#ifdef CPP_XIOS
10    USE xios, ONLY: xios_get_field_attr, xios_field_is_active
11#endif
12
13  character(len=*),intent(in) :: cosp_nl
14  type(cosp_config),intent(out) :: cfg
15  ! Local variables
16  integer :: i
17
18!! AI
19!  logical, save ::   Lradar_sim,Llidar_sim,Lisccp_sim,Lmisr_sim,Lrttov_sim, &
20!             Lalbisccp,Latb532,Lboxptopisccp,Lboxtauisccp,Lcfad_dbze94, &
21!             Lcfad_lidarsr532,Lclcalipso2,Lclcalipso,Lclhcalipso,Lclisccp2,Lcllcalipso, &
22!             Lclmcalipso,Lcltcalipso,Lcltlidarradar,Lctpisccp,Ldbze94,Ltauisccp,Ltclisccp, &
23!             Llongitude,Llatitude,Lparasol_refl,LclMISR,Lmeantbisccp,Lmeantbclrisccp, &
24!             Lfrac_out,Lbeta_mol532,Ltbrttov
25
26!  namelist/COSP_OUTPUT/Lradar_sim,Llidar_sim,Lisccp_sim,Lmisr_sim,Lrttov_sim, &
27!             Lalbisccp,Latb532,Lboxptopisccp,Lboxtauisccp,Lcfad_dbze94, &
28!             Lcfad_lidarsr532,Lclcalipso2,Lclcalipso,Lclhcalipso,Lclisccp2, &
29!             Lcllcalipso,Lclmcalipso,Lcltcalipso,Lcltlidarradar,Lctpisccp,Ldbze94,Ltauisccp, &
30!             Ltclisccp,Llongitude,Llatitude,Lparasol_refl,LclMISR,Lmeantbisccp,Lmeantbclrisccp, &
31!             Lfrac_out,Lbeta_mol532,Ltbrttov
32!!
33
34 logical, save :: Lradar_sim,Llidar_sim,Lisccp_sim,Lmodis_sim,Lmisr_sim,Lrttov_sim, &
35             Lalbisccp,Latb532,Lboxptopisccp,Lboxtauisccp,LcfadDbze94, &
36             LcfadLidarsr532,Lclcalipso2,Lclcalipso,Lclhcalipso,Lclisccp,Lcllcalipso, &
37             Lclmcalipso,Lcltcalipso,Lcltlidarradar,Lpctisccp,Ldbze94,Ltauisccp,Lcltisccp, &
38             Lclcalipsoliq,Lclcalipsoice,Lclcalipsoun, &
39             Lclcalipsotmp,Lclcalipsotmpliq,Lclcalipsotmpice,Lclcalipsotmpun, &
40             Lcltcalipsoliq,Lcltcalipsoice,Lcltcalipsoun, &
41             Lclhcalipsoliq,Lclhcalipsoice,Lclhcalipsoun, &
42             Lclmcalipsoliq,Lclmcalipsoice,Lclmcalipsoun, &
43             Lcllcalipsoliq,Lcllcalipsoice,Lcllcalipsoun, &
44             Ltoffset,LparasolRefl,LclMISR,Lmeantbisccp,Lmeantbclrisccp, &
45             Lfracout,LlidarBetaMol532,Ltbrttov, &
46             Lcltmodis,Lclwmodis,Lclimodis,Lclhmodis,Lclmmodis,Lcllmodis,Ltautmodis,Ltauwmodis,Ltauimodis,Ltautlogmodis, &
47             Ltauwlogmodis,Ltauilogmodis,Lreffclwmodis,Lreffclimodis,Lpctmodis,Llwpmodis, &
48             Liwpmodis,Lclmodis,Lcrimodis,Lcrlmodis,Lclopaquecalipso,Lclthincalipso,      &           !OPAQ (2)
49             Lclzopaquecalipso,Lclcalipsoopaque,Lclcalipsothin,Lclcalipsozopaque,Lclcalipsoopacity, & !OPAQ (5)
50             LprofSR,Lproftemp                                                                        !TIBO (2)
51
52  namelist/COSP_OUTPUT/Lradar_sim,Llidar_sim,Lisccp_sim,Lmodis_sim,Lmisr_sim,Lrttov_sim, &
53             Lalbisccp,Latb532,Lboxptopisccp,Lboxtauisccp,LcfadDbze94, &
54             LcfadLidarsr532,Lclcalipso2,Lclcalipso,Lclhcalipso,Lclisccp, &
55             Lcllcalipso,Lclmcalipso,Lcltcalipso,Lcltlidarradar,Lpctisccp,Ldbze94,Ltauisccp, &
56             Lclcalipsoliq,Lclcalipsoice,Lclcalipsoun, &
57             Lclcalipsotmp,Lclcalipsotmpliq,Lclcalipsotmpice,Lclcalipsotmpun, &
58             Lcltcalipsoliq,Lcltcalipsoice,Lcltcalipsoun, &
59             Lclhcalipsoliq,Lclhcalipsoice,Lclhcalipsoun, &
60             Lclmcalipsoliq,Lclmcalipsoice,Lclmcalipsoun, &
61             Lcllcalipsoliq,Lcllcalipsoice,Lcllcalipsoun, &
62             Lcltisccp,Ltoffset,LparasolRefl,LclMISR,Lmeantbisccp,Lmeantbclrisccp, &
63             Lfracout,LlidarBetaMol532,Ltbrttov, &
64             Lcltmodis,Lclwmodis,Lclimodis,Lclhmodis,Lclmmodis,Lcllmodis,Ltautmodis,Ltauwmodis,Ltauimodis,Ltautlogmodis, &
65             Ltauwlogmodis,Ltauilogmodis,Lreffclwmodis,Lreffclimodis,Lpctmodis,Llwpmodis, &
66             Liwpmodis,Lclmodis,Lcrimodis,Lcrlmodis,Lclopaquecalipso,Lclthincalipso,      &           !OPAQ (2)
67             Lclzopaquecalipso,Lclcalipsoopaque,Lclcalipsothin,Lclcalipsozopaque,Lclcalipsoopacity, & !OPAQ (5)
68             LprofSR,Lproftemp                                                                        !TIBO (2)
69   
70  do i=1,N_OUT_LIST
71    cfg%out_list(i)=''
72  enddo
73 
74! Lecture du fichier namelist
75  IF (is_master) THEN
76    open(10,file=cosp_nl,status='old')
77    read(10,nml=cosp_output)
78    close(10)
79  ENDIF
80 
81! VEREFIER LES CHAMPS DEMANDES DANS .XML
82! 2. Si champs active dans .xml alors mettre la cles de sortie en true
83#ifdef CPP_XIOS
84   IF (xios_field_is_active("cllcalipso")) Lcllcalipso=.TRUE.
85             IF (xios_field_is_active("clmcalipso")) Lclmcalipso=.TRUE.
86             IF (xios_field_is_active("clhcalipso")) Lclhcalipso=.TRUE.
87             IF (xios_field_is_active("cltcalipso")) Lcltcalipso=.TRUE.
88             IF (xios_field_is_active("pcllcalipso")) Lcllcalipso=.TRUE.
89             IF (xios_field_is_active("pclmcalipso")) Lclmcalipso=.TRUE.
90             IF (xios_field_is_active("pclhcalipso")) Lclhcalipso=.TRUE.
91             IF (xios_field_is_active("pcltcalipso")) Lcltcalipso=.TRUE.
92             IF (xios_field_is_active("cllcalipsoice")) Lcllcalipsoice=.TRUE.
93             IF (xios_field_is_active("clmcalipsoice")) Lclmcalipsoice=.TRUE.
94             IF (xios_field_is_active("clhcalipsoice")) Lclhcalipsoice=.TRUE.
95             IF (xios_field_is_active("cltcalipsoice")) Lcltcalipsoice=.TRUE.
96             IF (xios_field_is_active("cllcalipsoliq")) Lcllcalipsoliq=.TRUE.
97             IF (xios_field_is_active("clmcalipsoliq")) Lclmcalipsoliq=.TRUE.
98             IF (xios_field_is_active("clhcalipsoliq")) Lclhcalipsoliq=.TRUE.
99             IF (xios_field_is_active("cltcalipsoliq")) Lcltcalipsoliq=.TRUE.
100             IF (xios_field_is_active("cllcalipsoun")) Lcllcalipsoun=.TRUE.
101             IF (xios_field_is_active("clmcalipsoun")) Lclmcalipsoun=.TRUE.
102             IF (xios_field_is_active("clhcalipsoun")) Lclhcalipsoun=.TRUE.
103             IF (xios_field_is_active("cltcalipsoun")) Lcltcalipsoun=.TRUE.
104             IF (xios_field_is_active("clcalipso")) Lclcalipso=.TRUE.
105             IF (xios_field_is_active("pclcalipso")) Lclcalipso=.TRUE.
106             IF (xios_field_is_active("clcalipsoice")) Lclcalipsoice=.TRUE.
107             IF (xios_field_is_active("clcalipsoliq")) Lclcalipsoliq=.TRUE.
108             IF (xios_field_is_active("clcalipsoun")) Lclcalipsoun=.TRUE.
109             IF (xios_field_is_active("clcalipsotmp")) Lclcalipsotmp=.TRUE.
110             IF (xios_field_is_active("clcalipsotmpice")) Lclcalipsotmpice=.TRUE.
111             IF (xios_field_is_active("clcalipsotmpliq")) Lclcalipsotmpliq=.TRUE.
112             IF (xios_field_is_active("clcalipsotmpun")) Lclcalipsotmpun=.TRUE.
113             IF (xios_field_is_active("parasol_refl")) Lparasol_refl=.TRUE.
114             IF (xios_field_is_active("parasol_crefl")) Lparasol_refl=.TRUE.
115             IF (xios_field_is_active("Ncrefl")) Lparasol_refl=.TRUE.
116             IF (xios_field_is_active("cfad_lidarsr532")) LcfadLidarsr532=.TRUE.
117             IF (xios_field_is_active("atb532")) Latb532=.TRUE.
118             IF (xios_field_is_active("beta_mol532")) Lbeta_mol532=.TRUE.
119             IF (xios_field_is_active("clopaquecalipso")) Lclopaquecalipso=.TRUE.
120             IF (xios_field_is_active("clthincalipso")) Lclthincalipso=.TRUE.
121             IF (xios_field_is_active("clzopaquecalipso")) Lclzopaquecalipso=.TRUE.
122             IF (xios_field_is_active("clcalipsoopaque")) Lclcalipsoopaque=.TRUE.
123             IF (xios_field_is_active("clcalipsothin")) Lclcalipsothin=.TRUE.
124             IF (xios_field_is_active("clcalipsozopaque")) Lclcalipsozopaque=.TRUE.
125             IF (xios_field_is_active("clcalipsoopacity")) Lclcalipsoopacity=.TRUE.
126             IF (xios_field_is_active("proftemp")) Lproftemp=.TRUE.
127             IF (xios_field_is_active("profSR")) LprofSR=.TRUE.
128
129   IF (xios_field_is_active("cfadDbze94")) LcfadDbze94=.TRUE.
130             IF (xios_field_is_active("dbze94")) Ldbze94=.TRUE.
131             IF (xios_field_is_active("cltlidarradar")) Lcltlidarradar=.TRUE.
132             IF (xios_field_is_active("clcalipso2")) Lclcalipso2=.TRUE.
133
134   IF (xios_field_is_active("clisccp2")) Lclisccp2=.TRUE.
135             IF (xios_field_is_active("boxtauisccp")) Lboxtauisccp=.TRUE.
136             IF (xios_field_is_active("boxptopisccp")) Lboxptopisccp=.TRUE.
137             IF (xios_field_is_active("tclisccp")) Ltclisccp=.TRUE.
138             IF (xios_field_is_active("ctpisccp")) Lctpisccp=.TRUE.
139             IF (xios_field_is_active("tauisccp")) Ltauisccp=.TRUE.
140             IF (xios_field_is_active("albisccp")) Lalbisccp=.TRUE.
141             IF (xios_field_is_active("meantbisccp")) Lmeantbisccp=.TRUE.
142             IF (xios_field_is_active("meantbclrisccp")) Lmeantbclrisccp=.TRUE.
143
144   IF (xios_field_is_active("clMISR")) LclMISR=.TRUE.
145
146             IF (xios_field_is_active("cllmodis")) Lcllmodis=.TRUE.
147             IF (xios_field_is_active("clmmodis")) Lclmmodis=.TRUE.
148             IF (xios_field_is_active("clhmodis")) Lclhmodis=.TRUE.
149             IF (xios_field_is_active("cltmodis")) Lcltmodis=.TRUE.
150             IF (xios_field_is_active("clwmodis")) Lclwmodis=.TRUE.
151             IF (xios_field_is_active("climodis")) Lclimodis=.TRUE.
152             IF (xios_field_is_active("tautmodis")) Ltautmodis=.TRUE.
153             IF (xios_field_is_active("tauwmodis")) Ltauwmodis=.TRUE.
154             IF (xios_field_is_active("tauimodis")) Ltauimodis=.TRUE.
155             IF (xios_field_is_active("tautlogmodis")) Ltautlogmodis=.TRUE.
156             IF (xios_field_is_active("tauilogmodis")) Ltauilogmodis=.TRUE.
157             IF (xios_field_is_active("tauwlogmodis")) Ltauwlogmodis=.TRUE.
158             IF (xios_field_is_active("reffclwmodis")) Lreffclwmodis=.TRUE.
159             IF (xios_field_is_active("reffclimodis")) Lreffclimodis=.TRUE.
160             IF (xios_field_is_active("pctmodis")) Lpctmodis=.TRUE.
161             IF (xios_field_is_active("lwpmodis")) Llwpmodis=.TRUE.
162             IF (xios_field_is_active("iwpmodis")) Liwpmodis=.TRUE.
163             IF (xios_field_is_active("clmodis")) Lclmodis=.TRUE.
164!             IF (xios_field_is_active("jpdftaureicemodis")) Lcrimodis=.TRUE.
165             IF (xios_field_is_active("crimodis")) Lcrimodis=.TRUE.
166!             IF (xios_field_is_active("jpdftaureliqmodis")) Lcrlmodis=.TRUE.
167             IF (xios_field_is_active("crlmodis")) Lcrlmodis=.TRUE.
168
169! 2.  si champs demande alors activer le simulateur correspondant
170   IF (xios_field_is_active("cllcalipso").OR. &
171                xios_field_is_active("clmcalipso").OR. &
172                xios_field_is_active("clhcalipso").OR. &
173                xios_field_is_active("cltcalipso").OR. &
174                xios_field_is_active("pcllcalipso").OR. &
175                xios_field_is_active("pclmcalipso").OR. &
176                xios_field_is_active("pclhcalipso").OR. &
177                xios_field_is_active("pcltcalipso").OR. &
178                xios_field_is_active("cllcalipsoice").OR. &
179                xios_field_is_active("clmcalipsoice").OR. &
180                xios_field_is_active("clhcalipsoice").OR. &
181                xios_field_is_active("cltcalipsoice").OR. &
182                xios_field_is_active("cllcalipsoliq").OR. &
183                xios_field_is_active("clmcalipsoliq").OR. &
184                xios_field_is_active("clhcalipsoliq").OR. &
185                xios_field_is_active("cltcalipsoliq").OR. &
186                xios_field_is_active("cllcalipsoun").OR. &
187                xios_field_is_active("clmcalipsoun").OR. &
188                xios_field_is_active("clhcalipsoun").OR. &
189                xios_field_is_active("cltcalipsoun").OR. &
190                xios_field_is_active("clcalipso").OR. &
191                xios_field_is_active("pclcalipso").OR. &
192                xios_field_is_active("clcalipsoice").OR. &
193                xios_field_is_active("clcalipsoliq").OR. &
194                xios_field_is_active("clcalipsoun").OR. &
195                xios_field_is_active("clcalipsotmp").OR. &
196                xios_field_is_active("clcalipsotmpice").OR. &
197                xios_field_is_active("clcalipsotmpliq").OR. &
198                xios_field_is_active("clcalipsotmpun").OR. &
199                xios_field_is_active("parasol_refl").OR. &
200                xios_field_is_active("parasol_crefl").OR. &
201                xios_field_is_active("Ncrefl").OR. &
202                xios_field_is_active("cfad_lidarsr532").OR. &
203                xios_field_is_active("atb532").OR. &
204                xios_field_is_active("beta_mol532").OR. &
205                xios_field_is_active("clopaquecalipso").OR. &
206                xios_field_is_active("clthincalipso").OR. &
207                xios_field_is_active("clzopaquecalipso").OR. &
208                xios_field_is_active("clcalipsoopaque").OR. &
209                xios_field_is_active("clcalipsothin").OR. &
210                xios_field_is_active("clcalipsozopaque").OR. &
211                xios_field_is_active("clcalipsoopacity").OR. &
212                xios_field_is_active("proftemp").OR. &
213                xios_field_is_active("profSR")) &
214                Llidar_sim=.TRUE.
215
216    IF (xios_field_is_active("cfadDbze94").OR. &
217               xios_field_is_active("dbze94")) &
218               Lradar_sim=.TRUE.
219
220    IF (xios_field_is_active("cltlidarradar").OR. &
221               xios_field_is_active("clcalipso2")) THEN
222               Lradar_sim=.TRUE.
223               Llidar_sim=.TRUE.
224    ENDIF
225
226    IF (xios_field_is_active("clisccp2").OR. &
227                xios_field_is_active("boxtauisccp").OR. &
228                xios_field_is_active("boxptopisccp").OR. &
229                xios_field_is_active("tclisccp").OR. &
230                xios_field_is_active("ctpisccp").OR. &
231                xios_field_is_active("tauisccp").OR. &
232                xios_field_is_active("albisccp").OR. &
233                xios_field_is_active("meantbisccp").OR. &
234                xios_field_is_active("meantbclrisccp")) &
235                Lisccp_sim=.TRUE.
236
237    IF (xios_field_is_active("clMISR")) Lmisr_sim=.TRUE.
238
239    IF (xios_field_is_active("cllmodis").OR. &
240                xios_field_is_active("clmmodis").OR. &
241                xios_field_is_active("clhmodis").OR. &
242                xios_field_is_active("cltmodis").OR. &
243                xios_field_is_active("clwmodis").OR. &
244                xios_field_is_active("climodis").OR. &
245                xios_field_is_active("tautmodis").OR. &
246                xios_field_is_active("tauwmodis").OR. &
247                xios_field_is_active("tauimodis").OR. &
248                xios_field_is_active("tautlogmodis").OR. &
249                xios_field_is_active("tauilogmodis").OR. &
250                xios_field_is_active("tauwlogmodis").OR. &
251                xios_field_is_active("reffclwmodis").OR. &
252                xios_field_is_active("reffclimodis").OR. &
253                xios_field_is_active("pctmodis").OR. &
254                xios_field_is_active("lwpmodis").OR. &
255                xios_field_is_active("iwpmodis").OR. &
256                xios_field_is_active("clmodis").OR. &
257                xios_field_is_active("crimodis").OR. &
258                xios_field_is_active("crlmodis")) &
259                Lmodis_sim=.TRUE.
260
261#endif
262
263
264  CALL bcast(Lradar_sim)
265  CALL bcast(Llidar_sim)
266  CALL bcast(Lisccp_sim)
267  CALL bcast(Lmodis_sim)
268  CALL bcast(Lmisr_sim)
269  CALL bcast(Lrttov_sim)
270
271  CALL bcast(Lalbisccp)
272  CALL bcast(Latb532)
273  CALL bcast(Lboxptopisccp)
274  CALL bcast(Lboxtauisccp)
275  CALL bcast(LcfadDbze94)
276  CALL bcast(LcfadLidarsr532)
277  CALL bcast(Lclcalipso2)
278  CALL bcast(Lclcalipso)
279  CALL bcast(Lclhcalipso)
280  CALL bcast(Lclcalipsoliq)
281  CALL bcast(Lclcalipsoice)
282  CALL bcast(Lclcalipsoun)
283  CALL bcast(Lclcalipsotmp)
284  CALL bcast(Lclcalipsotmpliq)
285  CALL bcast(Lclcalipsotmpice)
286  CALL bcast(Lclcalipsotmpun)
287  CALL bcast(Lcltcalipsoliq)
288  CALL bcast(Lcltcalipsoice)
289  CALL bcast(Lcltcalipsoun)
290  CALL bcast(Lclhcalipsoliq)
291  CALL bcast(Lclhcalipsoice)
292  CALL bcast(Lclhcalipsoun)
293  CALL bcast(Lclmcalipsoliq)
294  CALL bcast(Lclmcalipsoice)
295  CALL bcast(Lclmcalipsoun)
296  CALL bcast(Lcllcalipsoliq)
297  CALL bcast(Lcllcalipsoice)
298  CALL bcast(Lcllcalipsoun)
299  CALL bcast(Lclisccp)
300  CALL bcast(Lcllcalipso)
301  CALL bcast(Lclmcalipso)
302  CALL bcast(Lcltcalipso)
303  CALL bcast(Lcltlidarradar)
304  CALL bcast(Lpctisccp)
305  CALL bcast(Ldbze94)
306  CALL bcast(Ltauisccp)
307  CALL bcast(Lcltisccp)
308  CALL bcast(LparasolRefl)
309  CALL bcast(LclMISR)
310  CALL bcast(Lmeantbisccp)
311  CALL bcast(Lmeantbclrisccp)
312  CALL bcast(Lfrac_out)
313  CALL bcast(LlidarBetaMol532)
314  CALL bcast(Lcltmodis)
315  CALL bcast(Lclwmodis)
316  CALL bcast(Lclimodis)
317  CALL bcast(Lclhmodis)
318  CALL bcast(Lclmmodis)
319  CALL bcast(Lcllmodis)
320  CALL bcast(Ltautmodis)
321  CALL bcast(Ltauwmodis)
322  CALL bcast(Ltauimodis)
323  CALL bcast(Ltautlogmodis)
324  CALL bcast(Ltauwlogmodis)
325  CALL bcast(Ltauilogmodis)
326  CALL bcast(Lreffclwmodis)
327  CALL bcast(Lreffclimodis)
328  CALL bcast(Lpctmodis)
329  CALL bcast(Llwpmodis)
330  CALL bcast(Liwpmodis)
331  CALL bcast(Lclmodis)
332  CALL bcast(Ltbrttov)
333  CALL bcast(Lcrimodis)
334  CALL bcast(Lcrlmodis)
335  CALL bcast(Lclopaquecalipso)  !OPAQ
336  CALL bcast(Lclthincalipso)    !OPAQ
337  CALL bcast(Lclzopaquecalipso) !OPAQ
338  CALL bcast(Lclcalipsoopaque)  !OPAQ
339  CALL bcast(Lclcalipsothin)    !OPAQ
340  CALL bcast(Lclcalipsozopaque) !OPAQ
341  CALL bcast(Lclcalipsoopacity) !OPAQ
342  CALL bcast(LprofSR)           !TIBO
343  CALL bcast(Lproftemp)         !TIBO
344
345!$OMP BARRIER
346
347!  print*,' Cles sorties cosp :'
348!  print*,' Lradar_sim,Llidar_sim,Lisccp_sim,Lmisr_sim,Lrttov_sim', &
349!           Lradar_sim,Llidar_sim,Lisccp_sim,Lmisr_sim,Lrttov_sim
350
351  ! Deal with dependencies
352  if (.not.Lradar_sim) then
353    LcfadDbze94   = .false.
354    Lclcalipso2    = .false.
355    Lcltlidarradar = .false. ! Needs radar & lidar
356    Ldbze94        = .false.
357    Lclcalipso2    = .false. ! Needs radar & lidar
358  endif
359
360  if (.not.Llidar_sim) then
361    Latb532          = .false.
362    LcfadLidarsr532  = .false.
363    Lclcalipso2      = .false.
364    Lclcalipso       = .false.
365    Lclhcalipso      = .false.
366    Lcllcalipso      = .false.
367    Lclmcalipso      = .false.
368    Lcltcalipso      = .false.
369    Lcltlidarradar   = .false. ! Needs radar & lidar
370    LparasolRefl     = .false.
371    LlidarBetaMol532 = .false.
372!! AI
373    Lclcalipsoliq       = .false.
374    Lclcalipsoice       = .false.
375    Lclcalipsoun        = .false.
376    Lclcalipsotmp       = .false.
377    Lclcalipsotmpun     = .false.
378    Lclcalipsotmpliq    = .false.
379    Lclcalipsotmpice    = .false.
380    Lclhcalipsoliq      = .false.
381    Lcllcalipsoliq      = .false.
382    Lclmcalipsoliq      = .false.
383    Lcltcalipsoliq      = .false.
384    Lclhcalipsoice      = .false.
385    Lcllcalipsoice      = .false.
386    Lclmcalipsoice      = .false.
387    Lcltcalipsoice      = .false.
388    Lclhcalipsoun       = .false.
389    Lcllcalipsoun       = .false.
390    Lclmcalipsoun       = .false.
391    Lcltcalipsoun       = .false.
392    Lclopaquecalipso    = .false. !OPAQ
393    Lclthincalipso      = .false. !OPAQ
394    Lclzopaquecalipso   = .false. !OPAQ
395    Lclcalipsoopaque    = .false. !OPAQ
396    Lclcalipsothin      = .false. !OPAQ
397    Lclcalipsozopaque   = .false. !OPAQ
398    Lclcalipsoopacity   = .false. !OPAQ
399    LprofSR             = .false. !TIBO
400    Lproftemp           = .false. !TIBO
401  endif
402
403  if (.not.Lisccp_sim) then
404    Lalbisccp       = .false.
405    Lboxptopisccp   = .false.
406    Lboxtauisccp    = .false.
407    Lclisccp        = .false.
408    Lpctisccp       = .false.
409    Ltauisccp       = .false.
410    Lcltisccp       = .false.
411    Lmeantbisccp    = .false.
412    Lmeantbclrisccp = .false.
413  endif
414
415  if (.not.Lmisr_sim) then
416    LclMISR = .false.
417  endif
418  if (.not.Lrttov_sim) then
419    Ltbrttov = .false.
420  endif
421  if ((.not.Lradar_sim).and.(.not.Llidar_sim).and. &
422      (.not.Lisccp_sim).and.(.not.Lmisr_sim)) then
423    Lfrac_out = .false.
424  endif
425 if (.not.Lmodis_sim) then
426    Lcltmodis=.false.
427    Lclwmodis=.false.
428    Lclimodis=.false.
429    Lclhmodis=.false.
430    Lclmmodis=.false.
431    Lcllmodis=.false.
432    Ltautmodis=.false.
433    Ltauwmodis=.false.
434    Ltauimodis=.false.
435    Ltautlogmodis=.false.
436    Ltauwlogmodis=.false.
437    Ltauilogmodis=.false.
438    Lreffclwmodis=.false.
439    Lreffclimodis=.false.
440    Lpctmodis=.false.
441    Llwpmodis=.false.
442    Liwpmodis=.false.
443    Lclmodis=.false.
444    Lcrimodis=.false.
445    Lcrlmodis=.false.
446  endif
447  if (Lmodis_sim) Lisccp_sim = .true.
448
449  ! Diagnostics that use Radar and Lidar
450  if (((Lclcalipso2).or.(Lcltlidarradar)).and.((Lradar_sim).or.(Llidar_sim))) then
451    Lclcalipso2    = .true.
452    Lcltlidarradar = .true.
453    Llidar_sim     = .true.
454    Lradar_sim     = .true.
455  endif
456
457  cfg%Lstats = .false.
458  if ((Lradar_sim).or.(Llidar_sim).or.(Lisccp_sim)) cfg%Lstats = .true.
459
460  ! Copy instrument flags to cfg structure
461  cfg%Lradar_sim = Lradar_sim
462  cfg%Llidar_sim = Llidar_sim
463  cfg%Lisccp_sim = Lisccp_sim
464  cfg%Lmodis_sim = Lmodis_sim
465  cfg%Lmisr_sim  = Lmisr_sim
466  cfg%Lrttov_sim = Lrttov_sim
467
468  ! Flag to control output to file
469  cfg%Lwrite_output = .false.
470  if (cfg%Lstats.or.cfg%Lmisr_sim.or.cfg%Lrttov_sim) then
471    cfg%Lwrite_output = .true.
472  endif
473
474  ! Output diagnostics
475  i = 1
476  if (Lalbisccp)        cfg%out_list(i) = 'albisccp'
477  i = i+1
478  if (Latb532)          cfg%out_list(i) = 'atb532'
479  i = i+1
480  if (Lboxptopisccp)    cfg%out_list(i) = 'boxptopisccp'
481  i = i+1
482  if (Lboxtauisccp)     cfg%out_list(i) = 'boxtauisccp'
483  i = i+1
484  if (LcfadDbze94)      cfg%out_list(i) = 'cfadDbze94'
485  i = i+1
486  if (LcfadLidarsr532)  cfg%out_list(i) = 'cfadLidarsr532'
487  i = i+1
488  if (Lclcalipso2)      cfg%out_list(i) = 'clcalipso2'
489  i = i+1
490  if (Lclcalipso)       cfg%out_list(i) = 'clcalipso'
491  i = i+1
492  if (Lclhcalipso)      cfg%out_list(i) = 'clhcalipso'
493  i = i+1
494  if (Lclisccp)         cfg%out_list(i) = 'clisccp'
495  i = i+1
496  if (Lcllcalipso)      cfg%out_list(i) = 'cllcalipso'
497  i = i+1
498  if (Lclmcalipso)      cfg%out_list(i) = 'clmcalipso'
499  i = i+1
500  if (Lcltcalipso)      cfg%out_list(i) = 'cltcalipso'
501  i = i+1
502
503  if (Lcllcalipsoice)      cfg%out_list(i) = 'cllcalipsoice'
504  i = i+1
505  if (Lclmcalipsoice)      cfg%out_list(i) = 'clmcalipsoice'
506  i = i+1
507  if (Lclhcalipsoice)      cfg%out_list(i) = 'clhcalipsoice'
508  i = i+1
509  if (Lcltcalipsoice)      cfg%out_list(i) = 'cltcalipsoice'
510  i = i+1
511  if (Lcllcalipsoliq)      cfg%out_list(i) = 'cllcalipsoliq'
512  i = i+1
513  if (Lclmcalipsoliq)      cfg%out_list(i) = 'clmcalipsoliq'
514  i = i+1
515  if (Lclhcalipsoliq)      cfg%out_list(i) = 'clhcalipsoliq'
516  i = i+1
517  if (Lcltcalipsoliq)      cfg%out_list(i) = 'cltcalipsoliq'
518  i = i+1
519  if (Lcllcalipsoun)      cfg%out_list(i) = 'cllcalipsoun'
520  i = i+1
521  if (Lclmcalipsoun)      cfg%out_list(i) = 'clmcalipsoun'
522  i = i+1
523  if (Lclhcalipsoun)      cfg%out_list(i) = 'clhcalipsoun'
524  i = i+1
525  if (Lcltcalipsoun)      cfg%out_list(i) = 'cltcalipsoun'
526  i = i+1
527
528  if (Lclcalipsoice)       cfg%out_list(i) = 'clcalipsoice'
529  i = i+1
530  if (Lclcalipsoliq)       cfg%out_list(i) = 'clcalipsoliq'
531  i = i+1
532  if (Lclcalipsoun)       cfg%out_list(i) = 'clcalipsoun'
533  i = i+1
534
535  if (Lclcalipsotmp)       cfg%out_list(i) = 'clcalipsotmp'
536  i = i+1
537  if (Lclcalipsotmpice)       cfg%out_list(i) = 'clcalipsotmpice'
538  i = i+1
539  if (Lclcalipsotmpliq)       cfg%out_list(i) = 'clcalipsotmpliq'
540  i = i+1
541  if (Lclcalipsotmpun)       cfg%out_list(i) = 'clcalipsotmpun'
542  i = i+1
543  if (Lcltlidarradar)   cfg%out_list(i) = 'cltlidarradar'
544  i = i+1
545  if (Lpctisccp)        cfg%out_list(i) = 'pctisccp'
546  i = i+1
547  if (Ldbze94)          cfg%out_list(i) = 'dbze94'
548  i = i+1
549  if (Ltauisccp)        cfg%out_list(i) = 'tauisccp'
550  i = i+1
551  if (Lcltisccp)        cfg%out_list(i) = 'cltisccp'
552  i = i+1
553  if (Ltoffset)         cfg%out_list(i) = 'toffset'
554  i = i+1
555  if (LparasolRefl)     cfg%out_list(i) = 'parasolRefl'
556  i = i+1
557  if (LclMISR)          cfg%out_list(i) = 'clMISR'
558  i = i+1
559  if (Lmeantbisccp)     cfg%out_list(i) = 'meantbisccp'
560  i = i+1
561  if (Lmeantbclrisccp)  cfg%out_list(i) = 'meantbclrisccp'
562  i = i+1
563  if (Lfracout)         cfg%out_list(i) = 'fracout'
564  i = i+1
565  if (LlidarBetaMol532) cfg%out_list(i) = 'lidarBetaMol532'
566  i = i+1
567  if (Ltbrttov)         cfg%out_list(i) = 'tbrttov'
568  i = i+1
569  if (Lcltmodis)        cfg%out_list(i) = 'cltmodis'
570  i = i+1
571  if (Lclwmodis)        cfg%out_list(i) = 'clwmodis'
572  i = i+1
573  if (Lclimodis)        cfg%out_list(i) = 'climodis'
574  i = i+1
575  if (Lclhmodis)        cfg%out_list(i) = 'clhmodis'
576  i = i+1
577  if (Lclmmodis)        cfg%out_list(i) = 'clmmodis'
578  i = i+1
579  if (Lcllmodis)        cfg%out_list(i) = 'cllmodis'
580  i = i+1
581  if (Ltautmodis)       cfg%out_list(i) = 'tautmodis'
582  i = i+1
583  if (Ltauwmodis)       cfg%out_list(i) = 'tauwmodis'
584  i = i+1
585  if (Ltauimodis)       cfg%out_list(i) = 'tauimodis'
586  i = i+1
587  if (Ltautlogmodis)    cfg%out_list(i) = 'tautlogmodis'
588  i = i+1
589  if (Ltauwlogmodis)    cfg%out_list(i) = 'tauwlogmodis'
590  i = i+1
591  if (Ltauilogmodis)    cfg%out_list(i) = 'tauilogmodis'
592  i = i+1
593  if (Lreffclwmodis)    cfg%out_list(i) = 'reffclwmodis'
594  i = i+1
595  if (Lreffclimodis)    cfg%out_list(i) = 'reffclimodis'
596  i = i+1
597  if (Lpctmodis)        cfg%out_list(i) = 'pctmodis'
598  i = i+1
599  if (Llwpmodis)        cfg%out_list(i) = 'lwpmodis'
600  i = i+1
601  if (Liwpmodis)        cfg%out_list(i) = 'iwpmodis'
602  i = i+1
603  if (Lclmodis)         cfg%out_list(i) = 'clmodis'
604  i = i+1
605  if (Lcrimodis)         cfg%out_list(i) = 'crimodis'
606  i = i+1
607  if (Lcrlmodis)         cfg%out_list(i) = 'crlmodis'
608
609  i = i+1                                                            !OPAQ
610  if (Lclopaquecalipso)         cfg%out_list(i) = 'clopaquecalipso'  !OPAQ
611  i = i+1                                                            !OPAQ
612  if (Lclthincalipso)           cfg%out_list(i) = 'clthincalipso'    !OPAQ
613  i = i+1                                                            !OPAQ
614  if (Lclzopaquecalipso)        cfg%out_list(i) = 'clzopaquecalipso' !OPAQ
615  i = i+1                                                            !OPAQ
616  if (Lclcalipsoopaque)         cfg%out_list(i) = 'clcalipsoopaque'  !OPAQ
617  i = i+1                                                            !OPAQ
618  if (Lclcalipsothin)           cfg%out_list(i) = 'clcalipsothin'    !OPAQ
619  i = i+1                                                            !OPAQ
620  if (Lclcalipsozopaque)        cfg%out_list(i) = 'clcalipsozopaque' !OPAQ
621  i = i+1                                                            !OPAQ
622  if (Lclcalipsoopacity)        cfg%out_list(i) = 'clcalipsoopacity' !OPAQ
623  i = i+1                                                            !TIBO
624  if (LprofSR)                  cfg%out_list(i) = 'profSR'           !TIBO
625  i = i+1                                                            !TIBO
626  if (Lproftemp)                cfg%out_list(i) = 'proftemp'         !TIBO
627   
628  if (i /= N_OUT_LIST) then
629     print *, 'COSP_IO: wrong number of output diagnostics'
630     print *, i,N_OUT_LIST
631     stop
632  endif
633
634  ! Copy diagnostic flags to cfg structure
635  ! ISCCP simulator 
636  cfg%Lalbisccp = Lalbisccp
637  cfg%Latb532 = Latb532
638  cfg%Lboxptopisccp = Lboxptopisccp
639  cfg%Lboxtauisccp = Lboxtauisccp
640  cfg%Lmeantbisccp = Lmeantbisccp
641  cfg%Lmeantbclrisccp = Lmeantbclrisccp
642  cfg%Lclisccp = Lclisccp
643  cfg%Lpctisccp = Lpctisccp
644  cfg%Ltauisccp = Ltauisccp
645  cfg%Lcltisccp = Lcltisccp
646  ! CloudSat simulator 
647  cfg%Ldbze94 = Ldbze94
648  cfg%LcfadDbze94 = LcfadDbze94
649  ! CALIPSO/PARASOL simulator 
650  cfg%LcfadLidarsr532 = LcfadLidarsr532
651  cfg%Lclcalipso2 = Lclcalipso2
652  cfg%Lclcalipso = Lclcalipso
653  cfg%Lclhcalipso = Lclhcalipso
654  cfg%Lcllcalipso = Lcllcalipso
655  cfg%Lclmcalipso = Lclmcalipso
656  cfg%Lcltcalipso = Lcltcalipso
657  cfg%Lclhcalipsoice = Lclhcalipsoice
658  cfg%Lcllcalipsoice = Lcllcalipsoice
659  cfg%Lclmcalipsoice = Lclmcalipsoice
660  cfg%Lcltcalipsoice = Lcltcalipsoice
661  cfg%Lclhcalipsoliq = Lclhcalipsoliq
662  cfg%Lcllcalipsoliq = Lcllcalipsoliq
663  cfg%Lclmcalipsoliq = Lclmcalipsoliq
664  cfg%Lcltcalipsoliq = Lcltcalipsoliq
665  cfg%Lclhcalipsoun = Lclhcalipsoun
666  cfg%Lcllcalipsoun = Lcllcalipsoun
667  cfg%Lclmcalipsoun = Lclmcalipsoun
668  cfg%Lcltcalipsoun = Lcltcalipsoun
669  cfg%Lclcalipsoice = Lclcalipsoice
670  cfg%Lclcalipsoliq = Lclcalipsoliq
671  cfg%Lclcalipsoun = Lclcalipsoun
672  cfg%Lclcalipsotmp = Lclcalipsotmp
673  cfg%Lclcalipsotmpice = Lclcalipsotmpice
674  cfg%Lclcalipsotmpliq = Lclcalipsotmpliq
675  cfg%Lclcalipsotmpun = Lclcalipsotmpun
676  cfg%Lcltlidarradar = Lcltlidarradar
677  cfg%LparasolRefl = LparasolRefl
678  cfg%Lclopaquecalipso  = Lclopaquecalipso  !OPAQ
679  cfg%Lclthincalipso    = Lclthincalipso    !OPAQ
680  cfg%Lclzopaquecalipso = Lclzopaquecalipso !OPAQ
681  cfg%Lclcalipsoopaque  = Lclcalipsoopaque  !OPAQ
682  cfg%Lclcalipsothin    = Lclcalipsothin    !OPAQ
683  cfg%Lclcalipsozopaque = Lclcalipsozopaque !OPAQ
684  cfg%Lclcalipsoopacity = Lclcalipsoopacity !OPAQ
685  cfg%LprofSR           = LprofSR           !TIBO
686  cfg%Lproftemp         = Lproftemp         !TIBO
687  ! MISR simulator 
688  cfg%LclMISR = LclMISR
689  ! Other
690  cfg%Ltoffset = Ltoffset
691  cfg%Lfracout = Lfracout
692  cfg%LlidarBetaMol532 = LlidarBetaMol532
693  ! RTTOV
694  cfg%Ltbrttov = Ltbrttov
695  ! MODIS simulator 
696  cfg%Lcltmodis=Lcltmodis
697  cfg%Lclwmodis=Lclwmodis
698  cfg%Lclimodis=Lclimodis
699  cfg%Lclhmodis=Lclhmodis
700  cfg%Lclmmodis=Lclmmodis
701  cfg%Lcllmodis=Lcllmodis
702  cfg%Ltautmodis=Ltautmodis
703  cfg%Ltauwmodis=Ltauwmodis
704  cfg%Ltauimodis=Ltauimodis
705  cfg%Ltautlogmodis=Ltautlogmodis
706  cfg%Ltauwlogmodis=Ltauwlogmodis
707  cfg%Ltauilogmodis=Ltauilogmodis
708  cfg%Lreffclwmodis=Lreffclwmodis
709  cfg%Lreffclimodis=Lreffclimodis
710  cfg%Lpctmodis=Lpctmodis
711  cfg%Llwpmodis=Llwpmodis
712  cfg%Liwpmodis=Liwpmodis
713  cfg%Lclmodis=Lclmodis
714  cfg%Lcrimodis=Lcrimodis
715  cfg%Lcrlmodis=Lcrlmodis
716
717 END SUBROUTINE READ_COSP_OUTPUT_NL
718
Note: See TracBrowser for help on using the repository browser.