Changeset 3176


Ignore:
Timestamp:
Jul 26, 2018 5:12:48 PM (6 years ago)
Author:
suehring
Message:

Major bugfix in calculation of ol and ts at building roofs; bugfix in restart data for surface elements; in 2D data output, mask latent heat flux at urban-type surfaces

Location:
palm/trunk/SOURCE
Files:
5 edited

Legend:

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

    r3052 r3176  
    2525! -----------------
    2626! $Id$
     27! Remove output of latent heat flux at urban-surfaces and set fill values
     28! instead
     29!
     30! 3052 2018-05-31 06:11:20Z raasch
    2731! Do not open FORTRAN binary files in case of parallel netCDF I/O
    2832!
     
    933937             CASE ( 'qsws*_xy' )        ! 2d-array
    934938                IF ( av == 0 ) THEN
     939                   local_pf(:,:,nzb+1) = REAL( fill_value, KIND = wp )
    935940!
    936941!--                In case of default surfaces, clean-up flux by density.
    937 !--                In case of land- and urban-surfaces, convert fluxes into
     942!--                In case of land-surfaces, convert fluxes into
    938943!--                dynamic units
    939944                   DO  m = 1, surf_def_h(0)%ns
     
    949954                      k = surf_lsm_h%k(m)
    950955                      local_pf(i,j,nzb+1) = surf_lsm_h%qsws(m) * l_v
    951                    ENDDO
    952                    DO  m = 1, surf_usm_h%ns
    953                       i = surf_usm_h%i(m)
    954                       j = surf_usm_h%j(m)
    955                       k = surf_usm_h%k(m)
    956                       local_pf(i,j,nzb+1) = surf_usm_h%qsws(m) * l_v
    957956                   ENDDO
    958957                ELSE
  • palm/trunk/SOURCE/sum_up_3d_data.f90

    r3173 r3176  
    2525! -----------------
    2626! $Id$
     27! Remove output of latent heat flux at urban-surfaces and set fill values
     28! instead
     29!
     30! 3173 2018-07-26 12:55:23Z suehring
    2731! Bugfix for last commit
    2832!
     
    894898                         qsws_av(j,i) = qsws_av(j,i) +                         &
    895899                                         surf_lsm_h%qsws(m) * l_v
    896                       ELSEIF ( match_usm )  THEN
    897                          m = surf_usm_h%end_index(j,i)
    898                          qsws_av(j,i) = qsws_av(j,i) +                         &
    899                                          surf_usm_h%qsws(m) * l_v
    900900                      ENDIF
    901901                   ENDDO
  • palm/trunk/SOURCE/surface_mod.f90

    r3152 r3176  
    2626! -----------------
    2727! $Id$
     28! Bugfix in restarts for surface elements.
     29!
     30! 3152 2018-07-19 13:26:52Z suehring
    2831! q_surface added
    2932!
     
    26902693                         surf_h(l)%pt_surface(mm(l)) = surf_lsm_h%pt_surface(m)
    26912694                      IF ( ALLOCATED( surf_def_h(l)%q_surface ) )              &
    2692                          surf_h(l)%q_surface(mm(l)) = surf_def_h(l)%q_surface(m)
     2695                         surf_h(l)%q_surface(mm(l)) = surf_lsm_h%q_surface(m)
    26932696                      IF ( ALLOCATED( surf_def_h(l)%vpt_surface ) )            &
    2694                          surf_h(l)%vpt_surface(mm(l)) = surf_def_h(l)%vpt_surface(m)
     2697                         surf_h(l)%vpt_surface(mm(l)) = surf_lsm_h%vpt_surface(m)
    26952698                      IF ( ALLOCATED( surf_lsm_h%usws ) )                      &
    26962699                         surf_h(0)%usws(mm(0))    = surf_lsm_h%usws(m)
  • palm/trunk/SOURCE/time_integration.f90

    r3159 r3176  
    10151015             IF (urban_surface) THEN
    10161016                CALL cpu_log( log_point(74), 'urban_surface', 'start' )
     1017               
    10171018                CALL usm_surface_energy_balance
    10181019                IF ( usm_material_model )  THEN
  • palm/trunk/SOURCE/urban_surface_mod.f90

    r3152 r3176  
    2828! -----------------
    2929! $Id$
     30! Bugfix, update virtual potential surface temparture, else heat fluxes on
     31! roofs might become unphysical
     32!
     33! 3152 2018-07-19 13:26:52Z suehring
    3034! Initialize q_surface, which might be used in surface_layer_fluxes
    3135!
     
    74387442                           surf_usm_h%tt_surface_green_m(m)
    74397443!
    7440 !--        Store surface temperature       
     7444!--        Store surface temperature on pt_surface. Further, in case humidity is used
     7445!--        store also vpt_surface, which is, due to the lack of moisture on roofs simply
     7446!--        assumed to be the surface temperature.
    74417447           surf_usm_h%pt_surface(m) = ( surf_usm_h%frac(ind_veg_wall,m) * t_surf_h_p(m)   &
    74427448                               + surf_usm_h%frac(ind_wat_win,m) * t_surf_window_h_p(m)   &
    74437449                               + surf_usm_h%frac(ind_pav_green,m) * t_surf_green_h_p(m) )  &
    74447450                               / exn(k)
     7451                               
     7452           IF ( humidity )  surf_usm_h%vpt_surface(m) =                        &
     7453                                                   surf_usm_h%pt_surface(m)
    74457454                       
    74467455!--        calculate true tendency
     
    76377646                                surf_usm_v(l)%tt_surface_green_m(m)
    76387647!
    7639 !--           Store surface temperature       
     7648!--           Store surface temperature. Further, in case humidity is used
     7649!--           store also vpt_surface, which is, due to the lack of moisture on roofs simply
     7650!--           assumed to be the surface temperature.     
    76407651              surf_usm_v(l)%pt_surface(m) =  ( surf_usm_v(l)%frac(ind_veg_wall,m) * t_surf_v_p(l)%t(m)  &
    76417652                                      + surf_usm_v(l)%frac(ind_wat_win,m) * t_surf_window_v_p(l)%t(m)  &
    76427653                                      + surf_usm_v(l)%frac(ind_pav_green,m) * t_surf_green_v_p(l)%t(m) ) &
    76437654                                      / exn(k)
     7655                                     
     7656              IF ( humidity )  surf_usm_v(l)%vpt_surface(m) =                  &
     7657                                                    surf_usm_v(l)%pt_surface(m)
    76447658           
    76457659!--           calculate true tendency
Note: See TracChangeset for help on using the changeset viewer.