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

Further revision of 2D surface output for radiation and chemistry quantities; bugfix for commit 3170

File:
1 edited

Legend:

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

    r3045 r3173  
    2727! -----------------
    2828! $Id$
     29! Revise output of surface quantities in case of overhanging structures
     30!
     31! 3045 2018-05-28 07:55:41Z Giersch
    2932! error messages revised
    3033!
     
    12571260    CHARACTER (LEN=*) :: variable !<
    12581261 
     1262    LOGICAL      ::  match_def !< flag indicating natural-type surface
     1263    LOGICAL      ::  match_lsm !< flag indicating natural-type surface
     1264    LOGICAL      ::  match_usm !< flag indicating urban-type surface
    12591265
    12601266    INTEGER(iwp) ::  i                  !< grid index x direction
     
    12881294             ENDDO
    12891295          ELSEIF ( TRIM(variable(4:)) == TRIM('cssws*') )        THEN
    1290              DO  m = 1, surf_def_h(0)%ns
    1291                  i = surf_def_h(0)%i(m)
    1292                  j = surf_def_h(0)%j(m)
    1293                  chem_species(lsp)%cssws_av(j,i) = chem_species(lsp)%cssws_av(j,i) + surf_def_h(0)%cssws(lsp,m)
    1294              ENDDO
    1295              DO  m = 1, surf_lsm_h%ns
    1296                  i = surf_lsm_h%i(m)
    1297                  j = surf_lsm_h%j(m)
    1298                  chem_species(lsp)%cssws_av(j,i) = chem_species(lsp)%cssws_av(j,i) + surf_lsm_h%cssws(lsp,m)
     1296             DO  i = nxl, nxr
     1297                DO  j = nys, nyn
     1298                   match_def = surf_def_h(0)%start_index(j,i) <=               &
     1299                               surf_def_h(0)%end_index(j,i)
     1300                   match_lsm = surf_lsm_h%start_index(j,i) <=                  &
     1301                               surf_lsm_h%end_index(j,i)
     1302                   match_usm = surf_usm_h%start_index(j,i) <=                  &
     1303                               surf_usm_h%end_index(j,i)
     1304
     1305                   IF ( match_def )  THEN
     1306                      m = surf_def_h(0)%end_index(j,i)
     1307                      chem_species(lsp)%cssws_av(j,i) =                        &
     1308                                             chem_species(lsp)%cssws_av(j,i) + &
     1309                                             surf_def_h(0)%cssws(lsp,m)
     1310                   ELSEIF ( match_lsm  .AND.  .NOT. match_usm )  THEN
     1311                      m = surf_lsm_h%end_index(j,i)
     1312                      chem_species(lsp)%cssws_av(j,i) =                        &
     1313                                             chem_species(lsp)%cssws_av(j,i) + &
     1314                                             surf_lsm_h%cssws(lsp,m)
     1315                   ELSEIF ( match_usm )  THEN
     1316                      m = surf_usm_h%end_index(j,i)
     1317                      chem_species(lsp)%cssws_av(j,i) =                        &
     1318                                             chem_species(lsp)%cssws_av(j,i) + &
     1319                                             surf_usm_h%cssws(lsp,m)
     1320                   ENDIF
     1321                ENDDO
    12991322             ENDDO
    1300              DO  m = 1, surf_usm_h%ns
    1301                  i = surf_usm_h%i(m)
    1302                  j = surf_usm_h%j(m)
    1303                  chem_species(lsp)%cssws_av(j,i) = chem_species(lsp)%cssws_av(j,i) + surf_usm_h%cssws(lsp,m)
    1304              ENDDO
    1305 
    13061323          ENDIF
    13071324       ENDDO
Note: See TracChangeset for help on using the changeset viewer.