Changeset 1571 for palm/trunk


Ignore:
Timestamp:
Mar 12, 2015 4:12:49 PM (10 years ago)
Author:
maronga
Message:

minor bugfixes in lasm/radiation

Location:
palm/trunk/SOURCE
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/flow_statistics.f90

    r1568 r1571  
    2121! Current revisions:
    2222! -----------------
    23 !
     23! Bugfix: output of rad_net and rad_sw_in
    2424!
    2525! Former revisions:
     
    14801480!--    Collect radiation model timeseries
    14811481       IF ( radiation )  THEN
    1482           ts_value(dots_rad,sr)   = hom(nzb,1,99,sr)           ! rad_net
    1483           ts_value(dots_rad+1,sr) = hom(nzb,1,100,sr)          ! rad_sw_in
     1482          ts_value(dots_rad,sr)   = hom(nzb,1,101,sr)           ! rad_net
     1483          ts_value(dots_rad+1,sr) = hom(nzb,1,102,sr)          ! rad_sw_in
    14841484       ENDIF
    14851485
     
    32853285!--    Collect radiation model timeseries
    32863286       IF ( radiation )  THEN
    3287           ts_value(dots_rad,sr)   = hom(nzb,1,99,sr)           ! rad_net
    3288           ts_value(dots_rad+1,sr) = hom(nzb,1,100,sr)          ! rad_sw_in
     3287          ts_value(dots_rad,sr)   = hom(nzb,1,101,sr)           ! rad_net
     3288          ts_value(dots_rad+1,sr) = hom(nzb,1,102,sr)          ! rad_sw_in
    32893289       ENDIF
    32903290
  • palm/trunk/SOURCE/land_surface_model.f90

    r1556 r1571  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! Removed upper-case variable names. Corrected distribution of precipitation to
     23! the liquid water reservoir and the bare soil fractions.
    2324!
    2425! Former revisions:
     
    6970! - Implement surface runoff model (required when performing long-term LES with
    7071!   considerable precipitation
     72!
    7173! Notes:
    7274! ------
     
    9698
    9799     USE radiation_model_mod,                                                  &
    98          ONLY:  irad_scheme, rad_net, rad_sw_in, sigma_SB
     100         ONLY:  irad_scheme, rad_net, rad_sw_in, sigma_sb
    99101
    100102     USE statistics,                                                           &
     
    934936                   e,           & !: water vapour pressure
    935937                   e_s,         & !: water vapour saturation pressure
    936                    e_s_dT,      & !: derivate of e_s with respect to T
     938                   e_s_dt,      & !: derivate of e_s with respect to T
    937939                   tend,        & !: tendency
    938                    dq_s_dT,     & !: derivate of q_s with respect to T
     940                   dq_s_dt,     & !: derivate of q_s with respect to T
    939941                   coef_1,      & !: coef. for prognostic equation
    940942                   coef_2,      & !: coef. for prognostic equation
     
    10971099!
    10981100!--          Calculate derivative of q_s for Taylor series expansion
    1099              e_s_dT = e_s * ( 17.269_wp / (t_surface(j,i) - 35.86_wp) -        &
     1101             e_s_dt = e_s * ( 17.269_wp / (t_surface(j,i) - 35.86_wp) -        &
    11001102                              17.269_wp*(t_surface(j,i) - 273.16_wp)           &
    11011103                              / (t_surface(j,i) - 35.86_wp)**2 )
    11021104
    1103              dq_s_dT = 0.622_wp * e_s_dT / surface_pressure
     1105             dq_s_dt = 0.622_wp * e_s_dt / surface_pressure
    11041106
    11051107             T_1 = pt_p(k+1,j,i) * exn
     
    11071109!
    11081110!--          Add LW up so that it can be removed in prognostic equation
    1109              rad_net(j,i) = rad_net(j,i) + sigma_SB * t_surface(j,i) ** 4
     1111             rad_net(j,i) = rad_net(j,i) + sigma_sb * t_surface(j,i) ** 4
    11101112
    11111113             IF ( humidity )  THEN
     
    11131115!
    11141116!--             Numerator of the prognostic equation
    1115                 coef_1 = rad_net(j,i) + 3.0_wp * sigma_SB * t_surface(j,i) ** 4&
     1117                coef_1 = rad_net(j,i) + 3.0_wp * sigma_sb * t_surface(j,i) ** 4&
    11161118                         + f_shf / exn * T_1 + f_qsws * ( q_p(k+1,j,i) - q_s   &
    1117                          + dq_s_dT * t_surface(j,i) ) + lambda_surface         &
     1119                         + dq_s_dt * t_surface(j,i) ) + lambda_surface         &
    11181120                         * t_soil(nzb_soil,j,i)
    11191121
    11201122!
    11211123!--             Denominator of the prognostic equation
    1122                 coef_2 = 4.0_wp * sigma_SB * t_surface(j,i) ** 3 + f_qsws      &
    1123                          * dq_s_dT + lambda_surface + f_shf / exn
     1124                coef_2 = 4.0_wp * sigma_sb * t_surface(j,i) ** 3 + f_qsws      &
     1125                         * dq_s_dt + lambda_surface + f_shf / exn
    11241126
    11251127             ELSE
     
    11271129!
    11281130!--             Numerator of the prognostic equation
    1129                 coef_1 = rad_net(j,i) + 3.0_wp * sigma_SB * t_surface(j,i) ** 4&
     1131                coef_1 = rad_net(j,i) + 3.0_wp * sigma_sb * t_surface(j,i) ** 4&
    11301132                         + f_shf / exn * T_1 + lambda_surface                  &
    11311133                         * t_soil(nzb_soil,j,i)
     
    11331135!
    11341136!--             Denominator of the prognostic equation
    1135                 coef_2 = 4.0_wp * sigma_SB * t_surface(j,i) ** 3               &
     1137                coef_2 = 4.0_wp * sigma_sb * t_surface(j,i) ** 3               &
    11361138                         + lambda_surface + f_shf / exn
    11371139
     
    11701172!
    11711173!--          Calculate fluxes
    1172              rad_net(j,i)   = rad_net(j,i) + 3.0_wp * sigma_SB                 &
    1173                               * t_surface(j,i)**4 - 4.0_wp * sigma_SB          &
     1174             rad_net(j,i)   = rad_net(j,i) + 3.0_wp * sigma_sb                 &
     1175                              * t_surface(j,i)**4 - 4.0_wp * sigma_sb          &
    11741176                              * t_surface(j,i)**3 * t_surface_p(j,i)
    11751177             ghf_eb(j,i)    = lambda_surface * (t_surface_p(j,i)               &
     
    11781180
    11791181             IF ( humidity )  THEN
    1180                 qsws_eb(j,i)  = - f_qsws    * ( q_p(k+1,j,i) - q_s + dq_s_dT   &
    1181                                 * t_surface(j,i) - dq_s_dT * t_surface_p(j,i) )
     1182                qsws_eb(j,i)  = - f_qsws    * ( q_p(k+1,j,i) - q_s + dq_s_dt   &
     1183                                * t_surface(j,i) - dq_s_dt * t_surface_p(j,i) )
    11821184
    11831185                qsws_veg_eb(j,i)  = - f_qsws_veg  * ( q_p(k+1,j,i) - q_s       &
    1184                                     + dq_s_dT * t_surface(j,i) - dq_s_dT       &
     1186                                    + dq_s_dt * t_surface(j,i) - dq_s_dt       &
    11851187                                    * t_surface_p(j,i) )
    11861188
    11871189                qsws_soil_eb(j,i) = - f_qsws_soil * ( q_p(k+1,j,i) - q_s       &
    1188                                     + dq_s_dT * t_surface(j,i) - dq_s_dT       &
     1190                                    + dq_s_dt * t_surface(j,i) - dq_s_dt       &
    11891191                                    * t_surface_p(j,i) )
    11901192
    11911193                qsws_liq_eb(j,i)  = - f_qsws_liq  * ( q_p(k+1,j,i) - q_s       &
    1192                                     + dq_s_dT * t_surface(j,i) - dq_s_dT       &
     1194                                    + dq_s_dt * t_surface(j,i) - dq_s_dt       &
    11931195                                    * t_surface_p(j,i) )
    11941196             ENDIF
     
    11991201                r_s(j,i) = 1.0E10_wp
    12001202             ELSE
    1201                 r_s(j,i) = - rho_lv * ( q_p(k+1,j,i) - q_s + dq_s_dT           &
    1202                            * t_surface(j,i) - dq_s_dT * t_surface_p(j,i) )     &
     1203                r_s(j,i) = - rho_lv * ( q_p(k+1,j,i) - q_s + dq_s_dt           &
     1204                           * t_surface(j,i) - dq_s_dt * t_surface_p(j,i) )     &
    12031205                           / qsws_eb(j,i) - r_a(j,i)
    12041206             ENDIF
     
    12091211             IF ( humidity )  THEN
    12101212!
    1211 !--             If precipitation is activated, add rain water to qsws_liq_eb.
     1213!--             If precipitation is activated, add rain water to qsws_liq_eb
     1214!--             and qsws_soil_eb according the the vegetation coverage.
    12121215!--             precipitation_rate is given in mm.
    12131216                IF ( precipitation )  THEN
    1214                    qsws_liq_eb(j,i) = qsws_liq_eb(j,i)                         &
    1215                                        + precipitation_rate(j,i) * 0.001_wp    &
    1216                                        * rho_l * l_v
     1217
     1218!
     1219!--                Add precipitation to liquid water reservoir, if possible.
     1220!--                Otherwise, add the water to bare soil fraction.
     1221                   IF ( m_liq_eb(j,i) .EQ. m_liq_eb_max )  THEN
     1222                      qsws_liq_eb(j,i) = qsws_liq_eb(j,i)                      &
     1223                                       + c_veg(j,i) * precipitation_rate(j,i)  &
     1224                                       * 0.001_wp * rho_l * l_v
     1225                   ELSE
     1226                      qsws_soil_eb(j,i) = qsws_soil_eb(j,i)                    &
     1227                                        + c_veg(j,i) * precipitation_rate(j,i) &
     1228                                        * 0.001_wp * rho_l * l_v
     1229                   ENDIF
     1230
     1231!--                Add precipitation to bare soil according to the bare soil
     1232!--                coverage.
     1233                   qsws_soil_eb(j,i) = qsws_soil_eb(j,i) * (1.0_wp             &
     1234                                       - c_veg(j,i)) * precipitation_rate(j,i) &
     1235                                       * 0.001_wp * rho_l * l_v
    12171236                ENDIF
    12181237!
  • palm/trunk/SOURCE/radiation_model.f90

    r1552 r1571  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! Added missing KIND attribute. Removed upper-case variable names
    2323!
    2424! Former revisions:
     
    6868    LOGICAL :: radiation = .FALSE.  !: flag parameter indicating wheather the radiation model is used
    6969
    70     REAL(wp), PARAMETER :: SW_0 = 1368.0, &       !: solar constant 
     70    REAL(wp), PARAMETER :: sw_0 = 1368.0_wp, &    !: solar constant 
    7171                           pi = 3.14159265358979323_wp, &
    72                            sigma_SB  = 5.67E-8_wp !: Stefan-Boltzmann constant
     72                           sigma_sb  = 5.67E-8_wp !: Stefan-Boltzmann constant
    7373 
    7474    REAL(wp) :: albedo = 0.2_wp,             & !: NAMELIST alpha
     
    126126           irad_scheme, lambda, net_radiation, rad_net, rad_net_av, radiation, &
    127127           radiation_clearsky, radiation_constant, radiation_rrtm,             &
    128            radiation_scheme, rad_sw_in, rad_sw_in_av, sigma_SB,                &
     128           radiation_scheme, rad_sw_in, rad_sw_in_av, sigma_sb,                &
    129129           time_radiation, time_utc_init
    130130
     
    231231
    232232             k = nzb_s_inner(j,i)
    233              rad_sw_in(j,i)  = SW_0 * sky_trans * zenith
     233             rad_sw_in(j,i)  = sw_0 * sky_trans * zenith
    234234             rad_sw_out(j,i) = - alpha(j,i) * rad_sw_in(j,i)
    235              rad_lw_out(j,i) = - sigma_SB * (pt(k,j,i) * exn)**4
    236              rad_lw_in(j,i)  = 0.8_wp * sigma_SB * (pt(k+1,j,i) * exn)**4
     235             rad_lw_out(j,i) = - sigma_sb * (pt(k,j,i) * exn)**4
     236             rad_lw_in(j,i)  = 0.8_wp * sigma_sb * (pt(k+1,j,i) * exn)**4
    237237             rad_net(j,i)    = rad_sw_in(j,i) + rad_sw_out(j,i)                &
    238238                                + rad_lw_in(j,i) + rad_lw_out(j,i)
Note: See TracChangeset for help on using the changeset viewer.