Changeset 2742


Ignore:
Timestamp:
Jan 12, 2018 2:59:47 PM (6 years ago)
Author:
suehring
Message:

Output of surface temperature tsurf* at urban- and natural-type surfaces

Location:
palm/trunk/SOURCE
Files:
5 edited

Legend:

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

    r2735 r2742  
    2525! -----------------
    2626! $Id$
     27! Enable output of surface temperature
     28!
     29! 2735 2018-01-11 12:01:27Z suehring
    2730! output of r_a moved from land-surface to consider also urban-type surfaces
    2831!
     
    422425             CALL exchange_horiz_2d( ts_av, nbgp )
    423426
     427         CASE ( 'tsurf*' )
     428             DO  i = nxlg, nxrg
     429                DO  j = nysg, nyng
     430                   tsurf_av(j,i) = tsurf_av(j,i) / REAL( average_count_3d, KIND=wp )
     431                ENDDO
     432             ENDDO
     433             CALL exchange_horiz_2d( tsurf_av, nbgp )
     434
    424435          CASE ( 'u' )
    425436             DO  i = nxlg, nxrg
  • palm/trunk/SOURCE/check_parameters.f90

    r2735 r2742  
    2525! -----------------
    2626! $Id$
     27! Enable output of surface temperature
     28!
     29! 2735 2018-01-11 12:01:27Z suehring
    2730! output of r_a moved from land-surface to consider also urban-type surfaces
    2831!
     
    32863289
    32873290          CASE ( 'lwp*', 'ol*', 'pra*', 'prr*', 'qsws*', 'r_a*', 'shf*',       &
    3288                  'ssws*', 't*', 'u*', 'z0*', 'z0h*', 'z0q*' )
     3291                 'ssws*', 't*', 'tsurf*', 'u*', 'z0*', 'z0h*', 'z0q*' )
    32893292             IF ( k == 0  .OR.  data_output(i)(ilen-2:ilen) /= '_xy' )  THEN
    32903293                message_string = 'illegal value for data_output: "' //         &
     
    33213324                CALL message( 'check_parameters', 'PA0322', 1, 2, 0, 6, 0 )
    33223325             ENDIF
    3323              IF ( TRIM( var ) == 'r_a*'  .AND.  .NOT.  land_surface  .AND.     &
    3324                                                 .NOT.  urban_surface )         &         
     3326             IF ( ( TRIM( var ) == 'r_a*' .OR.  TRIM( var ) == 'tsurf*' )      &
     3327                 .AND.  .NOT.  land_surface  .AND.  .NOT.  urban_surface )     &         
    33253328             THEN
    33263329                message_string = 'output of "' // TRIM( var ) // '" requi' //  &
     
    33443347             IF ( TRIM( var ) == 'ssws*'  )  unit = 'kg/m2*s'
    33453348             IF ( TRIM( var ) == 't*'     )  unit = 'K'
     3349             IF ( TRIM( var ) == 'tsurf*' )  unit = 'K' 
    33463350             IF ( TRIM( var ) == 'u*'     )  unit = 'm/s'
    33473351             IF ( TRIM( var ) == 'z0*'    )  unit = 'm'
  • palm/trunk/SOURCE/data_output_2d.f90

    r2735 r2742  
    2525! -----------------
    2626! $Id$
     27! Enable output of surface temperature
     28!
     29! 2735 2018-01-11 12:01:27Z suehring
    2730! output of r_a moved from land-surface to consider also urban-type surfaces
    2831!
     
    978981                resorted = .TRUE.
    979982                two_d = .TRUE.
     983                level_z(nzb+1) = zu(nzb+1)
     984
     985             CASE ( 'tsurf*_xy' )        ! 2d-array
     986                IF ( av == 0 )  THEN
     987                   DO  m = 1, surf_lsm_h%ns
     988                      i                   = surf_lsm_h%i(m)           
     989                      j                   = surf_lsm_h%j(m)
     990                      local_pf(i,j,nzb+1) = surf_lsm_h%pt_surface(m)
     991                   ENDDO
     992
     993                   DO  m = 1, surf_usm_h%ns
     994                      i   = surf_usm_h%i(m)           
     995                      j   = surf_usm_h%j(m)
     996                      local_pf(i,j,nzb+1) = surf_usm_h%pt_surface(m)
     997                   ENDDO
     998
     999                ELSE
     1000                   DO  i = nxl, nxr
     1001                      DO  j = nys, nyn
     1002                         local_pf(i,j,nzb+1) = tsurf_av(j,i)
     1003                      ENDDO
     1004                   ENDDO
     1005                ENDIF
     1006                resorted       = .TRUE.
     1007                two_d          = .TRUE.
    9801008                level_z(nzb+1) = zu(nzb+1)
    9811009
  • palm/trunk/SOURCE/modules.f90

    r2735 r2742  
    2525! -----------------
    2626! $Id$
     27! +tsurf_av
     28!
     29! 2735 2018-01-11 12:01:27Z suehring
    2730! +r_a_av
    2831!
     
    890893    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ssws_av                !< avg. surface scalar flux
    891894    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  shf_av                 !< avg. surface heat flux
     895    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  tsurf_av               !< avg. surface temperature
    892896    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ts_av                  !< avg. characteristic temperature scale
    893897    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  us_av                  !< avg. friction velocity
  • palm/trunk/SOURCE/sum_up_3d_data.f90

    r2735 r2742  
    2525! -----------------
    2626! $Id$
     27! Enable output of surface temperature
     28!
     29! 2735 2018-01-11 12:01:27Z suehring
    2730! output of r_a moved from land-surface to consider also urban-type surfaces
    2831!
     
    162165               q_av, qc_av, ql_av, ql_c_av, ql_v_av, ql_vp_av, qr_av, qsws_av, &
    163166               qv_av, r_a_av, rho_ocean_av, s_av, sa_av, shf_av, ssws_av,      &
    164                ts_av, u_av, us_av, v_av, vpt_av, w_av, z0_av, z0h_av, z0q_av
     167               ts_av, tsurf_av, u_av, us_av, v_av, vpt_av, w_av, z0_av, z0h_av,&
     168               z0q_av
    165169#if defined( __chem )
    166170    USE chemistry_model_mod,                                                   &
     
    409413                ENDIF
    410414                ts_av = 0.0_wp
     415
     416             CASE ( 'tsurf*' )
     417                IF ( .NOT. ALLOCATED( tsurf_av ) )  THEN
     418                   ALLOCATE( tsurf_av(nysg:nyng,nxlg:nxrg) )
     419                ENDIF
     420                tsurf_av = 0.0_wp
    411421
    412422             CASE ( 'u' )
     
    854864             ENDDO
    855865
     866          CASE ( 'tsurf*' )
     867             DO  m = 1, surf_lsm_h%ns
     868                i   = surf_lsm_h%i(m)           
     869                j   = surf_lsm_h%j(m)
     870                tsurf_av(j,i) = tsurf_av(j,i) + surf_lsm_h%pt_surface(m)
     871             ENDDO
     872
     873             DO  m = 1, surf_usm_h%ns
     874                i   = surf_usm_h%i(m)           
     875                j   = surf_usm_h%j(m)
     876                tsurf_av(j,i) = tsurf_av(j,i) + surf_usm_h%pt_surface(m)
     877             ENDDO
     878
    856879          CASE ( 'u' )
    857880             DO  i = nxlg, nxrg
Note: See TracChangeset for help on using the changeset viewer.