Ignore:
Timestamp:
Mar 3, 2015 2:18:16 PM (6 years ago)
Author:
maronga
Message:

land surface model released

File:
1 edited

Legend:

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

    r1499 r1551  
    2121! Current revisions:
    2222! -----------------
    23 !
     23! Added suppport for land surface model and radiation model output.
    2424!
    2525! Former revisions:
     
    132132       
    133133    USE cloud_parameters,                                                      &
    134         ONLY :  l_d_cp, prr, pt_d_t
     134        ONLY:   l_d_cp, prr, pt_d_t
    135135       
    136136    USE control_parameters,                                                    &
    137         ONLY :  average_count_pr, cloud_droplets, cloud_physics, do_sum,       &
     137        ONLY:   average_count_pr, cloud_droplets, cloud_physics, do_sum,       &
    138138                dt_3d, g, humidity, icloud_scheme, kappa, large_scale_forcing, &
    139139                large_scale_subsidence, max_pr_user, message_string, ocean,    &
     
    143143       
    144144    USE cpulog,                                                                &
    145         ONLY :  cpu_log, log_point
     145        ONLY:   cpu_log, log_point
    146146       
    147147    USE grid_variables,                                                        &
    148         ONLY :  ddx, ddy
     148        ONLY:   ddx, ddy
    149149       
    150150    USE indices,                                                               &
    151         ONLY :  ngp_2dh, ngp_2dh_s_inner, ngp_3d, ngp_3d_inner, ngp_sums,      &
     151        ONLY:   ngp_2dh, ngp_2dh_s_inner, ngp_3d, ngp_3d_inner, ngp_sums,      &
    152152                ngp_sums_ls, nxl, nxr, nyn, nys, nzb, nzb_diff_s_inner,        &
    153153                nzb_s_inner, nzt, nzt_diff
     
    155155    USE kinds
    156156   
     157    USE land_surface_model_mod,                                                &
     158        ONLY:   dots_soil, ghf_eb, land_surface, m_soil, nzb_soil, nzt_soil,   &
     159                qsws_eb, qsws_liq_eb, qsws_soil_eb, qsws_veg_eb, shf_eb,       &
     160                t_soil
     161
    157162    USE pegrid
     163
     164    USE radiation_model_mod,                                                   &
     165        ONLY :  dots_rad, rad_net, rad_sw_in, radiation
    158166   
    159167    USE statistics
     
    703711                                       qsws(j,i) * rmask(j,i,sr)  ! w"q" (w"qv")
    704712                ENDIF
     713             ENDIF
     714
     715             IF ( land_surface )  THEN
     716                sums_l(nzb,93,tn) = sums_l(nzb,93,tn) + ghf_eb(j,i)
     717                sums_l(nzb,94,tn) = sums_l(nzb,94,tn) + shf_eb(j,i)
     718                sums_l(nzb,95,tn) = sums_l(nzb,95,tn) + qsws_eb(j,i)
     719                sums_l(nzb,96,tn) = sums_l(nzb,96,tn) + qsws_liq_eb(j,i)
     720                sums_l(nzb,97,tn) = sums_l(nzb,97,tn) + qsws_soil_eb(j,i)
     721                sums_l(nzb,98,tn) = sums_l(nzb,98,tn) + qsws_veg_eb(j,i)
     722             ENDIF
     723
     724             IF ( radiation )  THEN
     725                sums_l(nzb,99,tn)  = sums_l(nzb,99,tn)  + rad_net(j,i)
     726                sums_l(nzb,100,tn) = sums_l(nzb,100,tn) + rad_sw_in(j,i)
    705727             ENDIF
    706728
     
    10741096       ENDIF
    10751097
     1098
     1099       IF ( land_surface )  THEN
     1100          !$OMP DO
     1101          DO  i = nxl, nxr
     1102             DO  j =  nys, nyn
     1103                DO  k = nzb_soil, nzt_soil
     1104                   sums_l(k,89,tn)  = sums_l(k,89,tn)  + t_soil(k,j,i) * rmask(j,i,sr)
     1105                   sums_l(k,91,tn)  = sums_l(k,91,tn)  + m_soil(k,j,i) * rmask(j,i,sr)
     1106                ENDDO
     1107             ENDDO
     1108          ENDDO
     1109       ENDIF
     1110       
     1111
    10761112!
    10771113!--    Calculate the user-defined profiles
     
    11331169          sums(k,70:80)           = sums(k,70:80)       / ngp_2dh_s_inner(k,sr)
    11341170          sums(k,81:88)           = sums(k,81:88)       / ngp_2dh(sr)
    1135           sums(k,89:pr_palm-2)    = sums(k,89:pr_palm-2)/ ngp_2dh_s_inner(k,sr)
     1171          sums(k,89:100)           = sums(k,89:100)     / ngp_2dh(sr)
     1172          sums(k,101:pr_palm-2)    = sums(k,101:pr_palm-2)/ ngp_2dh_s_inner(k,sr)
    11361173       ENDDO
    11371174
     
    12481285       ENDIF
    12491286
     1287       IF ( land_surface )  THEN
     1288          hom(:,1,89,sr) = sums(:,89)              ! t_soil
     1289                                                   ! 90 is initial t_soil profile
     1290          hom(:,1,91,sr) = sums(:,91)              ! m_soil
     1291                                                   ! 92 is initial m_soil profile
     1292          hom(:,1,93,sr) = sums(:,93)              ! ghf_eb
     1293          hom(:,1,94,sr) = sums(:,94)              ! shf_eb
     1294          hom(:,1,95,sr) = sums(:,95)              ! qsws_eb
     1295          hom(:,1,96,sr) = sums(:,96)              ! qsws_liq_eb
     1296          hom(:,1,97,sr) = sums(:,97)              ! qsws_soil_eb
     1297          hom(:,1,98,sr) = sums(:,98)              ! qsws_veg_eb
     1298       ENDIF
     1299
     1300       IF ( radiation )  THEN
     1301          hom(:,1,99 ,sr) = sums(:,99)             ! rad_net
     1302          hom(:,1,100,sr) = sums(:,100)            ! rad_sw_in
     1303       ENDIF
     1304
    12501305       hom(:,1,pr_palm-1,sr) = sums(:,pr_palm-1)
    12511306                                       ! upstream-parts u_x, u_y, u_z, v_x,
     
    13921447
    13931448       ts_value(23,sr) = hom(nzb+12,1,pr_palm,sr)   ! q*
     1449
     1450!
     1451!--    Collect land surface model timeseries
     1452       IF ( land_surface )  THEN
     1453          ts_value(dots_soil  ,sr) = hom(nzb,1,93,sr)           ! ghf_eb
     1454          ts_value(dots_soil+1,sr) = hom(nzb,1,94,sr)           ! shf_eb
     1455          ts_value(dots_soil+2,sr) = hom(nzb,1,95,sr)           ! qsws_eb
     1456          ts_value(dots_soil+3,sr) = hom(nzb,1,96,sr)           ! qsws_liq_eb
     1457          ts_value(dots_soil+4,sr) = hom(nzb,1,97,sr)           ! qsws_soil_eb
     1458          ts_value(dots_soil+5,sr) = hom(nzb,1,98,sr)           ! qsws_veg_eb
     1459       ENDIF
     1460!
     1461!--    Collect radiation model timeseries
     1462       IF ( radiation )  THEN
     1463          ts_value(dots_rad,sr)   = hom(nzb,1,99,sr)           ! rad_net
     1464          ts_value(dots_rad+1,sr) = hom(nzb,1,100,sr)          ! rad_sw_in
     1465       ENDIF
     1466
    13941467!
    13951468!--    Calculate additional statistics provided by the user interface
     
    28422915       ENDIF
    28432916
     2917
     2918       IF ( land_surface )  THEN
     2919          !$OMP DO
     2920          DO  i = nxl, nxr
     2921             DO  j =  nys, nyn
     2922                DO  k = nzb_soil, nzt_soil
     2923                   sums_l(k,89,tn)  = sums_l(k,89,tn)  + t_soil(k,j,i) * rmask(j,i,sr)
     2924                   sums_l(k,91,tn)  = sums_l(k,91,tn)  + m_soil(k,j,i) * rmask(j,i,sr)
     2925                ENDDO
     2926             ENDDO
     2927          ENDDO
     2928       ENDIF
     2929
     2930
    28442931!
    28452932!--    Calculate the user-defined profiles
     
    29032990          sums(k,70:80)           = sums(k,70:80)       / ngp_2dh_s_inner(k,sr)
    29042991          sums(k,81:88)           = sums(k,81:88)       / ngp_2dh(sr)
    2905           sums(k,89:pr_palm-2)    = sums(k,89:pr_palm-2)/ ngp_2dh_s_inner(k,sr)
     2992          sums(k,89:100)           = sums(k,89:100)     / ngp_2dh(sr)
     2993          sums(k,101:pr_palm-2)    = sums(k,101:pr_palm-2)/ ngp_2dh_s_inner(k,sr)
    29062994       ENDDO
    29072995
     
    31623250
    31633251       ts_value(23,sr) = hom(nzb+12,1,pr_palm,sr)   ! q*
     3252
     3253!
     3254!--    Collect land surface model timeseries
     3255       IF ( land_surface )  THEN
     3256          ts_value(dots_soil  ,sr) = hom(nzb,1,93,sr)           ! ghf_eb
     3257          ts_value(dots_soil+1,sr) = hom(nzb,1,94,sr)           ! shf_eb
     3258          ts_value(dots_soil+2,sr) = hom(nzb,1,95,sr)           ! qsws_eb
     3259          ts_value(dots_soil+3,sr) = hom(nzb,1,96,sr)           ! qsws_liq_eb
     3260          ts_value(dots_soil+4,sr) = hom(nzb,1,97,sr)           ! qsws_soil_eb
     3261          ts_value(dots_soil+5,sr) = hom(nzb,1,98,sr)           ! qsws_veg_eb
     3262       ENDIF
     3263!
     3264!--    Collect radiation model timeseries
     3265       IF ( radiation )  THEN
     3266          ts_value(dots_rad,sr)   = hom(nzb,1,99,sr)           ! rad_net
     3267          ts_value(dots_rad+1,sr) = hom(nzb,1,100,sr)          ! rad_sw_in
     3268       ENDIF
     3269
    31643270!
    31653271!--    Calculate additional statistics provided by the user interface
Note: See TracChangeset for help on using the changeset viewer.