- Timestamp:
- Feb 22, 2021, 12:44:07 PM (4 years ago)
- Location:
- LMDZ6/branches/LMDZ-tracers
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/LMDZ-tracers
- Property svn:mergeinfo changed
-
LMDZ6/branches/LMDZ-tracers/libf/phylmd/Dust/phys_output_write_spl_mod.F90
r3630 r3851 68 68 flux_sparam_sscoa,u10m_ss,v10m_ss 69 69 70 USE dustemission_mod, ONLY : m1dflux, m2dflux, m3dflux 70 USE dustemission_mod, ONLY : m1dflux, m2dflux, m3dflux 71 71 72 72 ! USE phytrac_mod, ONLY : d_tr_cl, d_tr_th, d_tr_cv, d_tr_lessi_impa, & … … 82 82 CONTAINS 83 83 84 ! ug Routine pour définir (lo s du premier passageà) ET sortir les variables84 ! ug Routine pour définir (lors du premier passageà) ET sortir les variables 85 85 SUBROUTINE phys_output_write_spl(itap, pdtphys, paprs, pphis, & 86 86 pplay, lmax_th, aerosol_couple, & … … 90 90 91 91 ! This subroutine does the actual writing of diagnostics that were 92 ! defined and initialised in phys_output_mod.F9092 ! defined and initialised mainly in phytracr_spl_mod.F90 (SPLA tracers, subroutine phytracr_spl_out_init) 93 93 94 94 USE dimphy, ONLY: klon, klev, klevp1 … … 148 148 o_alp_bl_fluct_m, o_alp_bl_fluct_tke, & 149 149 o_alp_bl_conv, o_alp_bl_stat, & 150 o_slab_qflux, o_tslab, o_slab_bils, & 150 o_slab_qflux, o_tslab, & 151 !o_slab_bils, & 151 152 o_slab_bilg, o_slab_sic, o_slab_tice, & 152 153 o_weakinv, o_dthmin, o_cldtau, & 153 154 o_cldemi, o_pr_con_l, o_pr_con_i, & 154 155 o_pr_lsc_l, o_pr_lsc_i, o_re, o_fl, & 155 o_rh2m, o_rh2m_min, o_rh2m_max, & 156 o_rh2m, & 157 !o_rh2m_min, o_rh2m_max, & 156 158 o_qsat2m, o_tpot, o_tpote, o_SWnetOR, & 157 159 o_LWdownOR, o_snowl, & 158 160 o_solldown, o_dtsvdfo, o_dtsvdft, & 159 161 o_dtsvdfg, o_dtsvdfi, o_z0m, o_z0h, o_od550aer, & 160 o_od865aer, o_abs visaer, o_od550lt1aer, &162 o_od865aer, o_abs550aer, o_od550lt1aer, & 161 163 o_sconcso4, o_sconcno3, o_sconcoa, o_sconcbc, & 162 164 o_sconcss, o_sconcdust, o_concso4, o_concno3, & … … 300 302 ema_cbmf, Ma, fm_therm, ale_bl, alp_bl, ale, & 301 303 alp, cin, wake_pe, wake_s, wake_deltat, & 304 ale_wake, ale_bl_stat, & 302 305 wake_deltaq, ftd, fqd, ale_bl_trig, albsol1, & 303 306 rnebcon, wo, falb1, albsol2, coefh, clwcon0, & … … 323 326 t2m, fluxt, fluxlat, fsollw, fsolsw, & 324 327 wfbils, wfbilo, cdragm, cdragh, cldl, cldm, & 325 cldh, cldt, JrNt, cldljn, cldmjn, cldhjn, & 326 cldtjn, cldq, flwp, fiwp, ue, ve, uq, vq, & 328 cldh, cldt, JrNt, & 329 ! cldljn, cldmjn, cldhjn, cldtjn & 330 cldq, flwp, fiwp, ue, ve, uq, vq, & 327 331 plcl, plfc, wbeff, upwd, dnwd, dnwd0, prw, & 328 332 s_pblh, s_pblt, s_lcl, s_therm, uwriteSTD, & 329 333 vwriteSTD, wwriteSTD, phiwriteSTD, qwriteSTD, & 330 twriteSTD, ale_wake, alp_wake, wake_h, & 334 twriteSTD, alp_wake, wake_h, & 335 !ale_wake, & 331 336 wake_omg, d_t_wake, d_q_wake, Vprecip, & 332 337 wdtrainA, wdtrainM, n2, s2, proba_notrig, & 333 random_notrig, ale_bl_stat, & 338 random_notrig, & 339 !ale_bl_stat, & 334 340 alp_bl_det, alp_bl_fluct_m, alp_bl_conv, & 335 341 alp_bl_stat, alp_bl_fluct_tke, slab_wfbils, & … … 337 343 pmflxr, pmflxs, prfl, psfl, re, fl, rh2m, & 338 344 qsat2m, tpote, tpot, d_ts, od550aer, & 339 od865aer, abs visaer, od550lt1aer, sconcso4, sconcno3, &345 od865aer, abs550aer, od550lt1aer, sconcso4, sconcno3, & 340 346 sconcoa, sconcbc, sconcss, sconcdust, concso4, concno3, & 341 347 concoa, concbc, concss, concdust, loadso4, & … … 372 378 bils_ec,bils_ech, bils_tke, bils_kinetic, bils_latent, bils_enthalp, & 373 379 itau_con, nfiles, clef_files, nid_files, zvstr_gwd_rando 374 USE ocean_slab_mod, ONLY: tslab, slab_bil s, slab_bilg, tice, seaice380 USE ocean_slab_mod, ONLY: tslab, slab_bilg, tice, seaice 375 381 USE pbl_surface_mod, ONLY: snow 376 382 USE indice_sol_mod, ONLY: nbsrf 377 383 USE infotrac, ONLY: nqtot, nqo, nbtr, type_trac 378 384 USE geometry_mod, ONLY: cell_area 379 USE surface_data, ONLY: type_ocean, version_ocean, ok_veget, ok_snow385 USE surface_data, ONLY: type_ocean, version_ocean, ok_veget, landice_opt 380 386 ! USE aero_mod, ONLY: naero_spc 381 387 USE aero_mod, ONLY: naero_tot, id_STRAT_phy … … 405 411 INTEGER, DIMENSION(klon) :: lmax_th 406 412 LOGICAL :: aerosol_couple, ok_sync 413 LOGICAL :: ok_ade, ok_aie 407 414 LOGICAL, DIMENSION(klon, klev) :: ptconv, ptconvth 408 415 REAL :: pdtphys … … 442 449 CALL set_itau_iophy(itau_w) 443 450 444 IF (.NOT.vars_defined) THEN 445 iinitend = 2 446 ELSE 447 iinitend = 1 448 ENDIF 451 !AS, vu avec LF : le test est fait maintenant au debut du pdt, pas a la fin, alors on ne passe plus qu'une fois 452 ! Donc le "IF (.NOT.vars_defined)" devient inutile, et la boucle "DO iinit=1, iinitend" pourra etre eliminee 453 ! ainsi que iinit, iinitend 454 ! IF (.NOT.vars_defined) THEN 455 ! iinitend = 2 456 ! ELSE 457 ! iinitend = 1 458 ! ENDIF 449 459 450 460 ! ug la boucle qui suit ne sert qu'une fois, pour l'initialisation, sinon il n'y a toujours qu'un seul passage: … … 667 677 CALL histwrite_phy(o_tauy, zx_tmp_fi2d) 668 678 669 IF ( ok_snow) THEN679 IF (landice_opt .GE. 1 ) THEN 670 680 CALL histwrite_phy(o_snowsrf, snow_o) 671 681 CALL histwrite_phy(o_qsnow, qsnow) … … 735 745 CALL histwrite_phy(o_cldt, cldt) 736 746 CALL histwrite_phy(o_JrNt, JrNt) 737 CALL histwrite_phy(o_cldljn, cldl*JrNt) 738 CALL histwrite_phy(o_cldmjn, cldm*JrNt) 739 CALL histwrite_phy(o_cldhjn, cldh*JrNt) 740 CALL histwrite_phy(o_cldtjn, cldt*JrNt) 747 748 !CALL histwrite_phy(o_cldljn, cldl*JrNt) 749 IF (vars_defined) zx_tmp_fi2d=cldl*JrNt 750 CALL histwrite_phy(o_cldljn, zx_tmp_fi2d) 751 !CALL histwrite_phy(o_cldmjn, cldm*JrNt) 752 IF (vars_defined) zx_tmp_fi2d=cldm*JrNt 753 CALL histwrite_phy(o_cldmjn, zx_tmp_fi2d) 754 !CALL histwrite_phy(o_cldhjn, cldh*JrNt) 755 IF (vars_defined) zx_tmp_fi2d=cldh*JrNt 756 CALL histwrite_phy(o_cldhjn, zx_tmp_fi2d) 757 !CALL histwrite_phy(o_cldtjn, cldt*JrNt) 758 IF (vars_defined) zx_tmp_fi2d=cldt*JrNt 759 CALL histwrite_phy(o_cldtjn, zx_tmp_fi2d) 760 741 761 CALL histwrite_phy(o_cldq, cldq) 742 762 IF (vars_defined) zx_tmp_fi2d(1:klon) = flwp(1:klon) … … 932 952 IF (type_ocean=='slab ') THEN 933 953 CALL histwrite_phy(o_slab_qflux, slab_wfbils) 934 CALL histwrite_phy(o_slab_bils, slab_bils)954 !CALL histwrite_phy(o_slab_bils, slab_bils) 935 955 IF (nslay.EQ.1) THEN 936 956 zx_tmp_fi2d(:)=tslab(:,1) … … 967 987 ENDDO 968 988 ENDIF 969 CALL histwrite_phy(o_rh2m_min, zx_tmp_fi2d)989 !CALL histwrite_phy(o_rh2m_min, zx_tmp_fi2d) 970 990 971 991 IF (vars_defined) THEN … … 974 994 ENDDO 975 995 ENDIF 976 CALL histwrite_phy(o_rh2m_max, zx_tmp_fi2d)996 !CALL histwrite_phy(o_rh2m_max, zx_tmp_fi2d) 977 997 978 998 CALL histwrite_phy(o_qsat2m, qsat2m) … … 996 1016 CALL histwrite_phy(o_od550aer, od550aer) 997 1017 CALL histwrite_phy(o_od865aer, od865aer) 998 CALL histwrite_phy(o_abs visaer, absvisaer)1018 CALL histwrite_phy(o_abs550aer, abs550aer) 999 1019 CALL histwrite_phy(o_od550lt1aer, od550lt1aer) 1000 1020 CALL histwrite_phy(o_sconcso4, sconcso4) … … 1136 1156 CALL histwrite_phy(o_rnebjn, zx_tmp_fi3d) 1137 1157 CALL histwrite_phy(o_rhum, zx_rh) 1138 CALL histwrite_phy(o_ozone, & 1139 wo(:, :, 1) * dobson_u * 1e3 / zmasse / rmo3 * rmd) 1158 !CALL histwrite_phy(o_ozone, & 1159 ! wo(:, :, 1) * dobson_u * 1e3 / zmasse / rmo3 * rmd) 1160 IF (vars_defined) zx_tmp_fi3d = wo(:, :, 1) * dobson_u * 1e3 / zmasse / rmo3 * rmd 1161 CALL histwrite_phy(o_ozone, zx_tmp_fi3d) 1140 1162 1141 1163 IF (read_climoz == 2) THEN 1142 CALL histwrite_phy(o_ozone_light, & 1143 wo(:, :, 2) * dobson_u * 1e3 / zmasse / rmo3 * rmd) 1144 ENDIF 1145 1164 !CALL histwrite_phy(o_ozone_light, & 1165 ! wo(:, :, 2) * dobson_u * 1e3 / zmasse / rmo3 * rmd) 1166 IF (vars_defined) zx_tmp_fi3d = wo(:, :, 2) * dobson_u * 1e3 / zmasse / rmo3 * rmd 1167 CALL histwrite_phy(o_ozone_light, zx_tmp_fi3d) 1168 ENDIF 1169 1170 !AS: dans phys_output_write il y a en plus : CALL histwrite_phy(o_duphy, d_u) 1146 1171 CALL histwrite_phy(o_dtphy, d_t) 1147 1172 CALL histwrite_phy(o_dqphy, d_qx(:,:,ivap)) … … 1585 1610 #endif 1586 1611 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1587 IF (nqtot.GE.nqo+1) THEN 1588 DO iq=nqo+1,nqtot 1589 IF (type_trac == 'lmdz' .OR. type_trac == 'repr') THEN 1590 1612 IF (nqtot.GE.nqo+1) THEN 1613 !AS: type_trac = 'lmdz' par defaut dans libf/dyn3d/conf_gcm.F90 1614 !Changé par inca, repr(obus), coag(ulation), co2i(nteractif), PAS par SPLA 1615 !Cet "if" est donc inutile : IF (type_trac == 'lmdz' .OR. type_trac == 'repr') THEN 1616 DO iq=nqo+1,nqtot 1591 1617 CALL histwrite_phy(o_trac(iq-nqo), tr_seri(:,:,iq-nqo)) 1592 1618 CALL histwrite_phy(o_dtr_vdf(iq-nqo),d_tr_cl(:,:,iq-nqo)) … … 1612 1638 ENDIF 1613 1639 CALL histwrite_phy(o_trac_cum(iq-nqo), zx_tmp_fi2d) 1614 ENDIF1615 ENDDO1640 ENDDO 1641 !ENDIF 1616 1642 ENDIF 1617 1643 … … 1639 1665 ENDIF 1640 1666 1641 ENDDO 1667 ENDDO ! iinit 1642 1668 1643 1669 IF (vars_defined) THEN
Note: See TracChangeset
for help on using the changeset viewer.