Ignore:
Timestamp:
Aug 27, 2020 8:54:43 AM (4 years ago)
Author:
pavelkrc
Message:

Radiation Transfer Model version 4.0

File:
1 edited

Legend:

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

    r4630 r4653  
    362362               force_radiation_call,                                                               &
    363363               id,                                                                                 &
    364                ieast_l,                                                                            &
    365                ieast_u,                                                                            &
    366                inorth_l,                                                                           &
    367                inorth_u,                                                                           &
    368                isouth_l,                                                                           &
    369                isouth_u,                                                                           &
    370                iup_l,                                                                              &
    371                iup_u,                                                                              &
    372                iwest_l,                                                                            &
    373                iwest_u,                                                                            &
     364               ieast,                                                                              &
     365               inorth,                                                                             &
     366               isouth,                                                                             &
     367               iup,                                                                                &
     368               iwest,                                                                              &
    374369               nz_urban_b,                                                                         &
    375370               nz_urban_t,                                                                         &
     
    13431338    INTEGER(iwp), PARAMETER                            ::  nd = 5                                  !< number of directions
    13441339    CHARACTER(LEN=6), DIMENSION(0:nd-1), PARAMETER     ::  dirname = (/ '_roof ', '_south', '_north', '_west ', '_east ' /)
    1345     INTEGER(iwp), DIMENSION(0:nd-1), PARAMETER         ::  dirint = (/ iup_u, isouth_u, inorth_u, iwest_u, ieast_u /)
     1340    INTEGER(iwp), DIMENSION(0:nd-1), PARAMETER         ::  dirint = (/ iup, isouth, inorth, iwest, ieast /)
    13461341
    13471342
     
    24602455
    24612456    INTEGER(iwp), PARAMETER                            ::  nd = 5  !< number of directions
    2462     INTEGER(iwp), DIMENSION(0:nd-1), PARAMETER         ::  dirint =  (/    iup_u, isouth_u, inorth_u,  iwest_u,  ieast_u /)  !<
     2457    INTEGER(iwp), DIMENSION(0:nd-1), PARAMETER         ::  dirint =  (/      iup,   isouth,   inorth,    iwest,    ieast /)  !<
    24632458    INTEGER(iwp), DIMENSION(0:nd-1), PARAMETER         ::  diridx =  (/       -1,        1,        0,        3,        2 /)
    24642459                                                           !< index for surf_*_v: 0:3 = (North, South, East, West)
     
    25312526!
    25322527!--       Array of surface height (z)
    2533           IF ( idsint == iup_u )  THEN
     2528          IF ( idsint == iup )  THEN
    25342529             DO  m = 1, surf_usm_h%ns
    25352530                i = surf_usm_h%i(m)
     
    25512546!
    25522547!--       Surface category
    2553           IF ( idsint == iup_u )  THEN
     2548          IF ( idsint == iup )  THEN
    25542549             DO  m = 1, surf_usm_h%ns
    25552550                i = surf_usm_h%i(m)
     
    25712566!
    25722567!--       Transmissivity window tiles
    2573           IF ( idsint == iup_u )  THEN
     2568          IF ( idsint == iup )  THEN
    25742569             DO  m = 1, surf_usm_h%ns
    25752570                i = surf_usm_h%i(m)
     
    25922587!--       Array of sensible heat flux from surfaces
    25932588          IF ( av == 0 )  THEN
    2594              IF ( idsint == iup_u )  THEN
     2589             IF ( idsint == iup )  THEN
    25952590                DO  m = 1, surf_usm_h%ns
    25962591                   i = surf_usm_h%i(m)
     
    26092604             ENDIF
    26102605          ELSE
    2611              IF ( idsint == iup_u )  THEN
     2606             IF ( idsint == iup )  THEN
    26122607                DO  m = 1, surf_usm_h%ns
    26132608                   i = surf_usm_h%i(m)
     
    26322627!--       Array of latent heat flux from surfaces
    26332628          IF ( av == 0 )  THEN
    2634              IF ( idsint == iup_u )  THEN
     2629             IF ( idsint == iup )  THEN
    26352630                DO  m = 1, surf_usm_h%ns
    26362631                   i = surf_usm_h%i(m)
     
    26492644             ENDIF
    26502645          ELSE
    2651              IF ( idsint == iup_u )  THEN
     2646             IF ( idsint == iup )  THEN
    26522647                DO  m = 1, surf_usm_h%ns
    26532648                   i = surf_usm_h%i(m)
     
    26712666!--       Array of latent heat flux from vegetation surfaces
    26722667          IF ( av == 0 )  THEN
    2673              IF ( idsint == iup_u )  THEN
     2668             IF ( idsint == iup )  THEN
    26742669                DO  m = 1, surf_usm_h%ns
    26752670                   i = surf_usm_h%i(m)
     
    26882683             ENDIF
    26892684          ELSE
    2690              IF ( idsint == iup_u )  THEN
     2685             IF ( idsint == iup )  THEN
    26912686                DO  m = 1, surf_usm_h%ns
    26922687                   i = surf_usm_h%i(m)
     
    27102705!--       Array of latent heat flux from surfaces with liquid
    27112706          IF ( av == 0 )  THEN
    2712              IF ( idsint == iup_u )  THEN
     2707             IF ( idsint == iup )  THEN
    27132708                DO  m = 1, surf_usm_h%ns
    27142709                   i = surf_usm_h%i(m)
     
    27272722             ENDIF
    27282723          ELSE
    2729              IF ( idsint == iup_u )  THEN
     2724             IF ( idsint == iup )  THEN
    27302725                DO  m = 1, surf_usm_h%ns
    27312726                   i = surf_usm_h%i(m)
     
    27492744!--       Array of heat flux from ground (land, wall, roof)
    27502745          IF ( av == 0 )  THEN
    2751              IF ( idsint == iup_u )  THEN
     2746             IF ( idsint == iup )  THEN
    27522747                DO  m = 1, surf_usm_h%ns
    27532748                   i = surf_usm_h%i(m)
     
    27662761             ENDIF
    27672762          ELSE
    2768              IF ( idsint == iup_u )  THEN
     2763             IF ( idsint == iup )  THEN
    27692764                DO  m = 1, surf_usm_h%ns
    27702765                   i = surf_usm_h%i(m)
     
    27882783!--       Array of heat flux from window ground (land, wall, roof)
    27892784          IF ( av == 0 )  THEN
    2790              IF ( idsint == iup_u )  THEN
     2785             IF ( idsint == iup )  THEN
    27912786                DO  m = 1, surf_usm_h%ns
    27922787                   i = surf_usm_h%i(m)
     
    28052800             ENDIF
    28062801          ELSE
    2807              IF ( idsint == iup_u )  THEN
     2802             IF ( idsint == iup )  THEN
    28082803                DO  m = 1, surf_usm_h%ns
    28092804                   i = surf_usm_h%i(m)
     
    28272822!--       Array of heat flux from green ground (land, wall, roof)
    28282823          IF ( av == 0 )  THEN
    2829              IF ( idsint == iup_u )  THEN
     2824             IF ( idsint == iup )  THEN
    28302825                DO  m = 1, surf_usm_h%ns
    28312826                   i = surf_usm_h%i(m)
     
    28442839             ENDIF
    28452840          ELSE
    2846              IF ( idsint == iup_u )  THEN
     2841             IF ( idsint == iup )  THEN
    28472842                DO  m = 1, surf_usm_h%ns
    28482843                   i = surf_usm_h%i(m)
     
    28662861!--       Array of heat flux from indoor ground (land, wall, roof)
    28672862          IF ( av == 0 )  THEN
    2868              IF ( idsint == iup_u )  THEN
     2863             IF ( idsint == iup )  THEN
    28692864                DO  m = 1, surf_usm_h%ns
    28702865                   i = surf_usm_h%i(m)
     
    28832878             ENDIF
    28842879          ELSE
    2885              IF ( idsint == iup_u )  THEN
     2880             IF ( idsint == iup )  THEN
    28862881                DO  m = 1, surf_usm_h%ns
    28872882                   i = surf_usm_h%i(m)
     
    29052900!--       Array of heat flux from indoor window ground (land, wall, roof)
    29062901          IF ( av == 0 )  THEN
    2907              IF ( idsint == iup_u )  THEN
     2902             IF ( idsint == iup )  THEN
    29082903                DO  m = 1, surf_usm_h%ns
    29092904                   i = surf_usm_h%i(m)
     
    29222917             ENDIF
    29232918          ELSE
    2924              IF ( idsint == iup_u )  THEN
     2919             IF ( idsint == iup )  THEN
    29252920                DO  m = 1, surf_usm_h%ns
    29262921                   i = surf_usm_h%i(m)
     
    29442939!--       Surface temperature for surfaces
    29452940          IF ( av == 0 )  THEN
    2946              IF ( idsint == iup_u )  THEN
     2941             IF ( idsint == iup )  THEN
    29472942                DO  m = 1, surf_usm_h%ns
    29482943                   i = surf_usm_h%i(m)
     
    29612956             ENDIF
    29622957          ELSE
    2963              IF ( idsint == iup_u )  THEN
     2958             IF ( idsint == iup )  THEN
    29642959                DO  m = 1, surf_usm_h%ns
    29652960                   i = surf_usm_h%i(m)
     
    29832978!--       Surface temperature for window surfaces
    29842979          IF ( av == 0 )  THEN
    2985              IF ( idsint == iup_u )  THEN
     2980             IF ( idsint == iup )  THEN
    29862981                DO  m = 1, surf_usm_h%ns
    29872982                   i = surf_usm_h%i(m)
     
    30012996
    30022997          ELSE
    3003              IF ( idsint == iup_u )  THEN
     2998             IF ( idsint == iup )  THEN
    30042999                DO  m = 1, surf_usm_h%ns
    30053000                   i = surf_usm_h%i(m)
     
    30253020!--       Surface temperature for green surfaces
    30263021          IF ( av == 0 )  THEN
    3027              IF ( idsint == iup_u )  THEN
     3022             IF ( idsint == iup )  THEN
    30283023                DO  m = 1, surf_usm_h%ns
    30293024                   i = surf_usm_h%i(m)
     
    30433038
    30443039          ELSE
    3045              IF ( idsint == iup_u )  THEN
     3040             IF ( idsint == iup )  THEN
    30463041                DO  m = 1, surf_usm_h%ns
    30473042                   i = surf_usm_h%i(m)
     
    30673062!--       Near surface temperature for whole surfaces
    30683063          IF ( av == 0 )  THEN
    3069              IF ( idsint == iup_u )  THEN
     3064             IF ( idsint == iup )  THEN
    30703065                DO  m = 1, surf_usm_h%ns
    30713066                   i = surf_usm_h%i(m)
     
    30863081
    30873082          ELSE
    3088              IF ( idsint == iup_u )  THEN
     3083             IF ( idsint == iup )  THEN
    30893084                DO  m = 1, surf_usm_h%ns
    30903085                   i = surf_usm_h%i(m)
     
    31093104!--       Wall temperature for  iwl layer of walls and land
    31103105          IF ( av == 0 )  THEN
    3111              IF ( idsint == iup_u )  THEN
     3106             IF ( idsint == iup )  THEN
    31123107                DO  m = 1, surf_usm_h%ns
    31133108                   i = surf_usm_h%i(m)
     
    31263121             ENDIF
    31273122          ELSE
    3128              IF ( idsint == iup_u )  THEN
     3123             IF ( idsint == iup )  THEN
    31293124                DO  m = 1, surf_usm_h%ns
    31303125                   i = surf_usm_h%i(m)
     
    31483143!--       Window temperature for iwl layer of walls and land
    31493144          IF ( av == 0 )  THEN
    3150              IF ( idsint == iup_u )  THEN
     3145             IF ( idsint == iup )  THEN
    31513146                DO  m = 1, surf_usm_h%ns
    31523147                   i = surf_usm_h%i(m)
     
    31653160             ENDIF
    31663161          ELSE
    3167              IF ( idsint == iup_u )  THEN
     3162             IF ( idsint == iup )  THEN
    31683163                DO  m = 1, surf_usm_h%ns
    31693164                   i = surf_usm_h%i(m)
     
    31873182!--       Green temperature for  iwl layer of walls and land
    31883183          IF ( av == 0 )  THEN
    3189              IF ( idsint == iup_u )  THEN
     3184             IF ( idsint == iup )  THEN
    31903185                DO  m = 1, surf_usm_h%ns
    31913186                   i = surf_usm_h%i(m)
     
    32043199             ENDIF
    32053200          ELSE
    3206              IF ( idsint == iup_u )  THEN
     3201             IF ( idsint == iup )  THEN
    32073202                DO  m = 1, surf_usm_h%ns
    32083203                   i = surf_usm_h%i(m)
     
    32263221!--       Soil water content for  iwl layer of walls and land
    32273222          IF ( av == 0 )  THEN
    3228              IF ( idsint == iup_u )  THEN
     3223             IF ( idsint == iup )  THEN
    32293224                DO  m = 1, surf_usm_h%ns
    32303225                   i = surf_usm_h%i(m)
     
    32373232             ENDIF
    32383233          ELSE
    3239              IF ( idsint == iup_u )  THEN
     3234             IF ( idsint == iup )  THEN
    32403235                DO  m = 1, surf_usm_h%ns
    32413236                   i = surf_usm_h%i(m)
Note: See TracChangeset for help on using the changeset viewer.