8 character(len=*),
intent(in) :: cosp_nl
13 logical,
save :: Lradar_sim,Llidar_sim,Lisccp_sim,Lmisr_sim,Lrttov_sim, &
14 Lalbisccp,Latb532,Lboxptopisccp,Lboxtauisccp,Lcfad_dbze94, &
15 Lcfad_lidarsr532,Lclcalipso2,Lclcalipso,Lclhcalipso,Lclisccp2,Lcllcalipso, &
16 Lclmcalipso,Lcltcalipso,Lcltlidarradar,Lctpisccp,Ldbze94,Ltauisccp,Ltclisccp, &
17 Llongitude,Llatitude,Lparasol_refl,LclMISR,Lmeantbisccp,Lmeantbclrisccp, &
18 Lfrac_out,Lbeta_mol532,Ltbrttov
20 namelist/cosp_output/lradar_sim,llidar_sim,lisccp_sim,lmisr_sim,lrttov_sim, &
21 lalbisccp,latb532,lboxptopisccp,lboxtauisccp,lcfad_dbze94, &
22 lcfad_lidarsr532,lclcalipso2,lclcalipso,lclhcalipso,lclisccp2, &
23 lcllcalipso,lclmcalipso,lcltcalipso,lcltlidarradar,lctpisccp,ldbze94,ltauisccp, &
24 ltclisccp,llongitude,llatitude,lparasol_refl,lclmisr,lmeantbisccp,lmeantbclrisccp, &
25 lfrac_out,lbeta_mol532,ltbrttov
32 open(10,file=cosp_nl,status=
'old')
33 read(10,nml=cosp_output)
37 CALL bcast(lradar_sim)
38 CALL bcast(llidar_sim)
39 CALL bcast(lisccp_sim)
41 CALL bcast(lrttov_sim)
44 CALL bcast(lboxptopisccp)
45 CALL bcast(lboxtauisccp)
46 CALL bcast(lcfad_dbze94)
47 CALL bcast(lcfad_lidarsr532)
48 CALL bcast(lclcalipso2)
49 CALL bcast(lclcalipso)
50 CALL bcast(lclhcalipso)
52 CALL bcast(lcllcalipso)
53 CALL bcast(lclmcalipso)
54 CALL bcast(lcltcalipso)
55 CALL bcast(lcltlidarradar)
60 CALL bcast(llongitude)
62 CALL bcast(lparasol_refl)
64 CALL bcast(lmeantbisccp)
65 CALL bcast(lmeantbclrisccp)
67 CALL bcast(lbeta_mol532)
76 if (.not.lradar_sim)
then
77 lcfad_dbze94 = .
false.
79 lcltlidarradar = .
false.
82 if (.not.llidar_sim)
then
84 lcfad_lidarsr532 = .
false.
91 lcltlidarradar = .
false.
92 lparasol_refl = .
false.
93 lbeta_mol532 = .
false.
95 if (.not.lisccp_sim)
then
97 lboxptopisccp = .
false.
98 lboxtauisccp = .
false.
103 lmeantbisccp = .
false.
104 lmeantbclrisccp = .
false.
106 if (.not.lmisr_sim)
then
109 if (.not.lrttov_sim)
then
112 if ((.not.lradar_sim).and.(.not.llidar_sim).and. &
113 (.not.lisccp_sim).and.(.not.lmisr_sim))
then
118 if (((lclcalipso2).or.(lcltlidarradar)).and.((lradar_sim).or.(llidar_sim)))
then
120 lcltlidarradar = .
true.
126 if ((lradar_sim).or.(llidar_sim).or.(lisccp_sim)) cfg%Lstats = .
true.
129 cfg%Lradar_sim = lradar_sim
130 cfg%Llidar_sim = llidar_sim
131 cfg%Lisccp_sim = lisccp_sim
132 cfg%Lmisr_sim = lmisr_sim
133 cfg%Lrttov_sim = lrttov_sim
136 cfg%Lwrite_output = .
false.
137 if (cfg%Lstats.or.cfg%Lmisr_sim.or.cfg%Lrttov_sim)
then
138 cfg%Lwrite_output = .
true.
143 if (lalbisccp) cfg%out_list(i) =
'albisccp'
145 if (latb532) cfg%out_list(i) =
'atb532'
147 if (lboxptopisccp) cfg%out_list(i) =
'boxptopisccp'
149 if (lboxtauisccp) cfg%out_list(i) =
'boxtauisccp'
151 if (lcfad_dbze94) cfg%out_list(i) =
'cfad_dbze94'
153 if (lcfad_lidarsr532) cfg%out_list(i) =
'cfad_lidarsr532'
155 if (lclcalipso2) cfg%out_list(i) =
'clcalipso2'
157 if (lclcalipso) cfg%out_list(i) =
'clcalipso'
159 if (lclhcalipso) cfg%out_list(i) =
'clhcalipso'
161 if (lclisccp2) cfg%out_list(i) =
'clisccp2'
163 if (lcllcalipso) cfg%out_list(i) =
'cllcalipso'
165 if (lclmcalipso) cfg%out_list(i) =
'clmcalipso'
167 if (lcltcalipso) cfg%out_list(i) =
'cltcalipso'
169 if (lcltlidarradar) cfg%out_list(i) =
'cltlidarradar'
171 if (lctpisccp) cfg%out_list(i) =
'ctpisccp'
173 if (ldbze94) cfg%out_list(i) =
'dbze94'
175 if (ltauisccp) cfg%out_list(i) =
'tauisccp'
177 if (ltclisccp) cfg%out_list(i) =
'tclisccp'
179 if (llongitude) cfg%out_list(i) =
'lon'
181 if (llatitude) cfg%out_list(i) =
'lat'
183 if (lparasol_refl) cfg%out_list(i) =
'parasol_refl'
185 if (lclmisr) cfg%out_list(i) =
'clMISR'
187 if (lmeantbisccp) cfg%out_list(i) =
'meantbisccp'
189 if (lmeantbclrisccp) cfg%out_list(i) =
'meantbclrisccp'
191 if (lfrac_out) cfg%out_list(i) =
'frac_out'
193 if (lbeta_mol532) cfg%out_list(i) =
'beta_mol532'
195 if (ltbrttov) cfg%out_list(i) =
'tbrttov'
198 print *,
'COSP_IO: wrong number of output diagnostics'
203 cfg%Lalbisccp = lalbisccp
204 cfg%Latb532 = latb532
205 cfg%Lboxptopisccp = lboxptopisccp
206 cfg%Lboxtauisccp = lboxtauisccp
207 cfg%Lcfad_dbze94 = lcfad_dbze94
208 cfg%Lcfad_lidarsr532 = lcfad_lidarsr532
209 cfg%Lclcalipso2 = lclcalipso2
210 cfg%Lclcalipso = lclcalipso
211 cfg%Lclhcalipso = lclhcalipso
212 cfg%Lclisccp2 = lclisccp2
213 cfg%Lcllcalipso = lcllcalipso
214 cfg%Lclmcalipso = lclmcalipso
215 cfg%Lcltcalipso = lcltcalipso
216 cfg%Lcltlidarradar = lcltlidarradar
217 cfg%Lctpisccp = lctpisccp
218 cfg%Ldbze94 = ldbze94
219 cfg%Ltauisccp = ltauisccp
220 cfg%Ltclisccp = ltclisccp
221 cfg%Llongitude = llongitude
222 cfg%Llatitude = llatitude
223 cfg%Lparasol_refl = lparasol_refl
224 cfg%LclMISR = lclmisr
225 cfg%Lmeantbisccp = lmeantbisccp
226 cfg%Lmeantbclrisccp = lmeantbclrisccp
227 cfg%Lfrac_out = lfrac_out
228 cfg%Lbeta_mol532 = lbeta_mol532
229 cfg%Ltbrttov = ltbrttov
!IM Implemente en modes sequentiel et parallele CALL rlon_glo CALL bcast(rlon_glo)!$OMP MASTER if(is_mpi_root) then!zstophy
integer, parameter n_out_list
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL false
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true
subroutine read_cosp_output_nl(cosp_nl, cfg)