1 | !! ========================================================================= |
---|
2 | !! INCA - INteraction with Chemistry and Aerosols |
---|
3 | !! |
---|
4 | !! Copyright Laboratoire des Sciences du Climat et de l'Environnement (LSCE) |
---|
5 | !! Unite mixte CEA-CNRS-UVSQ |
---|
6 | !! |
---|
7 | !! Contributors to this INCA subroutine: |
---|
8 | !! |
---|
9 | !! Stacy Walters, NCAR, stacy@ucar.edu |
---|
10 | !! |
---|
11 | !! Anne Cozic, LSCE, anne.cozic@cea.fr |
---|
12 | !! Yann Meurdesoif, LSCE, yann.meurdesoif@cea.fr |
---|
13 | !! |
---|
14 | !! This software is a computer program whose purpose is to simulate the |
---|
15 | !! atmospheric gas phase and aerosol composition. The model is designed to be |
---|
16 | !! used within a transport model or a general circulation model. This version |
---|
17 | !! of INCA was designed to be coupled to the LMDz GCM. LMDz-INCA accounts |
---|
18 | !! for emissions, transport (resolved and sub-grid scale), photochemical |
---|
19 | !! transformations, and scavenging (dry deposition and washout) of chemical |
---|
20 | !! species and aerosols interactively in the GCM. Several versions of the INCA |
---|
21 | !! model are currently used depending on the envisaged applications with the |
---|
22 | !! chemistry-climate model. |
---|
23 | !! |
---|
24 | !! This software is governed by the CeCILL license under French law and |
---|
25 | !! abiding by the rules of distribution of free software. You can use, |
---|
26 | !! modify and/ or redistribute the software under the terms of the CeCILL |
---|
27 | !! license as circulated by CEA, CNRS and INRIA at the following URL |
---|
28 | !! "http://www.cecill.info". |
---|
29 | !! |
---|
30 | !! As a counterpart to the access to the source code and rights to copy, |
---|
31 | !! modify and redistribute granted by the license, users are provided only |
---|
32 | !! with a limited warranty and the software's author, the holder of the |
---|
33 | !! economic rights, and the successive licensors have only limited |
---|
34 | !! liability. |
---|
35 | !! |
---|
36 | !! In this respect, the user's attention is drawn to the risks associated |
---|
37 | !! with loading, using, modifying and/or developing or reproducing the |
---|
38 | !! software by the user in light of its specific status of free software, |
---|
39 | !! that may mean that it is complicated to manipulate, and that also |
---|
40 | !! therefore means that it is reserved for developers and experienced |
---|
41 | !! professionals having in-depth computer knowledge. Users are therefore |
---|
42 | !! encouraged to load and test the software's suitability as regards their |
---|
43 | !! requirements in conditions enabling the security of their systems and/or |
---|
44 | !! data to be ensured and, more generally, to use and operate it in the |
---|
45 | !! same conditions as regards security. |
---|
46 | !! |
---|
47 | !! The fact that you are presently reading this means that you have had |
---|
48 | !! knowledge of the CeCILL license and that you accept its terms. |
---|
49 | !! ========================================================================= |
---|
50 | #include <inca_define.h> |
---|
51 | |
---|
52 | |
---|
53 | |
---|
54 | SUBROUTINE OUTFLD_XIOS(pmid,temp,sh,ps,pdel,area) |
---|
55 | |
---|
56 | USE IOIPSL |
---|
57 | USE MOD_INCA_PARA |
---|
58 | USE INCA_DIM |
---|
59 | USE MOD_GRID_INCA |
---|
60 | USE SURF_CHEM_MOD |
---|
61 | USE PARAM_CHEM |
---|
62 | |
---|
63 | #ifdef AER |
---|
64 | USE AEROSOL_MOD, ONLY : trmx,trnx |
---|
65 | USE AEROSOL_PROGNOS, ONLY : mdw |
---|
66 | USE AEROSOL_METEO, ONLY : airm, zheight, zdens |
---|
67 | #endif |
---|
68 | USE SPECIES_NAMES |
---|
69 | USE CHEM_TRACNM, ONLY: solsym |
---|
70 | |
---|
71 | USE SFLX |
---|
72 | USE LIGHTNING, ONLY : flash, flpcg |
---|
73 | USE CHEM_MODS |
---|
74 | USE AIRPLANE_SRC, ONLY : ptrop |
---|
75 | USE TIME_MOD_INCA |
---|
76 | USE XIOS_INCA |
---|
77 | USE AEROSOL_DIAG |
---|
78 | USE CONST_LMDZ, ONLY : config_inca |
---|
79 | |
---|
80 | IMPLICIT NONE |
---|
81 | |
---|
82 | REAL, INTENT(IN) :: pmid(PLON,PLEV) |
---|
83 | REAL, INTENT(IN) :: pdel(PLON,PLEV) |
---|
84 | REAL, INTENT(IN) :: area(PLON) |
---|
85 | REAL, INTENT(IN) :: temp(PLON,PLEV) |
---|
86 | REAL, INTENT(IN) :: sh(PLON,PLEV) |
---|
87 | REAL, INTENT(IN) :: ps(PLON) |
---|
88 | |
---|
89 | |
---|
90 | INTEGER :: it,la, length |
---|
91 | CHARACTER(len=13) :: tmp_name |
---|
92 | REAL :: inter_tautot(PLON) |
---|
93 | REAL :: inter_tauant(PLON) |
---|
94 | REAL :: inter_taunat(PLON) |
---|
95 | |
---|
96 | |
---|
97 | CALL xios_inca_send_field("pmid",pmid) |
---|
98 | CALL xios_inca_send_field("temp",temp) |
---|
99 | CALL xios_inca_send_field("sh",sh) |
---|
100 | CALL xios_inca_send_field("ps",ps) |
---|
101 | CALL xios_inca_send_field("area",area) |
---|
102 | CALL xios_inca_send_field("pdel",pdel) |
---|
103 | |
---|
104 | |
---|
105 | #ifdef AER |
---|
106 | CALL xios_inca_send_field("zdens",zdens) |
---|
107 | |
---|
108 | |
---|
109 | DO it=trmx,trnx |
---|
110 | |
---|
111 | ! do just for aerosol mass tracer |
---|
112 | #ifdef DUSS |
---|
113 | IF ( (it.NE.id_CIDUSTM) .AND. (it.NE.id_ASSSM) .AND. (it.NE.id_CSSSM) & |
---|
114 | .AND. (it.NE.id_SSSSM) ) THEN |
---|
115 | #else |
---|
116 | #ifdef NMHC |
---|
117 | IF ((it.NE.id_CIDUSTM) & |
---|
118 | .AND. (it.NE.id_ASSSM) .AND. (it.NE.id_CSSSM) .AND. (it.NE.id_SSSSM) & |
---|
119 | .AND. (it.NE.id_ASPOMM) .AND. (it.NE.id_AIPOMM) & |
---|
120 | .AND. (it.NE.id_ASAPp1a) .AND. (it.NE.id_ASAPp2a) & |
---|
121 | .AND. (it.NE.id_ASARp1a) .AND. (it.NE.id_ASARp2a) & |
---|
122 | .AND. (it.NE.id_ASBCM) .AND. (it.NE.id_AIBCM) & |
---|
123 | .AND. (it.NE.id_ASNH4M) .AND. (it.NE.id_CINO3M) & |
---|
124 | .AND. (it.NE.id_ASSO4M) .AND. (it.NE.id_CSSO4M) .AND. & |
---|
125 | (it.NE.id_ASNO3M) .AND. (it.NE.id_CSNO3M) ) THEN |
---|
126 | #else |
---|
127 | IF ((it.NE.id_CIDUSTM) & |
---|
128 | .AND. (it.NE.id_ASSSM) .AND. (it.NE.id_CSSSM) .AND. (it.NE.id_SSSSM) & |
---|
129 | .AND. (it.NE.id_ASPOMM) .AND. (it.NE.id_AIPOMM) & |
---|
130 | .AND. (it.NE.id_ASBCM) .AND. (it.NE.id_AIBCM) & |
---|
131 | .AND. (it.NE.id_ASNH4M) .AND. (it.NE.id_CINO3M) & |
---|
132 | .AND. (it.NE.id_ASSO4M) .AND. (it.NE.id_CSSO4M) .AND. & |
---|
133 | (it.NE.id_ASNO3M) .AND. (it.NE.id_CSNO3M) ) THEN |
---|
134 | #endif |
---|
135 | #endif |
---|
136 | CYCLE |
---|
137 | ENDIF |
---|
138 | |
---|
139 | IF (config_inca .NE. 'aeNP') THEN |
---|
140 | DO la=1,las |
---|
141 | CALL xios_inca_send_field("OD"//cla(la)//"_"//solsym(it),tausum(:,la,it)) |
---|
142 | CALL xios_inca_send_field("OD"//cla(la)//"3D_"//solsym(it),tau(:,:,la,it)) |
---|
143 | ENDDO |
---|
144 | ENDIF |
---|
145 | |
---|
146 | CALL xios_inca_send_field("SED_"//solsym(it),sflux(:,it)) |
---|
147 | CALL xios_inca_send_field("WET_"//solsym(it),wflux(:,it)) |
---|
148 | CALL xios_inca_send_field("LOAD_"//solsym(it),aload(:,it)) |
---|
149 | CALL xios_inca_send_field("Emi_alt_"//solsym(it),eflux_alt(:,:,it)) |
---|
150 | CALL xios_inca_send_field("MDW_"//solsym(it),mdw(:,:,it)) |
---|
151 | CALL xios_inca_send_field("AERH2O_"//solsym(it),spaerh2o(:,:,it)) |
---|
152 | |
---|
153 | ENDDO !it=trmx,trnx |
---|
154 | |
---|
155 | IF (config_inca .NE. 'aeNP') THEN |
---|
156 | ! forcing diagnostics |
---|
157 | DO la=1,naero_grp |
---|
158 | CALL xios_inca_send_field("ODUVVIS_"//TRIM(mrfname(la)) ,tau_allaer(:,:,la,1)) |
---|
159 | CALL xios_inca_send_field("ODVISIR_"//TRIM(mrfname(la)) ,tau_allaer(:,:,la,2)) |
---|
160 | CALL xios_inca_send_field("SSAUVVIS_"//TRIM(mrfname(la)),piz_allaer(:,:,la,1)) |
---|
161 | CALL xios_inca_send_field("SSAVISIR_"//TRIM(mrfname(la)),piz_allaer(:,:,la,2)) |
---|
162 | CALL xios_inca_send_field("ASYUVVIS_"//TRIM(mrfname(la)),cg_allaer(:,:,la,1)) |
---|
163 | CALL xios_inca_send_field("ASYVISIR_"//TRIM(mrfname(la)),cg_allaer(:,:,la,2)) |
---|
164 | ENDDO |
---|
165 | ENDIF |
---|
166 | |
---|
167 | CALL xios_inca_send_field("AERH2O_AER",totaerh2o(:,:)) |
---|
168 | CALL xios_inca_send_field("AIRMASS",airm(:,:)) |
---|
169 | CALL xios_inca_send_field("DZ",zheight(:,:)) |
---|
170 | |
---|
171 | #ifndef DUSS |
---|
172 | |
---|
173 | CALL xios_inca_send_field("LOAD_DMS" , aload_dms(:) ) |
---|
174 | CALL xios_inca_send_field("LOAD_DMSO", aload_dmso(:)) |
---|
175 | CALL xios_inca_send_field("LOAD_SO2" , aload_so2(:) ) |
---|
176 | |
---|
177 | CALL xios_inca_send_field("WET_SO2" , wfluxso2(:) ) |
---|
178 | CALL xios_inca_send_field("WET_DMS" , wfluxdms(:) ) |
---|
179 | CALL xios_inca_send_field("WET_DMSO" , wfluxdmso(:) ) |
---|
180 | CALL xios_inca_send_field("WET_NOY" , wfluxnoy(:) ) |
---|
181 | CALL xios_inca_send_field("WET_NH3" , wfluxnh3(:) ) |
---|
182 | CALL xios_inca_send_field("WET_HNO3" , wfluxhno3(:) ) |
---|
183 | |
---|
184 | ! closing the sulfur budget |
---|
185 | CALL xios_inca_send_field("Emi_alt_SO2",eflux_alt_so2(:,:)) ! Added ThL |
---|
186 | CALL xios_inca_send_field("Emi_alt_NH3",eflux_alt_nh3(:,:)) ! Added ThL |
---|
187 | CALL xios_inca_send_field("Emi_alt_NO2",eflux_alt_no2(:,:)) ! Added ThL |
---|
188 | CALL xios_inca_send_field("SO2_p_dmsoh" ,SO2_p_dmsoh(:,:) ) |
---|
189 | CALL xios_inca_send_field("SO2_p_dmsno3",SO2_p_dmsno3(:,:)) |
---|
190 | CALL xios_inca_send_field("SO2_p_h2soh" ,SO2_p_h2soh(:,:) ) |
---|
191 | CALL xios_inca_send_field("SO2_p_dmsooh",SO2_p_dmsooh(:,:)) |
---|
192 | CALL xios_inca_send_field("DMSO_p_dmsoh",DMSO_p_dmsoh(:,:)) |
---|
193 | |
---|
194 | CALL xios_inca_send_field("Wet3D_SO2",wet3d_so2(:,:)) |
---|
195 | CALL xios_inca_send_field("Wet3D_DMS",wet3d_dms(:,:)) |
---|
196 | |
---|
197 | IF (config_inca .NE. 'aeNP') THEN |
---|
198 | CALL xios_inca_send_field("Wet3D_ASSO4M",wet3d_asso4m) |
---|
199 | CALL xios_inca_send_field("Wet3D_ASNH4M",wet3d_asnh4m) |
---|
200 | CALL xios_inca_send_field("Wet3D_ASNO3M",wet3d_asno3m) |
---|
201 | CALL xios_inca_send_field("Wet3D_CSNO3M",wet3d_csno3m) |
---|
202 | CALL xios_inca_send_field("Wet3D_CINO3M",wet3d_cino3m) |
---|
203 | ENDIF |
---|
204 | |
---|
205 | CALL xios_inca_send_field("ASSO4M_p_so2h2o2",ASSO4M_p_so2h2o2(:,:)) |
---|
206 | CALL xios_inca_send_field("ASSO4M_p_so2o3" ,ASSO4M_p_so2o3(:,:) ) |
---|
207 | CALL xios_inca_send_field("ASSO4M_p_so2oh" ,ASSO4M_p_so2oh(:,:) ) |
---|
208 | CALL xios_inca_send_field("ASMSAM_p_dmsooh" ,ASMSAM_p_dmsooh(:,:) ) |
---|
209 | CALL xios_inca_send_field("ASNO3M_p_nh3hno3",ASNO3M_p_nh3hno3(:,:)) |
---|
210 | CALL xios_inca_send_field("ASNH4M_p_nh3hno3",ASNH4M_p_nh3hno3(:,:)) |
---|
211 | CALL xios_inca_send_field("NH3_p_nh3hno3" ,NH3_p_nh3hno3(:,:) ) |
---|
212 | |
---|
213 | CALL xios_inca_send_field("ASSO4M_p_so2oh_col", asso4m_p_so2oh_col) |
---|
214 | CALL xios_inca_send_field("ASSO4M_p_so2o3_col", asso4m_p_so2o3_col) |
---|
215 | CALL xios_inca_send_field("ASSO4M_p_so2h2o2_col", asso4m_p_so2h2o2_col) |
---|
216 | |
---|
217 | #endif |
---|
218 | |
---|
219 | |
---|
220 | #ifdef NMHC |
---|
221 | CALL xios_inca_send_field("CINO3_p_a",cino3_p_a(:,:)) |
---|
222 | CALL xios_inca_send_field("CSNO3_p_a1",csno3_p_a1(:,:)) |
---|
223 | CALL xios_inca_send_field("HNO3_p_nh3hno3",hno3_p_nh3hno3(:,:)) |
---|
224 | #endif |
---|
225 | |
---|
226 | #endif |
---|
227 | |
---|
228 | #ifdef NMHC |
---|
229 | CALL xios_inca_send_field("ptrop",ptrop(:)) |
---|
230 | CALL xios_inca_send_field("LghtFlash",flash(:)) |
---|
231 | CALL xios_inca_send_field("CGLghtFlash",flpcg(:)) |
---|
232 | CALL xios_inca_send_field("O3_ste",o3_st_flx(:)) |
---|
233 | CALL xios_inca_send_field("O3_prod",o3_prod(:,:)) |
---|
234 | CALL xios_inca_send_field("O3_loss",o3_loss(:,:)) |
---|
235 | CALL xios_inca_send_field("CO_loss",co_loss(:,:)) |
---|
236 | CALL xios_inca_send_field("CH4_loss",ch4_loss(:,:)) |
---|
237 | CALL xios_inca_send_field("N2O_loss",N2O_loss(:,:)) |
---|
238 | CALL xios_inca_send_field("o3_col",o3_col(:)) |
---|
239 | CALL xios_inca_send_field("o3tot_col",o3tot_col(:)) |
---|
240 | CALL xios_inca_send_field("co_col",co_col(:)) |
---|
241 | CALL xios_inca_send_field("so2_col",so2_col(:)) |
---|
242 | CALL xios_inca_send_field("oh_col",oh_col(:)) |
---|
243 | CALL xios_inca_send_field("ch4_col",ch4_col(:)) |
---|
244 | CALL xios_inca_send_field("ch2o_col",ch2o_col(:)) |
---|
245 | CALL xios_inca_send_field("no2_col",no2_col(:)) |
---|
246 | CALL xios_inca_send_field("hno2_col",hno2_col(:)) |
---|
247 | CALL xios_inca_send_field("Dry_HONO",dry_hono(:)) |
---|
248 | CALL xios_inca_send_field("Wet3D_H2O2",wet3d_h2o2(:,:)) |
---|
249 | CALL xios_inca_send_field("Wet3D_HONO",wet3d_hono(:,:)) |
---|
250 | CALL xios_inca_send_field("HNO3_p_g",hno3_p_g(:,:)) |
---|
251 | CALL xios_inca_send_field("HNO3_p_a",hno3_p_a(:,:)) |
---|
252 | CALL xios_inca_send_field("HNO3_l_g",hno3_l_g(:,:)) |
---|
253 | CALL xios_inca_send_field("HNO3_l_a",hno3_l_a(:,:)) |
---|
254 | |
---|
255 | #endif |
---|
256 | |
---|
257 | #if defined(NMHC) || defined(AER) |
---|
258 | #ifndef DUSS |
---|
259 | CALL xios_inca_send_field("NH3_l_g",nh3_l_g(:,:)) |
---|
260 | CALL xios_inca_send_field("NH3_l_a",nh3_l_a(:,:)) |
---|
261 | CALL xios_inca_send_field("HONO_p_g",hono_p_g(:,:)) |
---|
262 | CALL xios_inca_send_field("HONO_p_a",hono_p_a(:,:)) |
---|
263 | CALL xios_inca_send_field("HONO_l_g",hono_l_g(:,:)) |
---|
264 | CALL xios_inca_send_field("HONO_l_a",hono_l_a(:,:)) |
---|
265 | CALL xios_inca_send_field("Wet3D_NH3",wet3d_nh3(:,:)) |
---|
266 | CALL xios_inca_send_field("Dry_NH3",dry_nh3(:)) |
---|
267 | CALL xios_inca_send_field("nh3_col",nh3_col(:)) |
---|
268 | CALL xios_inca_send_field("Dry_HNO3",dry_hno3(:)) |
---|
269 | CALL xios_inca_send_field("Dry_NOY",dry_noy(:)) |
---|
270 | CALL xios_inca_send_field("Wet3D_NOY",wet3d_noy(:,:)) |
---|
271 | CALL xios_inca_send_field("Wet3D_HNO3",wet3d_hno3(:,:)) |
---|
272 | |
---|
273 | #ifdef NMHC |
---|
274 | CALL xios_inca_send_field("ASAPp1a_p",ASAPp1a_p(:,:)) |
---|
275 | CALL xios_inca_send_field("ASAPp2a_p",ASAPp2a_p(:,:)) |
---|
276 | CALL xios_inca_send_field("ASARp1a_p",ASARp1a_p(:,:)) |
---|
277 | CALL xios_inca_send_field("ASARp2a_p",ASARp2a_p(:,:)) |
---|
278 | CALL xios_inca_send_field("POM_p_g",pom_p_g(:,:)) |
---|
279 | #endif |
---|
280 | |
---|
281 | #endif |
---|
282 | #endif |
---|
283 | |
---|
284 | |
---|
285 | #ifdef AER |
---|
286 | |
---|
287 | IF (config_inca .NE. 'aeNP') THEN |
---|
288 | |
---|
289 | CALL xios_inca_send_field("taucld" ,cld_tau(:,:)) |
---|
290 | CALL xios_inca_send_field("taucldpi",cld_taupi(:,:)) |
---|
291 | CALL xios_inca_send_field("cldemi" ,cld_emi(:,:)) |
---|
292 | CALL xios_inca_send_field("CCM1" ,ccm1(:,:)) |
---|
293 | CALL xios_inca_send_field("CCM2" ,ccm2(:,:)) |
---|
294 | |
---|
295 | #ifndef DUSS |
---|
296 | #ifdef NMHC |
---|
297 | inter_tautot(:) = & |
---|
298 | tausum(:,2,id_CIDUSTM) + tausum(:,2,id_ASSO4M) + & |
---|
299 | tausum(:,2,id_ASAPp1a) + tausum(:,2,id_ASAPp2a) + & |
---|
300 | tausum(:,2,id_ASARp1a) + tausum(:,2,id_ASARp2a) + & |
---|
301 | tausum(:,2,id_AIBCM) + tausum(:,2,id_ASBCM) + & |
---|
302 | tausum(:,2,id_AIPOMM) + tausum(:,2,id_ASPOMM) + & |
---|
303 | tausum(:,2,id_CSSSM) + tausum(:,2,id_ASSSM) + & |
---|
304 | tausum(:,2,id_SSSSM) + tausum(:,2,id_ASNO3M) + & |
---|
305 | tausum(:,2,id_CINO3M) + tausum(:,2,id_CSNO3M) |
---|
306 | |
---|
307 | inter_tauant(:) = & |
---|
308 | tausum(:,2,id_ASSO4M) + tausum(:,2,id_AIBCM) + & |
---|
309 | tausum(:,2,id_ASBCM) + tausum(:,2,id_AIPOMM) + & |
---|
310 | tausum(:,2,id_ASARp1a) + tausum(:,2,id_ASARp2a) + & |
---|
311 | tausum(:,2,id_ASPOMM) + tausum(:,2,id_ASNO3M) |
---|
312 | #else |
---|
313 | inter_tautot(:) = & |
---|
314 | tausum(:,2,id_CIDUSTM) + tausum(:,2,id_ASSO4M) + & |
---|
315 | tausum(:,2,id_AIBCM) + tausum(:,2,id_ASBCM) + & |
---|
316 | tausum(:,2,id_AIPOMM) + tausum(:,2,id_ASPOMM) + & |
---|
317 | tausum(:,2,id_CSSSM) + tausum(:,2,id_ASSSM) + & |
---|
318 | tausum(:,2,id_SSSSM) + tausum(:,2,id_ASNO3M) + & |
---|
319 | tausum(:,2,id_CINO3M) + tausum(:,2,id_CSNO3M) |
---|
320 | |
---|
321 | inter_tauant(:) = & |
---|
322 | tausum(:,2,id_ASSO4M) + tausum(:,2,id_AIBCM) + & |
---|
323 | tausum(:,2,id_ASBCM) + tausum(:,2,id_AIPOMM) + & |
---|
324 | tausum(:,2,id_ASPOMM) + tausum(:,2,id_ASNO3M) |
---|
325 | |
---|
326 | #endif |
---|
327 | #else |
---|
328 | inter_tautot(:) = & |
---|
329 | tausum(:,2,id_CIDUSTM) + tausum(:,2,id_CSSSM) + & |
---|
330 | tausum(:,2,id_ASSSM) + tausum(:,2,id_SSSSM) |
---|
331 | |
---|
332 | inter_tauant(:) = 0. |
---|
333 | #endif |
---|
334 | |
---|
335 | inter_taunat(:) = & |
---|
336 | tausum(:,2,id_CIDUSTM) + tausum(:,2,id_CSSSM) + & |
---|
337 | tausum(:,2,id_ASSSM) + tausum(:,2,id_SSSSM) |
---|
338 | |
---|
339 | CALL xios_inca_send_field("tautot_550",inter_tautot(:)) |
---|
340 | CALL xios_inca_send_field("tauant_550",inter_tauant(:)) |
---|
341 | CALL xios_inca_send_field("taunat_550",inter_taunat(:)) |
---|
342 | CALL xios_inca_send_field("SOLUBLE_LOAD" ,colmass_solu_aero(:)) |
---|
343 | CALL xios_inca_send_field("SOLUBLE_LOAD_PI" ,colmass_solu_aero_pi(:)) |
---|
344 | CALL xios_inca_send_field("SOLUBLE_LOAD_ANTR",colmass_solu_antro(:)) |
---|
345 | |
---|
346 | DO it=1,naero_grp |
---|
347 | CALL xios_inca_send_field("SWTOAAS_"//mrfname(it) , dforctoaas(:,it) ) |
---|
348 | CALL xios_inca_send_field("SWTOACS_"//mrfname(it) ,dforctoacs(:,it) ) |
---|
349 | CALL xios_inca_send_field("SWSRFAS_"//mrfname(it) ,dforcsrfas(:,it) ) |
---|
350 | CALL xios_inca_send_field("SWSRFCS_"//mrfname(it) ,dforcsrfcs(:,it) ) |
---|
351 | CALL xios_inca_send_field("FSWTOAAS_"//mrfname(it),swtoaas(:,it)) |
---|
352 | CALL xios_inca_send_field("FSWTOACS_"//mrfname(it),swtoacs(:,it)) |
---|
353 | CALL xios_inca_send_field("FSWSRFAS_"//mrfname(it),swsrfas(:,it)) |
---|
354 | CALL xios_inca_send_field("FSWSRFCS_"//mrfname(it),swsrfcs(:,it)) |
---|
355 | ENDDO |
---|
356 | CALL xios_inca_send_field("SWTOAAS_AI" ,iforctoaas(:)) |
---|
357 | CALL xios_inca_send_field("SWSRFAS_AI" ,iforcsrfas(:)) |
---|
358 | CALL xios_inca_send_field("FSWTOAAS_AI",swtoaas_ai(:)) |
---|
359 | CALL xios_inca_send_field("FSWSRFAS_AI",swsrfas_ai(:)) |
---|
360 | |
---|
361 | !! CLOUD FORCING |
---|
362 | CALL xios_inca_send_field("cforcTOA_0" ,cforctoa_0(:)) |
---|
363 | CALL xios_inca_send_field("cforcSRF_0" ,cforcsrf_0(:)) |
---|
364 | CALL xios_inca_send_field("DcforcTOA_NAT" ,dcforctoa_nat(:)) |
---|
365 | CALL xios_inca_send_field("DcforcSRF_NAT" ,dcforcsrf_nat(:)) |
---|
366 | CALL xios_inca_send_field("DcforcTOA_ANTR",dcforctoa_antr(:)) |
---|
367 | CALL xios_inca_send_field("DcforcSRF_ANTR",dcforcsrf_antr(:)) |
---|
368 | CALL xios_inca_send_field("CLOUDfract" ,cldfract(:)) |
---|
369 | CALL xios_inca_send_field("cRFtoa_nat" ,cRFtoa_nat(:)) |
---|
370 | CALL xios_inca_send_field("cRFsrf_nat" ,cRFsrf_nat(:)) |
---|
371 | CALL xios_inca_send_field("cRFtoa_antr" ,cRFtoa_antr(:)) |
---|
372 | CALL xios_inca_send_field("cRFsrf_antr" ,cRFsrf_antr(:)) |
---|
373 | |
---|
374 | !! LMD variables |
---|
375 | CALL xios_inca_send_field("SWTOAAS_AD",swtoaas_ad(:)) |
---|
376 | CALL xios_inca_send_field("SWTOACS_AD",swtoacs_ad(:)) |
---|
377 | CALL xios_inca_send_field("SWSRFAS_AD",swsrfas_ad(:)) |
---|
378 | CALL xios_inca_send_field("SWSRFCS_AD",swsrfcs_ad(:)) |
---|
379 | |
---|
380 | !! 2: Fluxes used for heat |
---|
381 | CALL xios_inca_send_field("tops" ,tops(:)) |
---|
382 | CALL xios_inca_send_field("tops0",tops0(:)) |
---|
383 | CALL xios_inca_send_field("topl" ,topl(:)) |
---|
384 | CALL xios_inca_send_field("topl0",topl0(:)) |
---|
385 | !! END FLUXES-FORCING DIAGN |
---|
386 | |
---|
387 | |
---|
388 | ENDIF |
---|
389 | |
---|
390 | |
---|
391 | !! couplage avec orchidee |
---|
392 | IF (CoupSurfAtm) THEN |
---|
393 | |
---|
394 | CALL xios_inca_send_field("maxvegetfrac",maxvegetfrac_fromOrch(:,:) ) |
---|
395 | CALL xios_inca_send_field("SurfType_frac",surftype_frac(:,:) ) |
---|
396 | CALL xios_inca_send_field("vegetfrac",vegetfrac_fromOrch(:,:) ) |
---|
397 | CALL xios_inca_send_field("LAI", lai_fromOrch(:,:)) |
---|
398 | CALL xios_inca_send_field("snowfromOrch", snow_fromOrch(:)) |
---|
399 | |
---|
400 | DO it=1,nb_flux |
---|
401 | |
---|
402 | CALL xios_inca_send_field(field_emi_names(it), emiflx_fromOrch(:,:,it)) |
---|
403 | CALL xios_inca_send_field('tot'//field_emi_names(it), tot_emiflx_fromOrch(:,it)) |
---|
404 | |
---|
405 | length = len_trim(field_emi_names(it)) |
---|
406 | tmp_name = field_emi_names(it) |
---|
407 | CALL xios_inca_send_field('EmiNoBio_'//TRIM(tmp_name(5:length)), eflux_notfromveg(:,it)) |
---|
408 | CALL xios_inca_send_field('EmiBio_'//TRIM(tmp_name(5:length)), eflux_veg(:,it)) |
---|
409 | |
---|
410 | ENDDO |
---|
411 | |
---|
412 | ENDIF |
---|
413 | |
---|
414 | #endif |
---|
415 | END SUBROUTINE OUTFLD_XIOS |
---|