Ignore:
Timestamp:
Apr 1, 2016, 11:22:24 PM (9 years ago)
Author:
oboucher
Message:

Adding 2D diagnostics for water vapour tendencies to check for water conservation

Location:
LMDZ5/trunk/libf/phylmd
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/phys_output_ctrlout_mod.F90

    r2481 r2486  
    990990  TYPE(ctrl_out), SAVE :: o_dqphy = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 /), &
    991991    'dqphy', 'Physics dQ', '(kg/kg)/s', (/ ('', i=1, 9) /))
     992  TYPE(ctrl_out), SAVE :: o_dqphy2d = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 /), &
     993    'dqphy2d', 'Physics dQ', '(kg/m2)/s', (/ ('', i=1, 9) /))
    992994  TYPE(ctrl_out), SAVE :: o_pr_con_l = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 /), &
    993995    'pr_con_l', 'Convective precipitation lic', ' ', (/ ('', i=1, 9) /))
     
    10671069  TYPE(ctrl_out), SAVE :: o_dqdyn = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), &
    10681070    'dqdyn', 'Dynamics dQ', '(kg/kg)/s', (/ ('', i=1, 9) /))
     1071  TYPE(ctrl_out), SAVE :: o_dqdyn2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), &
     1072    'dqdyn2d', 'Dynamics dQ', '(kg/m2)/s', (/ ('', i=1, 9) /))
    10691073  TYPE(ctrl_out), SAVE :: o_dudyn = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), &
    10701074    'dudyn', 'Dynamics dU', 'm/s2', (/ ('', i=1, 9) /))
     
    10791083  TYPE(ctrl_out), SAVE :: o_dqcon = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), &
    10801084    'dqcon', 'Convection dQ', '(kg/kg)/s', (/ ('', i=1, 9) /))
     1085  TYPE(ctrl_out), SAVE :: o_dqcon2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), &
     1086    'dqcon2d', 'Convection dQ', '(kg/m2)/s', (/ ('', i=1, 9) /))
    10811087  TYPE(ctrl_out), SAVE :: o_dtwak = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11 /), &
    10821088    'dtwak', 'Wake dT', 'K/s', (/ ('', i=1, 9) /))
    10831089  TYPE(ctrl_out), SAVE :: o_dqwak = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11 /), &
    10841090    'dqwak', 'Wake dQ', '(kg/kg)/s', (/ ('', i=1, 9) /))
     1091  TYPE(ctrl_out), SAVE :: o_dqwak2d = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11 /), &
     1092    'dqwak2d', 'Wake dQ', '(kg/m2)/s', (/ ('', i=1, 9) /))
    10851093  TYPE(ctrl_out), SAVE :: o_wake_h = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11 /), &
    10861094    'wake_h', 'wake_h', '-', (/ ('', i=1, 9) /))
     
    11091117  TYPE(ctrl_out), SAVE :: o_dqlsc = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), &
    11101118    'dqlsc', 'Condensation dQ', '(kg/kg)/s', (/ ('', i=1, 9) /))
     1119  TYPE(ctrl_out), SAVE :: o_dqlsc2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), &
     1120    'dqlsc2d', 'Condensation dQ', '(kg/m2)/s', (/ ('', i=1, 9) /))
    11111121  TYPE(ctrl_out), SAVE :: o_beta_prec = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), &
    11121122    'beta_prec', 'LS Conversion rate to prec', '(kg/kg)/s', (/ ('', i=1, 9) /))
     
    11171127  TYPE(ctrl_out), SAVE :: o_dqvdf = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), &
    11181128    'dqvdf', 'Boundary-layer dQ', '(kg/kg)/s', (/ ('', i=1, 9) /))
     1129  TYPE(ctrl_out), SAVE :: o_dqvdf2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), &
     1130    'dqvdf2d', 'Boundary-layer dQ', '(kg/m2)/s', (/ ('', i=1, 9) /))
    11191131  TYPE(ctrl_out), SAVE :: o_dteva = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), &
    11201132    'dteva', 'Reevaporation dT', 'K/s', (/ ('', i=1, 9) /))
    11211133  TYPE(ctrl_out), SAVE :: o_dqeva = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), &
    11221134    'dqeva', 'Reevaporation dQ', '(kg/kg)/s', (/ ('', i=1, 9) /))
     1135  TYPE(ctrl_out), SAVE :: o_dqeva2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), &
     1136    'dqeva2d', 'Reevaporation dQ', '(kg/m2)/s', (/ ('', i=1, 9) /))
    11231137
    11241138!!!!!!!!!!!!!!!! Specifique thermiques
    11251139  TYPE(ctrl_out), SAVE :: o_dqlscth = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 /), &
    11261140    'dqlscth', 'dQ therm.', '(kg/kg)/s', (/ ('', i=1, 9) /))
     1141  TYPE(ctrl_out), SAVE :: o_dqlscth2d = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 /), &
     1142    'dqlscth2d', 'dQ therm.', '(kg/m2)/s', (/ ('', i=1, 9) /))
    11271143  TYPE(ctrl_out), SAVE :: o_dqlscst = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 /), &
    11281144    'dqlscst', 'dQ strat.', '(kg/kg)/s', (/ ('', i=1, 9) /))
     1145  TYPE(ctrl_out), SAVE :: o_dqlscst2d = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 /), &
     1146    'dqlscst2d', 'dQ strat.', '(kg/m2)/s', (/ ('', i=1, 9) /))
    11291147  TYPE(ctrl_out), SAVE :: o_dtlscth = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 /), &
    11301148    'dtlscth', 'dQ therm.', 'K/s', (/ ('', i=1, 9) /))
     
    11721190  TYPE(ctrl_out), SAVE :: o_dqthe = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), &
    11731191    'dqthe', 'Thermal dQ', '(kg/kg)/s', (/ ('', i=1, 9) /))
     1192  TYPE(ctrl_out), SAVE :: o_dqthe2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), &
     1193    'dqthe2d', 'Thermal dQ', '(kg/m2)/s', (/ ('', i=1, 9) /))
    11741194  TYPE(ctrl_out), SAVE :: o_dtajs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), &
    11751195    'dtajs', 'Dry adjust. dT', 'K/s', (/ ('', i=1, 9) /))
    11761196  TYPE(ctrl_out), SAVE :: o_dqajs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), &
    11771197    'dqajs', 'Dry adjust. dQ', '(kg/kg)/s', (/ ('', i=1, 9) /))
     1198  TYPE(ctrl_out), SAVE :: o_dqajs2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), &
     1199    'dqajs2d', 'Dry adjust. dQ', '(kg/m2)/s', (/ ('', i=1, 9) /))
    11781200  TYPE(ctrl_out), SAVE :: o_dtswr = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), &
    11791201    'dtswr', 'SW radiation dT', 'K/s', (/ ('', i=1, 9) /))
  • LMDZ5/trunk/libf/phylmd/phys_output_write_mod.F90

    r2483 r2486  
    7979         o_ale, o_alp, o_cin, o_WAPE, o_wake_h, &
    8080         o_wake_s, o_wake_deltat, o_wake_deltaq, &
    81          o_wake_omg, o_dtwak, o_dqwak, o_Vprecip, &
     81         o_wake_omg, o_dtwak, o_dqwak, o_dqwak2d, o_Vprecip, &
    8282         o_ftd, o_fqd, o_wdtrainA, o_wdtrainM, &
    8383         o_n2, o_s2, o_proba_notrig, &
     
    120120         o_zfull, o_zhalf, o_rneb, o_rnebjn, o_rnebcon, &
    121121         o_rnebls, o_rhum, o_ozone, o_ozone_light, &
    122          o_dtphy, o_dqphy, o_albe_srf, o_z0m_srf, o_z0h_srf, &
     122         o_dtphy, o_dqphy, o_dqphy2d, o_albe_srf, o_z0m_srf, o_z0h_srf, &
    123123         o_ages_srf, o_snow_srf, o_alb1, o_alb2, o_tke, &
    124124         o_tke_max, o_kz, o_kz_max, o_clwcon, &
    125          o_dtdyn, o_dqdyn, o_dudyn, o_dvdyn, &
     125         o_dtdyn, o_dqdyn, o_dqdyn2d, o_dudyn, o_dvdyn, &
    126126         o_dtcon, o_tntc, o_ducon, o_dvcon, &
    127          o_dqcon, o_tnhusc, o_tnhusc, o_dtlsc, &
    128          o_dtlschr, o_dqlsc, o_beta_prec, &
    129          o_dtlscth, o_dtlscst, o_dqlscth, &
    130          o_dqlscst, o_plulth, o_plulst, &
     127         o_dqcon, o_dqcon2d, o_tnhusc, o_tnhusc, o_dtlsc, &
     128         o_dtlschr, o_dqlsc, o_dqlsc2d, o_beta_prec, &
     129         o_dtlscth, o_dtlscst, o_dqlscth, o_dqlscth2d, &
     130         o_dqlscst, o_dqlscst2d, o_plulth, o_plulst, &
    131131         o_ptconvth, o_lmaxth, o_dtvdf, &
    132          o_dtdis, o_dqvdf, o_dteva, o_dqeva, &
     132         o_dtdis, o_dqvdf, o_dqvdf2d, o_dteva, o_dqeva, o_dqeva2d, &
    133133         o_ptconv, o_ratqs, o_dtthe, &
    134134         o_duthe, o_dvthe, o_ftime_th, &
    135135         o_f_th, o_e_th, o_w_th, o_q_th, &
    136136         o_a_th, o_d_th, o_f0_th, o_zmax_th, &
    137          o_dqthe, o_dtajs, o_dqajs, o_dtswr, &
     137         o_dqthe, o_dqthe2d, o_dtajs, o_dqajs, o_dqajs2d, o_dtswr, &
    138138         o_dtsw0, o_dtlwr, o_dtlw0, o_dtec, &
    139139         o_duvdf, o_dvvdf, o_duoro, o_dvoro, &
     
    815815             IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_wake(1:klon,1:klev)/pdtphys
    816816             CALL histwrite_phy(o_dqwak, zx_tmp_fi3d)
     817             CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
     818             CALL histwrite_phy(o_dqwak2d, zx_tmp_fi2d)
    817819          ENDIF ! iflag_wake>=1
    818820          CALL histwrite_phy(o_ftd, ftd)
     
    10631065       CALL histwrite_phy(o_dtphy, d_t)
    10641066       CALL histwrite_phy(o_dqphy,  d_qx(:,:,ivap))
     1067       CALL water_int(klon,klev,d_qx(:,:,ivap),zmasse,zx_tmp_fi2d)
     1068       CALL histwrite_phy(o_dqphy2d,  zx_tmp_fi2d)
    10651069       DO nsrf=1, nbsrf
    10661070          IF (vars_defined) zx_tmp_fi2d(1 : klon) = falb1( 1 : klon, nsrf)
     
    11001104       CALL histwrite_phy(o_dtdyn, d_t_dyn)
    11011105       CALL histwrite_phy(o_dqdyn, d_q_dyn)
     1106       CALL water_int(klon,klev,d_q_dyn,zmasse,zx_tmp_fi2d)
     1107       CALL histwrite_phy(o_dqdyn2d,zx_tmp_fi2d)
    11021108       CALL histwrite_phy(o_dudyn, d_u_dyn)
    11031109       CALL histwrite_phy(o_dvdyn, d_v_dyn)
     
    11271133       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
    11281134       CALL histwrite_phy(o_dqcon, zx_tmp_fi3d)
     1135       CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
     1136       CALL histwrite_phy(o_dqcon2d, zx_tmp_fi2d)
    11291137
    11301138       IF(iflag_thermals.EQ.0) THEN
     
    11471155       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys
    11481156       CALL histwrite_phy(o_dqlsc, zx_tmp_fi3d)
     1157       CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
     1158       CALL histwrite_phy(o_dqlsc2d, zx_tmp_fi2d)
    11491159       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=beta_prec(1:klon,1:klev)
    11501160       CALL histwrite_phy(o_beta_prec, zx_tmp_fi3d)
     
    11581168          IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lscth(1:klon,1:klev)/pdtphys
    11591169          CALL histwrite_phy(o_dqlscth, zx_tmp_fi3d)
     1170          CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
     1171          CALL histwrite_phy(o_dqlscth2d, zx_tmp_fi2d)
    11601172          IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lscst(1:klon,1:klev)/pdtphys
    11611173          CALL histwrite_phy(o_dqlscst, zx_tmp_fi3d)
     1174          CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
     1175          CALL histwrite_phy(o_dqlscst2d, zx_tmp_fi2d)
    11621176          CALL histwrite_phy(o_plulth, plul_th)
    11631177          CALL histwrite_phy(o_plulst, plul_st)
     
    11881202       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf(1:klon,1:klev)/pdtphys
    11891203       CALL histwrite_phy(o_dqvdf, zx_tmp_fi3d)
     1204       CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
     1205       CALL histwrite_phy(o_dqvdf2d, zx_tmp_fi2d)
    11901206       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_eva(1:klon,1:klev)/pdtphys
    11911207       CALL histwrite_phy(o_dteva, zx_tmp_fi3d)
    11921208       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_eva(1:klon,1:klev)/pdtphys
    11931209       CALL histwrite_phy(o_dqeva, zx_tmp_fi3d)
     1210       CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
     1211       CALL histwrite_phy(o_dqeva2d, zx_tmp_fi2d)
    11941212       zpt_conv = 0.
    11951213       WHERE (ptconv) zpt_conv = 1.
     
    12271245          ENDIF
    12281246          CALL histwrite_phy(o_dqthe, zx_tmp_fi3d)
     1247          CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
     1248          CALL histwrite_phy(o_dqthe2d, zx_tmp_fi2d)
    12291249       ENDIF !iflag_thermals
    12301250       IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_ajsb(1:klon,1:klev)/pdtphys
     
    12321252       IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_ajsb(1:klon,1:klev)/pdtphys
    12331253       CALL histwrite_phy(o_dqajs, zx_tmp_fi3d)
     1254       CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
     1255       CALL histwrite_phy(o_dqajs2d, zx_tmp_fi2d)
    12341256       IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_swr(1:klon,1:klev)/pdtphys
    12351257       CALL histwrite_phy(o_dtswr, zx_tmp_fi3d)
Note: See TracChangeset for help on using the changeset viewer.