Changeset 4157
- Timestamp:
- May 18, 2022, 8:10:04 PM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/Dust/phytracr_spl_mod.F90
r4071 r4157 820 820 ! 1/ le call phytrac se fait avec nqmax-2 donc nous avons bien 821 821 ! les vrais traceurs (nbtr) dans phytrac (pas la vapeur ni eau liquide) 822 !! AS : nqmax-2 devrait etre nqmax-3 apres introducton de H2Oi ; 823 !! et c'est encore different avec le parser de DC ? 822 824 !====================================================================== 823 825 #include "dimensions.h" … … 1264 1266 IF(.NOT.tracers(iq)%isInPhysics) CYCLE 1265 1267 itr = itr+1 1266 write(str2,'(i2.2)') itr 1268 write(str2,'(i2.2)') itrr 1267 1269 call iophys_ecrit('TRA'//str2,klev,'SOURCE','',tr_seri(:,:,itr)) 1268 1270 enddo … … 1574 1576 ENDIF 1575 1577 ! JE initializon to cero the tracers 1576 ! DO it =1,nbtr1577 ! tr_seri(:,:,it )=0.01578 ! DO itr=1,nbtr 1579 ! tr_seri(:,:,itr)=0.0 1578 1580 ! ENDDO 1579 1581 ! JE end … … 1581 1583 ! tr_seri(:,:,:)=0.0 1582 1584 ! 1583 ! DO it =1,nbtr1584 ! trm_aux(it )=0.01585 ! src_aux(it )=0.01586 ! diag_trm(it )=0.01587 ! diag_drydep(it )=0.01588 ! diag_wetdep(it )=0.01589 ! diag_cvtdep(it )=0.01590 ! diag_emissn(it )=0.01585 ! DO itr=1,nbtr 1586 ! trm_aux(itr)=0.0 1587 ! src_aux(itr)=0.0 1588 ! diag_trm(itr)=0.0 1589 ! diag_drydep(itr)=0.0 1590 ! diag_wetdep(itr)=0.0 1591 ! diag_cvtdep(itr)=0.0 1592 ! diag_emissn(itr)=0.0 1591 1593 ! ENDDO 1592 1594 ! diag_g2part=0.0 … … 1764 1766 1765 1767 ! 1766 DO it =1,nbtr1768 DO itr=1,nbtr 1767 1769 DO k=1,klev 1768 1770 DO i=1,klon 1769 d_tr_cv(i,k,it )=0.1770 d_tr_trsp(i,k,it )=0.1771 d_tr_sscav(i,k,it )=0.1772 d_tr_sat(i,k,it )=0.1773 d_tr_uscav(i,k,it )=0.1774 d_tr(i,k,it )=0.1775 d_tr_insc(i,k,it )=0.1776 d_tr_bcscav(i,k,it )=0.1777 d_tr_evapls(i,k,it )=0.1778 d_tr_ls(i,k,it )=0.1779 d_tr_cl(i,k,it )=0.1780 d_tr_th(i,k,it )=0.1771 d_tr_cv(i,k,itr)=0. 1772 d_tr_trsp(i,k,itr)=0. 1773 d_tr_sscav(i,k,itr)=0. 1774 d_tr_sat(i,k,itr)=0. 1775 d_tr_uscav(i,k,itr)=0. 1776 d_tr(i,k,itr)=0. 1777 d_tr_insc(i,k,itr)=0. 1778 d_tr_bcscav(i,k,itr)=0. 1779 d_tr_evapls(i,k,itr)=0. 1780 d_tr_ls(i,k,itr)=0. 1781 d_tr_cl(i,k,itr)=0. 1782 d_tr_th(i,k,itr)=0. 1781 1783 1782 d_tr_cv_o(i,k,it )=0.1783 d_tr_trsp_o(i,k,it )=0.1784 d_tr_sscav_o(i,k,it )=0.1785 d_tr_sat_o(i,k,it )=0.1786 d_tr_uscav_o(i,k,it )=0.1787 1788 1789 qDi(i,k,it )=0.1790 qPr(i,k,it )=0.1791 qPa(i,k,it )=0.1792 qMel(i,k,it )=0.1793 qTrdi(i,k,it )=0.1794 dtrcvMA(i,k,it )=0.1795 zmfd1a(i,k,it )=0.1796 zmfdam(i,k,it )=0.1797 zmfphi2(i,k,it )=0.1784 d_tr_cv_o(i,k,itr)=0. 1785 d_tr_trsp_o(i,k,itr)=0. 1786 d_tr_sscav_o(i,k,itr)=0. 1787 d_tr_sat_o(i,k,itr)=0. 1788 d_tr_uscav_o(i,k,itr)=0. 1789 1790 1791 qDi(i,k,itr)=0. 1792 qPr(i,k,itr)=0. 1793 qPa(i,k,itr)=0. 1794 qMel(i,k,itr)=0. 1795 qTrdi(i,k,itr)=0. 1796 dtrcvMA(i,k,itr)=0. 1797 zmfd1a(i,k,itr)=0. 1798 zmfdam(i,k,itr)=0. 1799 zmfphi2(i,k,itr)=0. 1798 1800 END DO 1799 1801 END DO … … 1801 1803 1802 1804 1803 DO it =1,nbtr1805 DO itr=1,nbtr 1804 1806 DO i=1,klon 1805 qPrls(i,it )=0.01806 dtrconv(i,it )=0.01807 qPrls(i,itr)=0.0 1808 dtrconv(i,itr)=0.0 1807 1809 !JE20140507<< 1808 d_tr_dry(i,it )=0.01809 flux_tr_dry(i,it )=0.01810 d_tr_dry(i,itr)=0.0 1811 flux_tr_dry(i,itr)=0.0 1810 1812 !JE20140507>> 1811 1813 ENDDO 1812 1814 ENDDO 1813 1815 1814 DO it =1,nbtr1816 DO itr=1,nbtr 1815 1817 DO i=1, klon 1816 his_dh(i,it )=0.01817 his_dhlsc(i,it )=0.01818 his_dhcon(i,it )=0.01819 his_dhbclsc(i,it )=0.01820 his_dhbccon(i,it )=0.01821 trm(i,it )=0.01822 his_th(i,it )=0.01823 his_dhkecv(i,it )=0.01824 his_ds(i,it )=0.01825 his_dhkelsc(i,it )=0.01818 his_dh(i,itr)=0.0 1819 his_dhlsc(i,itr)=0.0 1820 his_dhcon(i,itr)=0.0 1821 his_dhbclsc(i,itr)=0.0 1822 his_dhbccon(i,itr)=0.0 1823 trm(i,itr)=0.0 1824 his_th(i,itr)=0.0 1825 his_dhkecv(i,itr)=0.0 1826 his_ds(i,itr)=0.0 1827 his_dhkelsc(i,itr)=0.0 1826 1828 1827 1829 ENDDO … … 2065 2067 !======================================================================= 2066 2068 ! 2067 DO it =1,nbtr2069 DO itr=1,nbtr 2068 2070 DO j=1,klev 2069 2071 DO i=1,klon 2070 tmp_var(i,j)=tr_seri(i,j,it )2072 tmp_var(i,j)=tr_seri(i,j,itr) 2071 2073 ENDDO 2072 2074 ENDDO … … 2074 2076 DO j=1,klev 2075 2077 DO i=1,klon 2076 tr_seri(i,j,it )=tmp_var(i,j)2078 tr_seri(i,j,itr)=tmp_var(i,j) 2077 2079 ENDDO 2078 2080 ENDDO … … 2091 2093 ! 2092 2094 IF (lminmax) THEN 2093 DO it =1,nbtr2094 CALL checknanqfi(tr_seri(:,:,it ),qmin,qmax,'nan_avt_coarem')2095 DO itr=1,nbtr 2096 CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_avt_coarem') 2095 2097 ENDDO 2096 DO it =1,nbtr2097 CALL minmaxqfi2(tr_seri(:,:,it ),qmin,qmax,'avt coarem')2098 DO itr=1,nbtr 2099 CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'avt coarem') 2098 2100 ENDDO 2099 2101 CALL minmaxsource(source_tr,qmin,qmax,'src: avt coarem') … … 2128 2130 ! . MAXVAL(tr_seri(:,:,3)) 2129 2131 #ifdef IOPHYS_DUST 2130 do it =1,nbtr2131 write(str2,'(i2.2)') it 2132 call iophys_ecrit('sav'//str2,1,'SOURCE','',source_tr(:,it ))2133 call iophys_ecrit('fav'//str2,1,'SOURCE','',source_tr(:,it ))2132 do itr=1,nbtr 2133 write(str2,'(i2.2)') itr 2134 call iophys_ecrit('sav'//str2,1,'SOURCE','',source_tr(:,itr)) 2135 call iophys_ecrit('fav'//str2,1,'SOURCE','',source_tr(:,itr)) 2134 2136 enddo 2135 do it =1,nbtr2136 write(str2,'(i2.2)') it 2137 call iophys_ecrit('TRB'//str2,klev,'SOURCE','',tr_seri(:,:,it ))2137 do itr=1,nbtr 2138 write(str2,'(i2.2)') itr 2139 call iophys_ecrit('TRB'//str2,klev,'SOURCE','',tr_seri(:,:,itr)) 2138 2140 enddo 2139 2141 #endif … … 2161 2163 2162 2164 #ifdef IOPHYS_DUST 2163 do it =1,nbtr2164 write(str2,'(i2.2)') it 2165 call iophys_ecrit('sap'//str2,1,'SOURCE','',source_tr(:,it ))2166 call iophys_ecrit('fap'//str2,1,'SOURCE','',source_tr(:,it ))2165 do itr=1,nbtr 2166 write(str2,'(i2.2)') itr 2167 call iophys_ecrit('sap'//str2,1,'SOURCE','',source_tr(:,itr)) 2168 call iophys_ecrit('fap'//str2,1,'SOURCE','',source_tr(:,itr)) 2167 2169 enddo 2168 2170 #endif 2169 2171 2170 2172 IF (lminmax) THEN 2171 DO it =1,nbtr2172 CALL checknanqfi(tr_seri(:,:,it ),qmin,qmax,'nan_after_coarem')2173 ENDDO 2174 DO it =1,nbtr2175 CALL minmaxqfi2(tr_seri(:,:,it ),qmin,qmax,'after coarem')2173 DO itr=1,nbtr 2174 CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_after_coarem') 2175 ENDDO 2176 DO itr=1,nbtr 2177 CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'after coarem') 2176 2178 ENDDO 2177 2179 CALL minmaxsource(source_tr,qmin,qmax,'src: after coarem') … … 2245 2247 ! 2246 2248 IF (lminmax) THEN 2247 DO it =1,nbtr2248 CALL checknanqfi(tr_seri(:,:,it ),qmin,qmax,'nan_after precur')2249 ENDDO 2250 DO it =1,nbtr2251 CALL minmaxqfi2(tr_seri(:,:,it ),qmin,qmax,'after precur')2249 DO itr=1,nbtr 2250 CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_after precur') 2251 ENDDO 2252 DO itr=1,nbtr 2253 CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'after precur') 2252 2254 ENDDO 2253 2255 CALL minmaxsource(source_tr,qmin,qmax,'src: after precur') … … 2259 2261 #ifdef IOPHYS_DUST 2260 2262 ! 2261 do it =1,nbtr2262 write(str2,'(i2.2)') it 2263 call iophys_ecrit('tpr'//str2,1,'SOURCE','',source_tr(:,it ))2264 call iophys_ecrit('fpr'//str2,1,'SOURCE','',flux_tr(:,it ))2263 do itr=1,nbtr 2264 write(str2,'(i2.2)') itr 2265 call iophys_ecrit('tpr'//str2,1,'SOURCE','',source_tr(:,itr)) 2266 call iophys_ecrit('fpr'//str2,1,'SOURCE','',flux_tr(:,itr)) 2265 2267 enddo 2266 2268 #endif … … 2279 2281 ! 2280 2282 IF (lminmax) THEN 2281 DO it =1,nbtr2282 CALL checknanqfi(tr_seri(:,:,it ),qmin,qmax,'nan_after_fineem')2283 ENDDO 2284 DO it =1,nbtr2285 CALL minmaxqfi2(tr_seri(:,:,it ),qmin,qmax,'after fineem')2283 DO itr=1,nbtr 2284 CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_after_fineem') 2285 ENDDO 2286 DO itr=1,nbtr 2287 CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'after fineem') 2286 2288 ENDDO 2287 2289 IF (lcheckmass) THEN 2288 DO it =1,nbtr2289 CALL checkmass(tr_seri(:,:,it ),RNAVO,masse(it),zdz, &2290 DO itr=1,nbtr 2291 CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz, & 2290 2292 pplay,t_seri,iscm3,'after fineem') 2291 2293 ENDDO … … 2306 2308 2307 2309 #ifdef IOPHYS_DUST 2308 do it =1,nbtr2309 write(str2,'(i2.2)') it 2310 call iophys_ecrit('t'//str2,1,'SOURCE','',source_tr(:,it ))2311 call iophys_ecrit('f'//str2,1,'SOURCE','',flux_tr(:,it ))2310 do itr=1,nbtr 2311 write(str2,'(i2.2)') itr 2312 call iophys_ecrit('t'//str2,1,'SOURCE','',source_tr(:,itr)) 2313 call iophys_ecrit('f'//str2,1,'SOURCE','',flux_tr(:,itr)) 2312 2314 enddo 2313 2315 #endif … … 2322 2324 !======================================================================= 2323 2325 ! 2324 ! DO it =1,nbtr2325 ! CALL checkmass(tr_seri(:,:,it ),RNAVO,masse(it),zdz,2326 ! DO itr=1,nbtr 2327 ! CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz, 2326 2328 ! . pplay,t_seri,iscm3,'') 2327 2329 ! ENDDO … … 2334 2336 ENDIF 2335 2337 2336 DO it =1,nbtr2338 DO itr=1,nbtr 2337 2339 DO j=1,klev 2338 2340 DO i=1,klon 2339 tmp_var(i,j)=tr_seri(i,j,it )2341 tmp_var(i,j)=tr_seri(i,j,itr) 2340 2342 ENDDO 2341 2343 ENDDO … … 2343 2345 DO j=1,klev 2344 2346 DO i=1,klon 2345 tr_seri(i,j,it )=tmp_var(i,j)2347 tr_seri(i,j,itr)=tmp_var(i,j) 2346 2348 ENDDO 2347 2349 ENDDO … … 2350 2352 !---------------------------- 2351 2353 IF (lminmax) THEN 2352 DO it =1,nbtr2353 CALL checknanqfi(tr_seri(:,:,it ),qmin,qmax,'nan_before_depo')2354 ENDDO 2355 DO it =1,nbtr2356 CALL minmaxqfi2(tr_seri(:,:,it ),qmin,qmax,'before depo')2354 DO itr=1,nbtr 2355 CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_before_depo') 2356 ENDDO 2357 DO itr=1,nbtr 2358 CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'before depo') 2357 2359 ENDDO 2358 2360 IF (lcheckmass) THEN 2359 DO it =1,nbtr2360 CALL checkmass(tr_seri(:,:,it ),RNAVO,masse(it),zdz, &2361 DO itr=1,nbtr 2362 CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz, & 2361 2363 pplay,t_seri,iscm3,'before depo') 2362 2364 ENDDO … … 2366 2368 2367 2369 #ifdef IOPHYS_DUST 2368 do it =1,nbtr2369 write(str2,'(i2.2)') it 2370 call iophys_ecrit('TRC'//str2,klev,'SOURCE','',tr_seri(:,:,it ))2370 do itr=1,nbtr 2371 write(str2,'(i2.2)') itr 2372 call iophys_ecrit('TRC'//str2,klev,'SOURCE','',tr_seri(:,:,itr)) 2371 2373 enddo 2372 2374 #endif … … 2378 2380 ! 2379 2381 IF (lminmax) THEN 2380 DO it =1,nbtr2381 CALL checknanqfi(tr_seri(:,:,it ),qmin,qmax,'nan_after_depo')2382 ENDDO 2383 DO it =1,nbtr2384 CALL minmaxqfi2(tr_seri(:,:,it ),qmin,qmax,'after depo')2382 DO itr=1,nbtr 2383 CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_after_depo') 2384 ENDDO 2385 DO itr=1,nbtr 2386 CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'after depo') 2385 2387 ENDDO 2386 2388 IF (lcheckmass) THEN 2387 DO it =1,nbtr2388 CALL checkmass(tr_seri(:,:,it ),RNAVO,masse(it),zdz, &2389 DO itr=1,nbtr 2390 CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz, & 2389 2391 pplay,t_seri,iscm3,'after depo') 2390 2392 ENDDO … … 2408 2410 2409 2411 #ifdef IOPHYS_DUST 2410 do it =1,nbtr2411 write(str2,'(i2.2)') it 2412 call iophys_ecrit('TRD'//str2,klev,'SOURCE','',tr_seri(:,:,it ))2412 do itr=1,nbtr 2413 write(str2,'(i2.2)') itr 2414 call iophys_ecrit('TRD'//str2,klev,'SOURCE','',tr_seri(:,:,itr)) 2413 2415 enddo 2414 2416 #endif … … 2428 2430 END DO 2429 2431 ! 2430 DO it =1,nbtr2432 DO itr=1,nbtr 2431 2433 DO j=1, klev 2432 2434 DO i=1, klon 2433 tmp_var(i,j)=tr_seri(i,j,it )2434 aux_var2(i)=source_tr(i,it )2435 tmp_var(i,j)=tr_seri(i,j,itr) 2436 aux_var2(i)=source_tr(i,itr) 2435 2437 ENDDO 2436 2438 ENDDO … … 2443 2445 !KE 2444 2446 CALL cltrac(pdtphys, coefh,t_seri,tmp_var,aux_var2,paprs,pplay, & 2445 delp,aux_var3,d_tr_dry,flux_tr_dry(:,it ))2447 delp,aux_var3,d_tr_dry,flux_tr_dry(:,itr)) 2446 2448 ENDIF 2447 2449 2448 2450 DO i=1, klon 2449 2451 DO j=1, klev 2450 tr_seri(i,j,it )=tmp_var(i,j)2451 d_tr(i,j,it )=aux_var3(i,j)2452 d_tr_cl(i,j,it )=d_tr(i,j,it)2452 tr_seri(i,j,itr)=tmp_var(i,j) 2453 d_tr(i,j,itr)=aux_var3(i,j) 2454 d_tr_cl(i,j,itr)=d_tr(i,j,itr) 2453 2455 ENDDO 2454 2456 ENDDO 2455 2457 DO k = 1, klev 2456 2458 DO i = 1, klon 2457 tr_seri(i,k,it ) = tr_seri(i,k,it) + d_tr(i,k,it)2459 tr_seri(i,k,itr) = tr_seri(i,k,itr) + d_tr(i,k,itr) 2458 2460 ENDDO 2459 2461 ENDDO 2460 2462 print *,' AFTER Cltrac' 2461 2463 IF (lminmax) THEN 2462 CALL minmaxqfi2(tr_seri(:,:,it ),qmin,qmax,'after cltrac')2464 CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'after cltrac') 2463 2465 ENDIF 2464 2466 ENDDO !--end itr loop … … 2484 2486 call iophys_ecrit('yv1',1,'yv1','',yv1) 2485 2487 call iophys_ecrit('delp',klev,'delp','',delp) 2486 do it =1,nbtr2487 write(str2,'(i2.2)') it 2488 call iophys_ecrit('TRE'//str2,klev,'SOURCE','',tr_seri(:,:,it ))2488 do itr=1,nbtr 2489 write(str2,'(i2.2)') itr 2490 call iophys_ecrit('TRE'//str2,klev,'SOURCE','',tr_seri(:,:,itr)) 2489 2491 enddo 2490 2492 #endif … … 2503 2505 2504 2506 IF (lminmax) THEN 2505 DO it =1,nbtr2506 CALL checknanqfi(tr_seri(:,:,it ),qmin,qmax,'nan_before therm')2507 ENDDO 2508 DO it =1,nbtr2509 CALL minmaxqfi2(tr_seri(:,:,it ),qmin,qmax,'before therm')2507 DO itr=1,nbtr 2508 CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_before therm') 2509 ENDDO 2510 DO itr=1,nbtr 2511 CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'before therm') 2510 2512 ENDDO 2511 2513 IF (lcheckmass) THEN 2512 DO it =1,nbtr2513 CALL checkmass(tr_seri(:,:,it ),RNAVO,masse(it),zdz, &2514 DO itr=1,nbtr 2515 CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz, & 2514 2516 pplay,t_seri,iscm3,'before therm') 2515 2517 ENDDO … … 2518 2520 ENDIF 2519 2521 2520 DO it =1,nbtr2522 DO itr=1,nbtr 2521 2523 DO k=1,klev 2522 2524 DO i=1,klon 2523 tmp_var3(i,k,it )=tr_seri(i,k,it)2524 d_tr_th(i,k,it )=0.2525 tr_seri(i,k,it )=MAX(tr_seri(i,k,it),0.)2526 !JE: precursor >>1e10 tr_seri(i,k,it )=MIN(tr_seri(i,k,it),1.e10)2525 tmp_var3(i,k,itr)=tr_seri(i,k,itr) 2526 d_tr_th(i,k,itr)=0. 2527 tr_seri(i,k,itr)=MAX(tr_seri(i,k,itr),0.) 2528 !JE: precursor >>1e10 tr_seri(i,k,itr)=MIN(tr_seri(i,k,itr),1.e10) 2527 2529 END DO 2528 2530 END DO … … 2530 2532 2531 2533 !JE new implicit scheme 20140323 2532 DO it =1,nbtr2534 DO itr=1,nbtr 2533 2535 CALL thermcell_dq(klon,klev,1,pdtphys,fm_therm,entr_therm, & 2534 zmasse,tr_seri(1:klon,1:klev,it ), &2535 d_tr(1:klon,1:klev,it ),ztra_th,0 )2536 zmasse,tr_seri(1:klon,1:klev,itr), & 2537 d_tr(1:klon,1:klev,itr),ztra_th,0 ) 2536 2538 2537 2539 DO k=1,klev 2538 2540 DO i=1,klon 2539 d_tr(i,k,it )=pdtphys*d_tr(i,k,it)2540 d_tr_th(i,k,it )=d_tr_th(i,k,it)+d_tr(i,k,it)2541 tr_seri(i,k,it )=MAX(tr_seri(i,k,it)+d_tr(i,k,it),0.)2541 d_tr(i,k,itr)=pdtphys*d_tr(i,k,itr) 2542 d_tr_th(i,k,itr)=d_tr_th(i,k,itr)+d_tr(i,k,itr) 2543 tr_seri(i,k,itr)=MAX(tr_seri(i,k,itr)+d_tr(i,k,itr),0.) 2542 2544 END DO 2543 2545 END DO … … 2547 2549 ! old scheme explicit 2548 2550 ! nsplit=10 2549 ! DO it =1,nbtr2551 ! DO itr=1,nbtr 2550 2552 ! DO isplit=1,nsplit 2551 2553 ! CALL dqthermcell(klon,klev,pdtphys/nsplit, 2552 2554 ! . fm_therm,entr_therm,zmasse, 2553 ! . tr_seri(1:klon,1:klev,it ),2554 ! . d_tr(1:klon,1:klev,it ),ztra_th)2555 ! . tr_seri(1:klon,1:klev,itr), 2556 ! . d_tr(1:klon,1:klev,itr),ztra_th) 2555 2557 ! DO k=1,klev 2556 2558 ! DO i=1,klon 2557 ! d_tr(i,k,it )=pdtphys*d_tr(i,k,it)/nsplit2558 ! d_tr_th(i,k,it )=d_tr_th(i,k,it)+d_tr(i,k,it)2559 ! tr_seri(i,k,it )=MAX(tr_seri(i,k,it)+d_tr(i,k,it),0.)2559 ! d_tr(i,k,itr)=pdtphys*d_tr(i,k,itr)/nsplit 2560 ! d_tr_th(i,k,itr)=d_tr_th(i,k,itr)+d_tr(i,k,itr) 2561 ! tr_seri(i,k,itr)=MAX(tr_seri(i,k,itr)+d_tr(i,k,itr),0.) 2560 2562 ! END DO 2561 2563 ! END DO … … 2564 2566 !JE end modif 20140323 2565 2567 2566 DO it =1,nbtr2568 DO itr=1,nbtr 2567 2569 DO k=1,klev 2568 2570 DO i=1,klon 2569 tmp_var(i,k)=tr_seri(i,k,it )-tmp_var3(i,k,it)2571 tmp_var(i,k)=tr_seri(i,k,itr)-tmp_var3(i,k,itr) 2570 2572 ENDDO 2571 2573 ENDDO 2572 2574 IF (lminmax) THEN 2573 2575 IF (lcheckmass) THEN 2574 CALL checkmass(tmp_var(:,:),RNAVO,masse(it ),zdz, &2576 CALL checkmass(tmp_var(:,:),RNAVO,masse(itr),zdz, & 2575 2577 pplay,t_seri,iscm3,'dtr therm ') 2576 2578 ENDIF … … 2580 2582 DO k=1,klev 2581 2583 DO i=1,klon 2582 his_th(i,it )=his_th(i,it)+ &2584 his_th(i,itr)=his_th(i,itr)+ & 2583 2585 (tmp_var(i,k))/RNAVO* & 2584 masse(it )*1.e3*1.e6*zdz(i,k)/pdtphys2586 masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 2585 2587 END DO !klon 2586 2588 END DO !klev … … 2588 2590 END DO !it 2589 2591 IF (lminmax) THEN 2590 DO it =1,nbtr2591 CALL checknanqfi(tr_seri(:,:,it ),qmin,qmax,'nan_after therm')2592 ENDDO 2593 DO it =1,nbtr2594 CALL minmaxqfi2(tr_seri(:,:,it ),qmin,qmax,'after therm')2592 DO itr=1,nbtr 2593 CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_after therm') 2594 ENDDO 2595 DO itr=1,nbtr 2596 CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'after therm') 2595 2597 ENDDO 2596 2598 IF (lcheckmass) THEN 2597 DO it =1,nbtr2598 CALL checkmass(tr_seri(:,:,it ),RNAVO,masse(it),zdz, &2599 DO itr=1,nbtr 2600 CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz, & 2599 2601 pplay,t_seri,iscm3,'after therm') 2600 2602 ENDDO … … 2621 2623 2622 2624 2623 DO it =1,nbtr2625 DO itr=1,nbtr 2624 2626 DO j=1,klev 2625 2627 DO i=1,klon 2626 tmp_var(i,j)=tr_seri(i,j,it )2628 tmp_var(i,j)=tr_seri(i,j,itr) 2627 2629 ENDDO 2628 2630 ENDDO … … 2630 2632 DO j=1,klev 2631 2633 DO i=1,klon 2632 tr_seri(i,j,it )=tmp_var(i,j)2634 tr_seri(i,j,itr)=tmp_var(i,j) 2633 2635 ENDDO 2634 2636 ENDDO … … 2639 2641 2640 2642 IF (lminmax) THEN 2641 DO it =1,nbtr2642 CALL checknanqfi(tr_seri(:,:,it ),qmin,qmax,'nan_before_sedi')2643 ENDDO 2644 DO it =1,nbtr2645 CALL minmaxqfi2(tr_seri(:,:,it ),qmin,qmax,'before sedi')2643 DO itr=1,nbtr 2644 CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_before_sedi') 2645 ENDDO 2646 DO itr=1,nbtr 2647 CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'before sedi') 2646 2648 ENDDO 2647 2649 IF (lcheckmass) THEN 2648 DO it =1,nbtr2649 CALL checkmass(tr_seri(:,:,it ),RNAVO,masse(it),zdz, &2650 DO itr=1,nbtr 2651 CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz, & 2650 2652 pplay,t_seri,iscm3,'before sedi') 2651 2653 ENDDO … … 2665 2667 2666 2668 IF (lminmax) THEN 2667 DO it =1,nbtr2668 CALL checknanqfi(tr_seri(:,:,it ),qmin,qmax,'nan_after_sedi')2669 ENDDO 2670 DO it =1,nbtr2671 CALL minmaxqfi2(tr_seri(:,:,it ),qmin,qmax,'after sedi')2669 DO itr=1,nbtr 2670 CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_after_sedi') 2671 ENDDO 2672 DO itr=1,nbtr 2673 CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'after sedi') 2672 2674 ENDDO 2673 2675 IF (lcheckmass) THEN 2674 DO it =1,nbtr2675 CALL checkmass(tr_seri(:,:,it ),RNAVO,masse(it),zdz, &2676 DO itr=1,nbtr 2677 CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz, & 2676 2678 pplay,t_seri,iscm3,'after sedi') 2677 2679 ENDDO … … 2683 2685 !======================================================================= 2684 2686 #ifdef IOPHYS_DUST 2685 do it =1,nbtr2686 write(str2,'(i2.2)') it 2687 call iophys_ecrit('TRF'//str2,klev,'SOURCE','',tr_seri(:,:,it ))2687 do itr=1,nbtr 2688 write(str2,'(i2.2)') itr 2689 call iophys_ecrit('TRF'//str2,klev,'SOURCE','',tr_seri(:,:,itr)) 2688 2690 enddo 2689 2691 #endif … … 2700 2702 ENDIF 2701 2703 2702 DO it =1,nbtr2704 DO itr=1,nbtr 2703 2705 DO j=1,klev 2704 2706 DO i=1,klon 2705 tmp_var(i,j)=tr_seri(i,j,it )2707 tmp_var(i,j)=tr_seri(i,j,itr) 2706 2708 ENDDO 2707 2709 ENDDO … … 2709 2711 DO j=1,klev 2710 2712 DO i=1,klon 2711 tr_seri(i,j,it )=tmp_var(i,j)2713 tr_seri(i,j,itr)=tmp_var(i,j) 2712 2714 ENDDO 2713 2715 ENDDO … … 2726 2728 2727 2729 IF (lminmax) THEN 2728 DO it =1,nbtr2729 CALL checknanqfi(tr_seri(:,:,it ),qmin,qmax,'nan_beforegastopar')2730 ENDDO 2731 DO it =1,nbtr2732 CALL minmaxqfi2(tr_seri(:,:,it ),qmin,qmax,'before gastopar')2730 DO itr=1,nbtr 2731 CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_beforegastopar') 2732 ENDDO 2733 DO itr=1,nbtr 2734 CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'before gastopar') 2733 2735 ENDDO 2734 2736 IF (lcheckmass) THEN 2735 DO it =1,nbtr2736 CALL checkmass(tr_seri(:,:,it ),RNAVO,masse(it),zdz, &2737 DO itr=1,nbtr 2738 CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz, & 2737 2739 pplay,t_seri,iscm3,'before gastopar') 2738 2740 ENDDO … … 2746 2748 ! 2747 2749 IF (lminmax) THEN 2748 DO it =1,nbtr2749 CALL checknanqfi(tr_seri(:,:,it ),qmin,qmax,'nan_after_gastopar')2750 ENDDO 2751 DO it =1,nbtr2752 CALL minmaxqfi2(tr_seri(:,:,it ),qmin,qmax,'after gastopar')2750 DO itr=1,nbtr 2751 CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_after_gastopar') 2752 ENDDO 2753 DO itr=1,nbtr 2754 CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'after gastopar') 2753 2755 ENDDO 2754 2756 IF (lcheckmass) THEN 2755 DO it =1,nbtr2756 CALL checkmass(tr_seri(:,:,it ),RNAVO,masse(it),zdz, &2757 DO itr=1,nbtr 2758 CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz, & 2757 2759 pplay,t_seri,iscm3,'after gastopar') 2758 2760 ENDDO … … 2777 2779 2778 2780 #ifdef IOPHYS_DUST 2779 do it =1,nbtr2780 write(str2,'(i2.2)') it 2781 call iophys_ecrit('TRG'//str2,klev,'SOURCE','',tr_seri(:,:,it ))2781 do itr=1,nbtr 2782 write(str2,'(i2.2)') itr 2783 call iophys_ecrit('TRG'//str2,klev,'SOURCE','',tr_seri(:,:,itr)) 2782 2784 enddo 2783 2785 #endif … … 2793 2795 2794 2796 2795 DO it =1,nbtr2797 DO itr=1,nbtr 2796 2798 DO j=1,klev 2797 2799 DO i=1,klon 2798 tmp_var(i,j)=tr_seri(i,j,it )2800 tmp_var(i,j)=tr_seri(i,j,itr) 2799 2801 ENDDO 2800 2802 ENDDO … … 2802 2804 DO j=1,klev 2803 2805 DO i=1,klon 2804 tr_seri(i,j,it )=tmp_var(i,j)2806 tr_seri(i,j,itr)=tmp_var(i,j) 2805 2807 ENDDO 2806 2808 ENDDO … … 2815 2817 2816 2818 IF (lminmax) THEN 2817 DO it =1,nbtr2818 CALL checknanqfi(tr_seri(:,:,it ),qmin,qmax,'nan_before_incloud')2819 ENDDO 2820 DO it =1,nbtr2821 CALL minmaxqfi2(tr_seri(:,:,it ),qmin,qmax,'before incloud')2819 DO itr=1,nbtr 2820 CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_before_incloud') 2821 ENDDO 2822 DO itr=1,nbtr 2823 CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'before incloud') 2822 2824 ENDDO 2823 2825 IF (lcheckmass) THEN 2824 DO it =1,nbtr2825 CALL checkmass(tr_seri(:,:,it ),RNAVO,masse(it),zdz, &2826 DO itr=1,nbtr 2827 CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz, & 2826 2828 pplay,t_seri,iscm3,'before incloud') 2827 2829 ENDDO … … 2856 2858 print *,' BEFORE blcloud (after incloud)' 2857 2859 IF (lminmax) THEN 2858 DO it =1,nbtr2859 CALL checknanqfi(tr_seri(:,:,it ),qmin,qmax,'nan_before_blcloud')2860 ENDDO 2861 DO it =1,nbtr2862 CALL minmaxqfi2(tr_seri(:,:,it ),qmin,qmax,'before blcloud')2860 DO itr=1,nbtr 2861 CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_before_blcloud') 2862 ENDDO 2863 DO itr=1,nbtr 2864 CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'before blcloud') 2863 2865 ENDDO 2864 2866 IF (lcheckmass) THEN 2865 DO it =1,nbtr2866 CALL checkmass(tr_seri(:,:,it ),RNAVO,masse(it),zdz, &2867 DO itr=1,nbtr 2868 CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz, & 2867 2869 pplay,t_seri,iscm3,'before blcloud') 2868 2870 ENDDO … … 2899 2901 2900 2902 IF (lminmax) THEN 2901 DO it =1,nbtr2902 CALL checknanqfi(tr_seri(:,:,it ),qmin,qmax,'nan_after_blcloud')2903 DO itr=1,nbtr 2904 CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_after_blcloud') 2903 2905 ENDDO 2904 DO it =1,nbtr2905 CALL minmaxqfi2(tr_seri(:,:,it ),qmin,qmax,'after blcloud')2906 DO itr=1,nbtr 2907 CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'after blcloud') 2906 2908 ENDDO 2907 2909 IF (lcheckmass) THEN 2908 DO it =1,nbtr2909 CALL checkmass(tr_seri(:,:,it ),RNAVO,masse(it),zdz, &2910 DO itr=1,nbtr 2911 CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz, & 2910 2912 pplay,t_seri,iscm3,'after blcloud') 2911 2913 ENDDO … … 2917 2919 ENDIF !--lessivage 2918 2920 2919 DO it =1,nbtr2921 DO itr=1,nbtr 2920 2922 DO j=1,klev 2921 2923 DO i=1,klon 2922 tmp_var(i,j)=tr_seri(i,j,it )2924 tmp_var(i,j)=tr_seri(i,j,itr) 2923 2925 ENDDO 2924 2926 ENDDO … … 2926 2928 DO j=1,klev 2927 2929 DO i=1,klon 2928 tr_seri(i,j,it )=tmp_var(i,j)2930 tr_seri(i,j,itr)=tmp_var(i,j) 2929 2931 ENDDO 2930 2932 ENDDO … … 2952 2954 ! 2953 2955 #ifdef IOPHYS_DUST 2954 do it =1,nbtr2955 write(str2,'(i2.2)') it 2956 call iophys_ecrit('TRH'//str2,klev,'SOURCE','',tr_seri(:,:,it ))2956 do itr=1,nbtr 2957 write(str2,'(i2.2)') itr 2958 call iophys_ecrit('TRH'//str2,klev,'SOURCE','',tr_seri(:,:,itr)) 2957 2959 enddo 2958 2960 #endif … … 2969 2971 2970 2972 IF (lminmax) THEN 2971 DO it =1,nbtr2972 CALL checknanqfi(tr_seri(:,:,it ),qmin,qmax,'nan_before_trconve')2973 ENDDO 2974 DO it =1,nbtr2975 CALL minmaxqfi2(tr_seri(:,:,it ),qmin,qmax,'before trconve')2973 DO itr=1,nbtr 2974 CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_before_trconve') 2975 ENDDO 2976 DO itr=1,nbtr 2977 CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'before trconve') 2976 2978 ENDDO 2977 2979 IF (lcheckmass) THEN 2978 DO it =1,nbtr2979 CALL checkmass(tr_seri(:,:,it ),RNAVO,masse(it),zdz, &2980 DO itr=1,nbtr 2981 CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz, & 2980 2982 pplay,t_seri,iscm3,'before trconve') 2981 2983 ENDDO … … 2994 2996 pen_d,pde_d,paprs,zdz,xconv,qmin,qmax,.false.,masse, & 2995 2997 dtrconv,tr_seri) 2996 DO it =1,nbtr2997 d_tr_cv(:,:,it )=0.2998 DO itr=1,nbtr 2999 d_tr_cv(:,:,itr)=0. 2998 3000 ENDDO 2999 3001 … … 3001 3003 ! KE 3002 3004 print *,'JE: KE in phytracr_spl' 3003 DO it =1,nbtr3005 DO itr=1,nbtr 3004 3006 DO k = 1, klev 3005 3007 DO i = 1, klon 3006 tmp_var3(i,k,it )=tr_seri(i,k,it)3008 tmp_var3(i,k,itr)=tr_seri(i,k,itr) 3007 3009 END DO 3008 3010 END DO 3009 3011 ENDDO 3010 3012 3011 DO it =1,nbtr3013 DO itr=1,nbtr 3012 3014 ! routine for aerosols . otherwise, check cvltrorig 3013 print *,'Check sum before cvltr it ',it,SUM(tr_seri(:,:,it))3015 print *,'Check sum before cvltr itr)',itr,SUM(tr_seri(:,:,itr)) 3014 3016 ! IF (.FALSE.) THEN 3015 3017 CALL cvltr_spl(pdtphys, da, phi,phi2,d1a,dam, mp,ep, & 3016 3018 sigd,sij,wght_cvfd,clw,elij,epmlmMm,eplaMm, & 3017 3019 pmflxr,pmflxs,evapls,t_seri,wdtrainA,wdtrainM, & 3018 ! paprs,it ,tr_seri,upwd,dnwd,itop_con,ibas_con, &3019 paprs,it ,tmp_var3,upwd,dnwd,itop_con,ibas_con, &3020 ! paprs,itr,tr_seri,upwd,dnwd,itop_con,ibas_con, & 3021 paprs,itr,tmp_var3,upwd,dnwd,itop_con,ibas_con, & 3020 3022 henry,kk,zrho,ccntrAA_spla,ccntrENV_spla,coefcoli_spla, & 3021 3023 id_prec,id_fine,id_coss, id_codu, id_scdu, & … … 3029 3031 ! . sigd,sij,wght_cvfd,clw,elij,epmlmMm,eplaMm, 3030 3032 ! . pmflxr,pmflxs,evapls,t_seri,wdtrainA,wdtrainM, 3031 ! . paprs,it ,tmp_var3,upwd,dnwd,itop_con,ibas_con,3033 ! . paprs,itr,tmp_var3,upwd,dnwd,itop_con,ibas_con, 3032 3034 ! . d_tr_cv,d_tr_trsp,d_tr_sscav,d_tr_sat,d_tr_uscav,qDi,qPr, 3033 3035 ! . qPa,qMel,qTrdi,dtrcvMA,Mint, … … 3047 3049 ! CALL checknanqfi(paprs(:,:),1.,-1.,'paprs ') 3048 3050 ! CALL checknanqfi(pplay(:,:),1.,-1.,'pplay ') 3049 ! CALL checknanqfi(tmp_var3(:,:,it ),1.,-1.,'tmp_var3 ')3051 ! CALL checknanqfi(tmp_var3(:,:,itr),1.,-1.,'tmp_var3 ') 3050 3052 ! CALL checknanqfi(upwd(:,:),1.,-1.,'upwd ') 3051 3053 ! CALL checknanqfi(dnwd(:,:),1.,-1.,'dnwd ') 3052 ! CALL checknanqfi(d_tr_cv(:,:,it ),1.,-1.,'d_tr_cv ')3054 ! CALL checknanqfi(d_tr_cv(:,:,itr),1.,-1.,'d_tr_cv ') 3053 3055 ! IF (.TRUE.) THEN 3054 3056 ! CALL cvltr_noscav(it,pdtphys, da, phi,mp,wght_cvfd,paprs, … … 3057 3059 DO k = 1, klev 3058 3060 DO i = 1, klon 3059 ! tr_seri(i,k,it ) = tr_seri(i,k,it) + d_tr_cv(i,k,it)3060 tr_seri(i,k,it )=(tmp_var3(i,k,it)+d_tr_cv(i,k,it))3061 tmp_var(i,k)=d_tr_cv(i,k,it )3061 ! tr_seri(i,k,itr) = tr_seri(i,k,itr) + d_tr_cv(i,k,itr) 3062 tr_seri(i,k,itr)=(tmp_var3(i,k,itr)+d_tr_cv(i,k,itr)) 3063 tmp_var(i,k)=d_tr_cv(i,k,itr) 3062 3064 3063 3065 END DO … … 3068 3070 DO k = 1, klev 3069 3071 DO i = 1, klon 3070 dtrconv(i,it )=0.03071 his_dhkecv(i,it )=his_dhkecv(i,it)-tmp_var(i,k) &3072 /RNAVO*masse(it )*1.e3*1.e6*zdz(i,k)/pdtphys3072 dtrconv(i,itr)=0.0 3073 his_dhkecv(i,itr)=his_dhkecv(i,itr)-tmp_var(i,k) & 3074 /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 3073 3075 END DO 3074 3076 END DO … … 3079 3081 DO k = 1, klev 3080 3082 DO i = 1, klon 3081 dtrconv(i,it )=0.03082 his_ds(i,it )=his_ds(i,it)-tmp_var(i,k) &3083 /RNAVO*masse(it )*1.e3*1.e6*zdz(i,k)/pdtphys3083 dtrconv(i,itr)=0.0 3084 his_ds(i,itr)=his_ds(i,itr)-tmp_var(i,k) & 3085 /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 3084 3086 END DO 3085 3087 END DO … … 3087 3089 IF (lminmax) THEN 3088 3090 3089 print *,'Check sum after cvltr it ',it,SUM(tr_seri(:,:,it))3090 CALL minmaxqfi2(d_tr_cv(:,:,it ),qmin,qmax,'d_tr_cv:')3091 CALL minmaxqfi2(d_tr_trsp(:,:,it ),qmin,qmax,'d_tr_trsp:')3092 CALL minmaxqfi2(d_tr_sscav(:,:,it ),qmin,qmax,'d_tr_sscav:')3093 CALL minmaxqfi2(d_tr_sat(:,:,it ),qmin,qmax,'d_tr_sat:')3094 CALL minmaxqfi2(d_tr_uscav(:,:,it ),qmin,qmax,'d_tr_uscav:')3091 print *,'Check sum after cvltr itr)',itr,SUM(tr_seri(:,:,itr)) 3092 CALL minmaxqfi2(d_tr_cv(:,:,itr),qmin,qmax,'d_tr_cv:') 3093 CALL minmaxqfi2(d_tr_trsp(:,:,itr),qmin,qmax,'d_tr_trsp:') 3094 CALL minmaxqfi2(d_tr_sscav(:,:,itr),qmin,qmax,'d_tr_sscav:') 3095 CALL minmaxqfi2(d_tr_sat(:,:,itr),qmin,qmax,'d_tr_sat:') 3096 CALL minmaxqfi2(d_tr_uscav(:,:,itr),qmin,qmax,'d_tr_uscav:') 3095 3097 IF (lcheckmass) THEN 3096 CALL checkmass(d_tr_cv(:,:,it ),RNAVO,masse(it),zdz, &3098 CALL checkmass(d_tr_cv(:,:,itr),RNAVO,masse(itr),zdz, & 3097 3099 pplay,t_seri,.false.,'d_tr_cv:') 3098 3100 ENDIF … … 3102 3104 ENDIF ! iflag_conv 3103 3105 IF (lminmax) THEN 3104 DO it =1,nbtr3105 CALL checknanqfi(tr_seri(:,:,it ),qmin,qmax,'nan_after_trcon')3106 ENDDO 3107 DO it =1,nbtr3108 CALL minmaxqfi2(tr_seri(:,:,it ),qmin,qmax,'after trconv')3106 DO itr=1,nbtr 3107 CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_after_trcon') 3108 ENDDO 3109 DO itr=1,nbtr 3110 CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'after trconv') 3109 3111 ENDDO 3110 3112 IF (lcheckmass) THEN 3111 DO it =1,nbtr3112 CALL checkmass(tr_seri(:,:,it ),RNAVO,masse(it),zdz, &3113 DO itr=1,nbtr 3114 CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz, & 3113 3115 pplay,t_seri,iscm3,'after trconv') 3114 3116 ENDDO … … 3155 3157 call iophys_ecrit('wdtrainM',klev,'wdtrainM','',wdtrainM) 3156 3158 3157 do it =1,nbtr3158 write(str2,'(i2.2)') it 3159 call iophys_ecrit('TRI'//str2,klev,'SOURCE','',tr_seri(:,:,it ))3159 do itr=1,nbtr 3160 write(str2,'(i2.2)') itr 3161 call iophys_ecrit('TRI'//str2,klev,'SOURCE','',tr_seri(:,:,itr)) 3160 3162 enddo 3161 3163 #endif … … 3171 3173 print *,' BEFORE lsc_scav ' 3172 3174 IF (lminmax) THEN 3173 DO it =1,nbtr3174 CALL checknanqfi(tr_seri(:,:,it ),qmin,qmax,'nan_before_lsc_scav')3175 ENDDO 3176 DO it =1,nbtr3177 CALL minmaxqfi2(tr_seri(:,:,it ),qmin,qmax,'before lsc_scav')3175 DO itr=1,nbtr 3176 CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_before_lsc_scav') 3177 ENDDO 3178 DO itr=1,nbtr 3179 CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'before lsc_scav') 3178 3180 ENDDO 3179 3181 IF (lcheckmass) THEN 3180 DO it =1,nbtr3181 CALL checkmass(tr_seri(:,:,it ),RNAVO,masse(it),zdz, &3182 DO itr=1,nbtr 3183 CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz, & 3182 3184 pplay,t_seri,iscm3,'before lsc_scav') 3183 3185 ENDDO … … 3196 3198 !IF (.false.) THEN ! test #DFB (Binta) sans lsc_scav_spl 3197 3199 print *,'JE iflag_lscav',iflag_lscav 3198 DO it = 1,nbtr3200 DO itr=1,nbtr 3199 3201 3200 3202 ! incloud scavenging and removal by large scale rain ! orig : ql_incl … … 3203 3205 ! Liu (2001) proposed to use 1.5e-3 kg/kg 3204 3206 3205 ! CALL lsc_scav_orig(pdtphys,it ,iflag_lscav,ql_incl,prfl,psfl,3207 ! CALL lsc_scav_orig(pdtphys,itr,iflag_lscav,ql_incl,prfl,psfl, 3206 3208 ! . rneb,beta_fisrt, beta_v1,pplay,paprs, 3207 3209 ! . t_seri,tr_seri,d_tr_insc, 3208 3210 ! . d_tr_bcscav,d_tr_evapls,qPrls) 3209 CALL lsc_scav_spl(pdtphys,it ,iflag_lscav,ql_incl,prfl,psfl, &3211 CALL lsc_scav_spl(pdtphys,itr,iflag_lscav,ql_incl,prfl,psfl, & 3210 3212 rneb,beta_fisrt, beta_v1,pplay,paprs, & 3211 3213 t_seri,tr_seri,d_tr_insc, & … … 3217 3219 DO k = 1, klev 3218 3220 DO i = 1, klon 3219 d_tr_ls(i,k,it )=d_tr_insc(i,k,it)+d_tr_bcscav(i,k,it) &3220 +d_tr_evapls(i,k,it )3221 tr_seri(i,k,it )=tr_seri(i,k,it)+d_tr_ls(i,k,it)3222 tmp_var(i,k)=d_tr_ls(i,k,it )3221 d_tr_ls(i,k,itr)=d_tr_insc(i,k,itr)+d_tr_bcscav(i,k,itr) & 3222 +d_tr_evapls(i,k,itr) 3223 tr_seri(i,k,itr)=tr_seri(i,k,itr)+d_tr_ls(i,k,itr) 3224 tmp_var(i,k)=d_tr_ls(i,k,itr) 3223 3225 ENDDO 3224 3226 ENDDO … … 3228 3230 DO k=1,klev 3229 3231 DO i=1,klon 3230 his_dhkelsc(i,it )=his_dhkelsc(i,it)-tmp_var(i,k) &3231 /RNAVO*masse(it )*1.e3*1.e6*zdz(i,k)/pdtphys3232 his_dhkelsc(i,itr)=his_dhkelsc(i,itr)-tmp_var(i,k) & 3233 /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 3232 3234 3233 3235 END DO … … 3238 3240 ELSE 3239 3241 print *,'WARNING: NO lsc_scav, Please choose iflag_lscav=3 or 4' 3240 DO it = 1,nbtr3242 DO itr=1,nbtr 3241 3243 DO i=1,klon 3242 his_dhkelsc(i,it )=0.03244 his_dhkelsc(i,itr)=0.0 3243 3245 END DO ! klon 3244 3246 END DO !it=1,nbtr … … 3247 3249 print *,' AFTER lsc_scav ' 3248 3250 IF (lminmax) THEN 3249 DO it =1,nbtr3250 CALL checknanqfi(tr_seri(:,:,it ),qmin,qmax,'nan_after_lsc_scav')3251 ENDDO 3252 DO it =1,nbtr3253 CALL minmaxqfi2(tr_seri(:,:,it ),qmin,qmax,'after lsc_scav')3251 DO itr=1,nbtr 3252 CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_after_lsc_scav') 3253 ENDDO 3254 DO itr=1,nbtr 3255 CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'after lsc_scav') 3254 3256 ENDDO 3255 3257 IF (lcheckmass) THEN 3256 DO it =1,nbtr3257 CALL checkmass(tr_seri(:,:,it ),RNAVO,masse(it),zdz, &3258 DO itr=1,nbtr 3259 CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz, & 3258 3260 pplay,t_seri,iscm3,'after lsc_scav') 3259 3261 ENDDO … … 3281 3283 !======================================================================= 3282 3284 #ifdef IOPHYS_DUST 3283 do it =1,nbtr3284 write(str2,'(i2.2)') it 3285 call iophys_ecrit('TRJ'//str2,klev,'SOURCE','',tr_seri(:,:,it ))3285 do itr=1,nbtr 3286 write(str2,'(i2.2)') itr 3287 call iophys_ecrit('TRJ'//str2,klev,'SOURCE','',tr_seri(:,:,itr)) 3286 3288 enddo 3287 3289 #endif … … 3293 3295 3294 3296 3295 DO it =1,nbtr3297 DO itr=1,nbtr 3296 3298 DO j=1,klev 3297 3299 DO i=1,klon 3298 tmp_var(i,j)=tr_seri(i,j,it )3300 tmp_var(i,j)=tr_seri(i,j,itr) 3299 3301 ENDDO 3300 3302 ENDDO … … 3302 3304 DO j=1,klev 3303 3305 DO i=1,klon 3304 tr_seri(i,j,it )=tmp_var(i,j)3306 tr_seri(i,j,itr)=tmp_var(i,j) 3305 3307 ENDDO 3306 3308 ENDDO … … 3310 3312 ! 3311 3313 ! Computing burden in mg/m2 3312 DO it =1,nbtr3314 DO itr=1,nbtr 3313 3315 DO k=1, klev 3314 3316 DO i=1, klon 3315 trm(i,it )=trm(i,it)+tr_seri(i,k,it)*1.e6*zdz(i,k)* &3316 masse(it )*1.e3/RNAVO !--mg S/m23317 trm(i,itr)=trm(i,itr)+tr_seri(i,k,itr)*1.e6*zdz(i,k)* & 3318 masse(itr)*1.e3/RNAVO !--mg S/m2 3317 3319 ENDDO 3318 3320 ENDDO … … 3321 3323 ! Computing Surface concentration in ug/m3 3322 3324 ! 3323 DO it =1,nbtr3325 DO itr=1,nbtr 3324 3326 DO i=1, klon 3325 sconc_seri(i,it )=tr_seri(i,1,it)*1.e6* &3326 masse(it )*1.e3/RNAVO !--mg/m3 (tr_seri ist in g/cm3)3327 sconc_seri(i,itr)=tr_seri(i,1,itr)*1.e6* & 3328 masse(itr)*1.e3/RNAVO !--mg/m3 (tr_seri ist in g/cm3) 3327 3329 ENDDO 3328 3330 ENDDO … … 3556 3558 !====================================================================== 3557 3559 #ifdef IOPHYS_DUST 3558 do it =1,nbtr3559 write(str2,'(i2.2)') it 3560 call iophys_ecrit('TRK'//str2,klev,'SOURCE','',tr_seri(:,:,it ))3560 do itr=1,nbtr 3561 write(str2,'(i2.2)') itr 3562 call iophys_ecrit('TRK'//str2,klev,'SOURCE','',tr_seri(:,:,itr)) 3561 3563 enddo 3562 3564 #endif … … 3568 3570 ENDIF 3569 3571 3570 DO it =1,nbtr3572 DO itr=1,nbtr 3571 3573 DO j=1,klev 3572 3574 DO i=1,klon 3573 tmp_var(i,j)=tr_seri(i,j,it )3575 tmp_var(i,j)=tr_seri(i,j,itr) 3574 3576 ENDDO 3575 3577 ENDDO … … 3577 3579 DO j=1,klev 3578 3580 DO i=1,klon 3579 tr_seri(i,j,it )=tmp_var(i,j)3581 tr_seri(i,j,itr)=tmp_var(i,j) 3580 3582 ENDDO 3581 3583 ENDDO … … 3726 3728 ! prepare outputs cvltr 3727 3729 3728 DO it =1,nbtr3730 DO itr=1,nbtr 3729 3731 DO k=1,klev 3730 3732 DO i=1,klon 3731 tmp_var(i,k)=d_tr_cv(i,k,it )3733 tmp_var(i,k)=d_tr_cv(i,k,itr) 3732 3734 ENDDO 3733 3735 ENDDO … … 3735 3737 DO k=1,klev 3736 3738 DO i=1,klon 3737 d_tr_cv_o(i,k,it )=tmp_var(i,k) &3738 /RNAVO*masse(it )*1.e3*1.e6*zdz(i,k)/pdtphys3739 d_tr_cv_o(i,k,itr)=tmp_var(i,k) & 3740 /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 3739 3741 ENDDO 3740 3742 ENDDO 3741 3743 ENDDO 3742 DO it =1,nbtr3744 DO itr=1,nbtr 3743 3745 DO k=1,klev 3744 3746 DO i=1,klon 3745 tmp_var(i,k)=d_tr_trsp(i,k,it )3747 tmp_var(i,k)=d_tr_trsp(i,k,itr) 3746 3748 ENDDO 3747 3749 ENDDO … … 3749 3751 DO k=1,klev 3750 3752 DO i=1,klon 3751 d_tr_trsp_o(i,k,it )=tmp_var(i,k) &3752 /RNAVO*masse(it )*1.e3*1.e6*zdz(i,k)/pdtphys3753 d_tr_trsp_o(i,k,itr)=tmp_var(i,k) & 3754 /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 3753 3755 ENDDO 3754 3756 ENDDO 3755 3757 ENDDO 3756 DO it =1,nbtr3758 DO itr=1,nbtr 3757 3759 DO k=1,klev 3758 3760 DO i=1,klon 3759 tmp_var(i,k)=d_tr_sscav(i,k,it )3761 tmp_var(i,k)=d_tr_sscav(i,k,itr) 3760 3762 ENDDO 3761 3763 ENDDO … … 3763 3765 DO k=1,klev 3764 3766 DO i=1,klon 3765 d_tr_sscav_o(i,k,it )=tmp_var(i,k) &3766 /RNAVO*masse(it )*1.e3*1.e6*zdz(i,k)/pdtphys3767 d_tr_sscav_o(i,k,itr)=tmp_var(i,k) & 3768 /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 3767 3769 ENDDO 3768 3770 ENDDO 3769 3771 ENDDO 3770 DO it =1,nbtr3772 DO itr=1,nbtr 3771 3773 DO k=1,klev 3772 3774 DO i=1,klon 3773 tmp_var(i,k)=d_tr_sat(i,k,it )3775 tmp_var(i,k)=d_tr_sat(i,k,itr) 3774 3776 ENDDO 3775 3777 ENDDO … … 3777 3779 DO k=1,klev 3778 3780 DO i=1,klon 3779 d_tr_sat_o(i,k,it )=tmp_var(i,k) &3780 /RNAVO*masse(it )*1.e3*1.e6*zdz(i,k)/pdtphys3781 d_tr_sat_o(i,k,itr)=tmp_var(i,k) & 3782 /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 3781 3783 ENDDO 3782 3784 ENDDO 3783 3785 ENDDO 3784 DO it =1,nbtr3786 DO itr=1,nbtr 3785 3787 DO k=1,klev 3786 3788 DO i=1,klon 3787 tmp_var(i,k)=d_tr_uscav(i,k,it )3789 tmp_var(i,k)=d_tr_uscav(i,k,itr) 3788 3790 ENDDO 3789 3791 ENDDO … … 3791 3793 DO k=1,klev 3792 3794 DO i=1,klon 3793 d_tr_uscav_o(i,k,it )=tmp_var(i,k) &3794 /RNAVO*masse(it )*1.e3*1.e6*zdz(i,k)/pdtphys3795 d_tr_uscav_o(i,k,itr)=tmp_var(i,k) & 3796 /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 3795 3797 ENDDO 3796 3798 ENDDO … … 3798 3800 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 3799 3801 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 3800 DO it =1,nbtr3802 DO itr=1,nbtr 3801 3803 DO k=1,klev 3802 3804 DO i=1,klon 3803 tmp_var(i,k)=d_tr_insc(i,k,it )3805 tmp_var(i,k)=d_tr_insc(i,k,itr) 3804 3806 ENDDO 3805 3807 ENDDO … … 3807 3809 DO k=1,klev 3808 3810 DO i=1,klon 3809 d_tr_insc_o(i,k,it )=tmp_var(i,k) &3810 /RNAVO*masse(it )*1.e3*1.e6*zdz(i,k)/pdtphys3811 d_tr_insc_o(i,k,itr)=tmp_var(i,k) & 3812 /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 3811 3813 ENDDO 3812 3814 ENDDO … … 3814 3816 3815 3817 3816 DO it =1,nbtr3818 DO itr=1,nbtr 3817 3819 DO k=1,klev 3818 3820 DO i=1,klon 3819 tmp_var(i,k)=d_tr_bcscav(i,k,it )3821 tmp_var(i,k)=d_tr_bcscav(i,k,itr) 3820 3822 ENDDO 3821 3823 ENDDO … … 3823 3825 DO k=1,klev 3824 3826 DO i=1,klon 3825 d_tr_bcscav_o(i,k,it )=tmp_var(i,k) &3826 /RNAVO*masse(it )*1.e3*1.e6*zdz(i,k)/pdtphys3827 d_tr_bcscav_o(i,k,itr)=tmp_var(i,k) & 3828 /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 3827 3829 ENDDO 3828 3830 ENDDO … … 3830 3832 3831 3833 3832 DO it =1,nbtr3834 DO itr=1,nbtr 3833 3835 DO k=1,klev 3834 3836 DO i=1,klon 3835 tmp_var(i,k)=d_tr_evapls(i,k,it )3837 tmp_var(i,k)=d_tr_evapls(i,k,itr) 3836 3838 ENDDO 3837 3839 ENDDO … … 3839 3841 DO k=1,klev 3840 3842 DO i=1,klon 3841 d_tr_evapls_o(i,k,it )=tmp_var(i,k) &3842 /RNAVO*masse(it )*1.e3*1.e6*zdz(i,k)/pdtphys3843 d_tr_evapls_o(i,k,itr)=tmp_var(i,k) & 3844 /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 3843 3845 ENDDO 3844 3846 ENDDO … … 3846 3848 3847 3849 3848 DO it =1,nbtr3850 DO itr=1,nbtr 3849 3851 DO k=1,klev 3850 3852 DO i=1,klon 3851 tmp_var(i,k)=d_tr_ls(i,k,it )3853 tmp_var(i,k)=d_tr_ls(i,k,itr) 3852 3854 ENDDO 3853 3855 ENDDO … … 3855 3857 DO k=1,klev 3856 3858 DO i=1,klon 3857 d_tr_ls_o(i,k,it )=tmp_var(i,k) &3858 /RNAVO*masse(it )*1.e3*1.e6*zdz(i,k)/pdtphys3859 d_tr_ls_o(i,k,itr)=tmp_var(i,k) & 3860 /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 3859 3861 ENDDO 3860 3862 ENDDO … … 3862 3864 3863 3865 3864 DO it =1,nbtr3866 DO itr=1,nbtr 3865 3867 DO k=1,klev 3866 3868 DO i=1,klon 3867 tmp_var(i,k)=d_tr_dyn(i,k,it )3869 tmp_var(i,k)=d_tr_dyn(i,k,itr) 3868 3870 ENDDO 3869 3871 ENDDO … … 3871 3873 DO k=1,klev 3872 3874 DO i=1,klon 3873 d_tr_dyn_o(i,k,it )=tmp_var(i,k) &3874 /RNAVO*masse(it )*1.e3*1.e6*zdz(i,k)/pdtphys3875 d_tr_dyn_o(i,k,itr)=tmp_var(i,k) & 3876 /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 3875 3877 ENDDO 3876 3878 ENDDO … … 3878 3880 3879 3881 3880 DO it =1,nbtr3882 DO itr=1,nbtr 3881 3883 DO k=1,klev 3882 3884 DO i=1,klon 3883 tmp_var(i,k)=d_tr_cl(i,k,it )3885 tmp_var(i,k)=d_tr_cl(i,k,itr) 3884 3886 ENDDO 3885 3887 ENDDO … … 3887 3889 DO k=1,klev 3888 3890 DO i=1,klon 3889 d_tr_cl_o(i,k,it )=tmp_var(i,k) &3890 /RNAVO*masse(it )*1.e3*1.e6*zdz(i,k)/pdtphys3891 d_tr_cl_o(i,k,itr)=tmp_var(i,k) & 3892 /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 3891 3893 ENDDO 3892 3894 ENDDO … … 3894 3896 3895 3897 3896 DO it =1,nbtr3898 DO itr=1,nbtr 3897 3899 DO k=1,klev 3898 3900 DO i=1,klon 3899 tmp_var(i,k)=d_tr_th(i,k,it )3901 tmp_var(i,k)=d_tr_th(i,k,itr) 3900 3902 ENDDO 3901 3903 ENDDO … … 3903 3905 DO k=1,klev 3904 3906 DO i=1,klon 3905 d_tr_th_o(i,k,it )=tmp_var(i,k) &3906 /RNAVO*masse(it )*1.e3*1.e6*zdz(i,k)/pdtphys3907 d_tr_th_o(i,k,itr)=tmp_var(i,k) & 3908 /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 3907 3909 ENDDO 3908 3910 ENDDO … … 3911 3913 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 3912 3914 3913 DO it =1,nbtr3914 WRITE(str2,'(i2.2)') it 3915 DO itr=1,nbtr 3916 WRITE(str2,'(i2.2)') itr 3915 3917 DO i=1, klon 3916 his_dh(i,it )= his_dhlsc(i,it)+his_dhcon(i,it)+ &3917 his_dhbclsc(i,it )+his_dhbccon(i,it)3918 his_dh(i,itr)= his_dhlsc(i,itr)+his_dhcon(i,itr)+ & 3919 his_dhbclsc(i,itr)+his_dhbccon(i,itr) 3918 3920 3919 3921 ENDDO
Note: See TracChangeset
for help on using the changeset viewer.