Ignore:
Timestamp:
Oct 30, 2018 6:08:55 PM (5 years ago)
Author:
kanani
Message:

from branch resler@3462: add MRT shaping function (radiation_model_mod), use basic constants (biometeorology_mod), adjust precision to wp (biometeorology_pt_mod)

File:
1 edited

Legend:

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

    r3448 r3464  
    2020!--------------------------------------------------------------------------------!
    2121!
    22 ! Current revisions: 001
    23 ! -----------------
     22! Current revisions:
     23! ------------------
    2424!
    2525!
    26 ! Former revisions: 001
     26! Former revisions:
    2727! -----------------
    2828! $Id$
    29 ! Initial revision 001
     29! From branch resler@3462, pavelkrc:
     30! replace specific precision DLOG, DMOD intrinsics with generic precision for
     31! compatibility with 'wp'
     32!
     33!
     34! Initial revision
    3035!
    3136!
     
    116121! Description:
    117122! ------------
    118 !> PT_BASIC.F90   Version of perceived temperature (PT, °C) for
     123!> PT_BASIC.F90   Version of perceived temperature (PT, ï¿œC) for
    119124!> - standard measured/predicted meteorological values and TMRT
    120125!> as input;
     
    131136
    132137!-- Type of input of the argument list
    133     REAL(wp), INTENT ( IN )  :: tt2m   !< Local air temperature (°C)
     138    REAL(wp), INTENT ( IN )  :: tt2m   !< Local air temperature (ï¿œC)
    134139    REAL(wp), INTENT ( IN )  :: el2m   !< Local vapour pressure (hPa)
    135     REAL(wp), INTENT ( IN )  :: tmrt   !< Local mean radiant temperature (°C)
     140    REAL(wp), INTENT ( IN )  :: tmrt   !< Local mean radiant temperature (ï¿œC)
    136141    REAL(wp), INTENT ( IN )  :: vau1m  !< Local wind velocitry (m/s)
    137142    REAL(wp), INTENT ( IN )  :: pb     !< Local barometric air pressure (hPa)
    138143
    139144!-- Type of output of the argument list
    140     REAL(wp), INTENT ( OUT ) :: pt_basic  !< Perceived temperature (°C)
     145    REAL(wp), INTENT ( OUT ) :: pt_basic  !< Perceived temperature (ï¿œC)
    141146    REAL(wp), INTENT ( OUT ) :: clo       !< Clothing index (dimensionless)
    142147
     
    301306! ------------
    302307!> The SUBROUTINE calculates the saturation water vapour pressure
    303 !> (hPa = hecto Pascal) for a given temperature tt (°C).
     308!> (hPa = hecto Pascal) for a given temperature tt (ï¿œC).
    304309!> For example, tt can be the air temperature or the dew point temperature.
    305310!------------------------------------------------------------------------------!
     
    308313    IMPLICIT NONE
    309314
    310     REAL(wp), INTENT ( IN )  ::  tt   !< ambient air temperature (°C)
     315    REAL(wp), INTENT ( IN )  ::  tt   !< ambient air temperature (ï¿œC)
    311316    REAL(wp), INTENT ( OUT ) ::  p_st !< saturation water vapour pressure (hPa)
    312317
     
    316321
    317322    IF ( tt < 0._wp ) THEN
    318 !--    tt  < 0 (°C): saturation water vapour pressure over ice
     323!--    tt  < 0 (ï¿œC): saturation water vapour pressure over ice
    319324       b = 17.84362_wp
    320325       c = 245.425_wp
    321326    ELSE
    322 !--    tt >= 0 (°C): saturation water vapour pressure over water
     327!--    tt >= 0 (ï¿œC): saturation water vapour pressure over water
    323328       b = 17.08085_wp
    324329       c = 234.175_wp
     
    346351
    347352!-- Input variables of argument list:
    348     REAL(wp), INTENT ( IN )  :: tt2m     !< Ambient temperature (°C)
    349     REAL(wp), INTENT ( IN )  :: tmrt     !< Mean radiant temperature (°C)
     353    REAL(wp), INTENT ( IN )  :: tt2m     !< Ambient temperature (ï¿œC)
     354    REAL(wp), INTENT ( IN )  :: tmrt     !< Mean radiant temperature (ï¿œC)
    350355    REAL(wp), INTENT ( IN )  :: el2m     !< Water vapour pressure (hPa)
    351356    REAL(wp), INTENT ( IN )  :: vau1m    !< Wind speed (m/s) 1 m above ground
     
    362367! Output variables of argument list:
    363368    REAL(wp), INTENT ( OUT ) :: pmva     !< 0 (set to zero, because clo is evaluated for comfort)
    364     REAL(wp), INTENT ( OUT ) :: top      !< Operative temperature (°C) at found root of Fanger's PMV
     369    REAL(wp), INTENT ( OUT ) :: top      !< Operative temperature (ï¿œC) at found root of Fanger's PMV
    365370    REAL(wp), INTENT ( OUT ) :: clo_res  !< Resulting clothing insulation value (clo)
    366371    INTEGER(iwp), INTENT ( OUT ) :: nerr !< Error status / quality flag
     
    488493    REAL(wp), INTENT ( IN ) ::  pmv   !< Fangers predicted mean vote (dimensionless)
    489494    REAL(wp), INTENT ( IN ) ::  clo   !< clothing insulation index (clo)
    490     REAL(wp), INTENT ( OUT ) ::  pt   !< pt (°C) corresponding to given PMV / clo
     495    REAL(wp), INTENT ( OUT ) ::  pt   !< pt (ï¿œC) corresponding to given PMV / clo
    491496
    492497    IF ( pmv <= -0.11_wp ) THEN
     
    517522
    518523!-- Input variables of argument list:
    519     REAL(wp), INTENT ( IN ) ::  tt       !< Ambient air temperature (°C)
    520     REAL(wp), INTENT ( IN ) ::  tmrt     !< Mean radiant temperature (°C)
     524    REAL(wp), INTENT ( IN ) ::  tt       !< Ambient air temperature (ï¿œC)
     525    REAL(wp), INTENT ( IN ) ::  tmrt     !< Mean radiant temperature (ï¿œC)
    521526    REAL(wp), INTENT ( IN ) ::  pa       !< Water vapour pressure (hPa)
    522527    REAL(wp), INTENT ( IN ) ::  pb       !< Barometric pressure (hPa) at site
     
    530535!            to Fanger corresponding to meteorological (tt,tmrt,pa,vau,pb)
    531536!            and individual variables (clo, actlev, eta)
    532     REAL(wp), INTENT ( OUT ) ::  top      !< operative temperature (°C)
     537    REAL(wp), INTENT ( OUT ) ::  top      !< operative temperature (ï¿œC)
    533538
    534539!-- Internal variables
     
    638643!-- Input variables of argument list:
    639644    REAL(wp),     INTENT ( IN )  :: pmva     !< Actual Predicted Mean Vote (PMV) according to Fanger
    640     REAL(wp),     INTENT ( IN )  :: tt2m     !< Ambient temperature (°C) at screen level
     645    REAL(wp),     INTENT ( IN )  :: tt2m     !< Ambient temperature (ï¿œC) at screen level
    641646    REAL(wp),     INTENT ( IN )  :: el2m     !< Water vapour pressure (hPa) at screen level
    642647    REAL(wp),     INTENT ( IN )  :: svp_tt   !< Saturation water vapour pressure (hPa) at tt2m
    643     REAL(wp),     INTENT ( IN )  :: tmrt     !< Mean radiant temperature (°C) at screen level
     648    REAL(wp),     INTENT ( IN )  :: tmrt     !< Mean radiant temperature (ï¿œC) at screen level
    644649    REAL(wp),     INTENT ( IN )  :: vau1m    !< Wind speed (m/s) 1 m above ground
    645650
     
    724729       nerr = -3_iwp
    725730       IF ( el2m < p10 ) THEN
    726 !--       Due to conditions of regressíon: r.H. >= 5 %
     731!--       Due to conditions of regressï¿œon: r.H. >= 5 %
    727732          pa = p10
    728733       ELSE
    729 !--       Due to conditions of regressíon: r.H. <= 95 %
     734!--       Due to conditions of regressï¿œon: r.H. <= 95 %
    730735          pa = p95
    731736       ENDIF
     
    733738    IF ( pa > 0._wp ) THEN
    734739!--    Natural logarithm of pa
    735        apa = DLOG ( pa )
     740       apa = LOG ( pa )
    736741    ELSE
    737742       apa = -5._wp
     
    741746    pa_p50   = 0.5_wp * svp_tt
    742747    IF ( pa_p50 > 0._wp .AND. pa > 0._wp ) THEN
    743        dapa   = apa - DLOG ( pa_p50 )
     748       dapa   = apa - LOG ( pa_p50 )
    744749       pa_p50 = pa / pa_p50
    745750    ELSE
     
    765770       RETURN
    766771    ENDIF
    767     gew = DMOD ( pmv, 1._wp )
     772    gew = MOD ( pmv, 1._wp )
    768773    IF ( gew < 0._wp ) gew = 0._wp
    769774    IF ( nreg > 5_iwp ) THEN
     
    834839!> velocity:
    835840!> - defined only under warm conditions: gtc based on 0.5 (clo) and
    836 !>                                       gtc > 16.826 (°C)
     841!>                                       gtc > 16.826 (ï¿œC)
    837842!> - undefined: sultr_res set at +99.
    838843!------------------------------------------------------------------------------!
     
    904909!-- Type of input arguments
    905910    REAL(wp), INTENT ( IN ) :: pmva      !< Fanger's classical predicted mean vote
    906     REAL(wp), INTENT ( IN ) :: tt2m      !< Air temperature (°C) 2 m above ground
     911    REAL(wp), INTENT ( IN ) :: tt2m      !< Air temperature (ï¿œC) 2 m above ground
    907912    REAL(wp), INTENT ( IN ) :: vau1m     !< Relative wind velocity 1 m above ground (m/s)
    908     REAL(wp), INTENT ( IN ) :: tmrt      !< Mean radiant temperature (°C)
     913    REAL(wp), INTENT ( IN ) :: tmrt      !< Mean radiant temperature (ï¿œC)
    909914
    910915!-- Type of output argument
     
    10361041!> (neither body cooling nor body heating). It is related to the Klima-
    10371042!> Michel activity level (134.682 W/m2). IREQ_neutral is only defined
    1038 !> for gt < 10 (°C)
     1043!> for gt < 10 (ï¿œC)
    10391044!------------------------------------------------------------------------------!
    10401045 REAL(wp) FUNCTION ireq_neutral( gt, ireq_minimal, nerr )
     
    10591064    ireq_neutral = 1.62_wp - 0.0564_wp * top02
    10601065
    1061 !-- Regression only defined for gt <= 10 (°C)
     1066!-- Regression only defined for gt <= 10 (ï¿œC)
    10621067    IF ( ireq_neutral < 0.5_wp ) THEN
    10631068       IF ( ireq_neutral < 0.48_wp ) THEN
Note: See TracChangeset for help on using the changeset viewer.