Ignore:
Timestamp:
Jul 30, 2019 2:47:10 PM (5 years ago)
Author:
suehring
Message:

Merge with branch resler: biomet- output of bio_mrt added; plant_canopy - separate vertical dimension for 3D output (to save disk space); radiation - remove unused plant canopy variables; urban-surface model - do not add anthropogenic heat during wall spin-up

File:
1 edited

Legend:

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

    r4126 r4127  
    2727! -----------------
    2828! $Id$
     29! Output for bio_mrt added (merge from branch resler)
     30!
     31! 4126 2019-07-30 11:09:11Z gronemeier
    2932! renamed vitd3_exposure_av into vitd3_dose,
    3033! renamed uvem_calc_exposure into bio_calculate_uv_exposure
     
    226229    LOGICAL ::  average_trigger_utci   = .FALSE.  !< update averaged input on call to bio_utci?
    227230    LOGICAL ::  average_trigger_pet    = .FALSE.  !< update averaged input on call to bio_pet?
     231    LOGICAL ::  average_trigger_mrt    = .FALSE.  !< update averaged input on call to bio_pet?
    228232    LOGICAL ::  do_calculate_perct     = .FALSE.  !< Turn index PT (instant. input) on or off
    229233    LOGICAL ::  do_calculate_perct_av  = .FALSE.  !< Turn index PT (averaged input) on or off
     
    232236    LOGICAL ::  do_calculate_utci      = .FALSE.  !< Turn index UTCI (instant. input) on or off
    233237    LOGICAL ::  do_calculate_utci_av   = .FALSE.  !< Turn index UTCI (averaged input) on or off
     238    LOGICAL ::  do_calculate_mrt2d     = .FALSE.  !< Turn index MRT 2D (averaged or inst) on or off
    234239
    235240!
     
    432437
    433438
    434           CASE ( 'bio_perct*', 'bio_utci*', 'bio_pet*' )
     439          CASE ( 'bio_perct*', 'bio_utci*', 'bio_pet*', 'bio_mrt*' )
    435440
    436441!
     
    447452             IF ( .NOT. average_trigger_perct  .AND.                           &
    448453                  .NOT. average_trigger_utci   .AND.                           &
    449                   .NOT. average_trigger_pet )  THEN
     454                  .NOT. average_trigger_pet    .AND.                           &
     455                  .NOT. average_trigger_mrt )  THEN
    450456!
    451457!--             Memorize the first index called to control averaging
     
    458464                IF ( TRIM( variable ) == 'bio_pet*' )  THEN
    459465                    average_trigger_pet = .TRUE.
     466                ENDIF
     467                IF ( TRIM( variable ) == 'bio_mrt*' )  THEN
     468                    average_trigger_mrt = .TRUE.
    460469                ENDIF
    461470             ENDIF
     
    499508             ENDIF
    500509
    501           CASE ( 'bio_perct*', 'bio_utci*', 'bio_pet*' )
     510          CASE ( 'bio_perct*', 'bio_utci*', 'bio_pet*', 'bio_mrt*' )
    502511!
    503512!--          Only continue if the current index is the one to trigger the input
     
    509518             IF ( average_trigger_pet    .AND.  TRIM( variable ) /=            &
    510519                'bio_pet*')    RETURN
     520             IF ( average_trigger_mrt    .AND.  TRIM( variable ) /=            &
     521                'bio_mrt*')    RETURN
    511522!
    512523!--          Now memorize which of the input grids are not averaged by other
     
    637648             ENDIF
    638649
    639           CASE ( 'bio_perct*', 'bio_utci*', 'bio_pet*' )
     650          CASE ( 'bio_perct*', 'bio_utci*', 'bio_pet*', 'bio_mrt*' )
    640651!
    641652!--          Only continue if update index, see above
     
    646657             IF ( average_trigger_pet   .AND.                                  &
    647658                TRIM( variable ) /= 'bio_pet*' )  RETURN
     659             IF ( average_trigger_mrt   .AND.                                  &
     660                TRIM( variable ) /= 'bio_mrt*' )  RETURN
    648661
    649662             IF ( ALLOCATED( pt_av )  .AND.  do_average_theta )  THEN
     
    748761!--    derived in a single step based on priorly averaged arrays (see
    749762!--    bio_calculate_thermal_index_maps).
    750        CASE ( 'bio_mrt' )
     763       CASE ( 'bio_mrt', 'bio_mrt*' )
    751764          unit = 'degree_C'
    752765          thermal_comfort = .TRUE.  !< enable thermal_comfort if user forgot to do so
     
    755768             tmrt_grid = REAL( bio_fill_value, KIND = wp )
    756769          ENDIF
     770          IF ( TRIM( var ) == 'bio_mrt*' )  THEN
     771             do_calculate_mrt2d = .TRUE.
     772          END IF
    757773
    758774       CASE ( 'bio_perct*' )
     
    961977           ENDDO
    962978
     979        CASE ( 'bio_mrt*_xy' )        ! 2d-array
     980           grid = 'zu1'
     981           two_d = .TRUE.
     982           IF ( av == 0 )  THEN
     983              DO  i = nxl, nxr
     984                 DO  j = nys, nyn
     985                    local_pf(i,j,nzb+1) = tmrt_grid(j,i)
     986                 ENDDO
     987              ENDDO
     988           ELSE
     989              DO  i = nxl, nxr
     990                 DO  j = nys, nyn
     991                    local_pf(i,j,nzb+1) = tmrt_av_grid(j,i)
     992                 ENDDO
     993              ENDDO
     994           ENDIF
     995
    963996
    964997        CASE ( 'bio_perct*_xy' )        ! 2d-array
     
    13721405          READ ( 13 )  average_trigger_pet
    13731406
     1407       CASE ( 'average_trigger_mrt' )
     1408          READ ( 13 )  average_trigger_mrt
     1409
    13741410
    13751411       CASE DEFAULT
     
    14511487    CALL wrd_write_string( 'average_trigger_pet' )
    14521488    WRITE ( 14 )  average_trigger_pet
     1489    CALL wrd_write_string( 'average_trigger_mrt' )
     1490    WRITE ( 14 )  average_trigger_mrt
    14531491
    14541492 END SUBROUTINE bio_wrd_global
     
    16941732    IF ( do_calculate_perct  .OR.  do_calculate_perct_av  .OR.                 &
    16951733       do_calculate_utci  .OR.  do_calculate_utci_av  .OR.                     &
    1696        do_calculate_pet  .OR.  do_calculate_pet_av )  THEN
     1734       do_calculate_pet  .OR.  do_calculate_pet_av  .OR.                       &
     1735       do_calculate_mrt2d )  THEN
    16971736
    16981737!
Note: See TracChangeset for help on using the changeset viewer.