Ignore:
Timestamp:
May 30, 2017 5:47:52 PM (4 years ago)
Author:
suehring
Message:

Adjustments according new topography and surface-modelling concept implemented

File:
1 edited

Legend:

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

    r2101 r2232  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! Adjustments to new surface concept
    2323!
    2424! Former revisions:
     
    132132
    133133    USE arrays_3d,                                                             &
    134         ONLY:  dzw, e, nr, ol, p, pt, precipitation_rate, q, qc, ql, ql_c,     &
    135                ql_v, qr, qsws, rho_ocean, s, sa, shf, ssws, ts, u, us, v, vpt, w, z0,&
    136                z0h, z0q
     134        ONLY:  dzw, e, nr, p, pt, precipitation_rate, q, qc, ql, ql_c, ql_v,   &
     135               qr, rho_ocean, s, sa, u, v, vpt, w
    137136
    138137    USE averaging,                                                             &
     
    147146
    148147    USE control_parameters,                                                    &
    149         ONLY:  average_count_3d, cloud_physics, doav, doav_n, rho_surface,     &
    150                urban_surface, varnamelength
     148        ONLY:  average_count_3d, cloud_physics, doav, doav_n, land_surface,    &
     149               rho_surface, urban_surface, varnamelength
    151150
    152151    USE cpulog,                                                                &
     
    159158
    160159    USE land_surface_model_mod,                                                &
    161         ONLY:  land_surface, lsm_3d_data_averaging
     160        ONLY:  lsm_3d_data_averaging
    162161
    163162    USE particle_attributes,                                                   &
     
    167166        ONLY:  radiation, radiation_3d_data_averaging
    168167
     168    USE surface_mod,                                                           &
     169        ONLY:  surf_def_h, surf_lsm_h, surf_usm_h
     170
    169171    USE urban_surface_mod,                                                     &
    170172        ONLY:  usm_average_3d_data
     
    173175    IMPLICIT NONE
    174176
    175     INTEGER(iwp) ::  i   !< running index
     177    INTEGER(iwp) ::  i   !< grid index x direction
    176178    INTEGER(iwp) ::  ii  !< running index
    177     INTEGER(iwp) ::  j   !< running index
    178     INTEGER(iwp) ::  k   !< running index
     179    INTEGER(iwp) ::  j   !< grid index y direction
     180    INTEGER(iwp) ::  k   !< grid index x direction
     181    INTEGER(iwp) ::  m   !< running index surface type
    179182    INTEGER(iwp) ::  n   !<
    180183
     
    490493
    491494          CASE ( 'ol*' )
    492              DO  i = nxlg, nxrg
    493                 DO  j = nysg, nyng
    494                    ol_av(j,i) = ol_av(j,i) + ol(j,i)
    495                 ENDDO
     495             DO  m = 1, surf_def_h(0)%ns
     496                i = surf_def_h(0)%i(m)
     497                j = surf_def_h(0)%j(m)
     498                ol_av(j,i) = ol_av(j,i) + surf_def_h(0)%ol(m)
     499             ENDDO
     500             DO  m = 1, surf_lsm_h%ns
     501                i = surf_lsm_h%i(m)
     502                j = surf_lsm_h%j(m)
     503                ol_av(j,i) = ol_av(j,i) + surf_lsm_h%ol(m)
     504             ENDDO
     505             DO  m = 1, surf_usm_h%ns
     506                i = surf_usm_h%i(m)
     507                j = surf_usm_h%j(m)
     508                ol_av(j,i) = ol_av(j,i) + surf_usm_h%ol(m)
    496509             ENDDO
    497510
     
    645658
    646659          CASE ( 'qsws*' )
    647              DO  i = nxlg, nxrg
    648                 DO  j = nysg, nyng
    649                    qsws_av(j,i) = qsws_av(j,i) + qsws(j,i)
    650                 ENDDO
     660             DO  m = 1, surf_def_h(0)%ns
     661                i = surf_def_h(0)%i(m)
     662                j = surf_def_h(0)%j(m)
     663                qsws_av(j,i) = qsws_av(j,i) + surf_def_h(0)%qsws(m)
     664             ENDDO
     665             DO  m = 1, surf_lsm_h%ns
     666                i = surf_lsm_h%i(m)
     667                j = surf_lsm_h%j(m)
     668                qsws_av(j,i) = qsws_av(j,i) + surf_lsm_h%qsws(m)
     669             ENDDO
     670             DO  m = 1, surf_usm_h%ns
     671                i = surf_usm_h%i(m)
     672                j = surf_usm_h%j(m)
     673                qsws_av(j,i) = qsws_av(j,i) + surf_usm_h%qsws(m)
    651674             ENDDO
    652675
     
    688711
    689712          CASE ( 'shf*' )
    690              DO  i = nxlg, nxrg
    691                 DO  j = nysg, nyng
    692                    shf_av(j,i) = shf_av(j,i) + shf(j,i)
    693                 ENDDO
    694              ENDDO
     713             DO  m = 1, surf_def_h(0)%ns
     714                i = surf_def_h(0)%i(m)
     715                j = surf_def_h(0)%j(m)
     716                shf_av(j,i) = shf_av(j,i) + surf_def_h(0)%shf(m)
     717             ENDDO
     718             DO  m = 1, surf_lsm_h%ns
     719                i = surf_lsm_h%i(m)
     720                j = surf_lsm_h%j(m)
     721                shf_av(j,i) = shf_av(j,i) + surf_lsm_h%shf(m)
     722             ENDDO
     723             DO  m = 1, surf_usm_h%ns
     724                i = surf_usm_h%i(m)
     725                j = surf_usm_h%j(m)
     726                shf_av(j,i) = shf_av(j,i) + surf_usm_h%shf(m)
     727             ENDDO
     728
    695729
    696730          CASE ( 'ssws*' )
    697              DO  i = nxlg, nxrg
    698                 DO  j = nysg, nyng
    699                    ssws_av(j,i) = ssws_av(j,i) + ssws(j,i)
    700                 ENDDO
     731             DO  m = 1, surf_def_h(0)%ns
     732                i = surf_def_h(0)%i(m)
     733                j = surf_def_h(0)%j(m)
     734                ssws_av(j,i) = ssws_av(j,i) + surf_def_h(0)%ssws(m)
     735             ENDDO
     736             DO  m = 1, surf_lsm_h%ns
     737                i = surf_lsm_h%i(m)
     738                j = surf_lsm_h%j(m)
     739                ssws_av(j,i) = ssws_av(j,i) + surf_lsm_h%ssws(m)
     740             ENDDO
     741             DO  m = 1, surf_usm_h%ns
     742                i = surf_usm_h%i(m)
     743                j = surf_usm_h%j(m)
     744                ssws_av(j,i) = ssws_av(j,i) + surf_usm_h%ssws(m)
    701745             ENDDO
    702746
    703747          CASE ( 't*' )
    704              DO  i = nxlg, nxrg
    705                 DO  j = nysg, nyng
    706                    ts_av(j,i) = ts_av(j,i) + ts(j,i)
    707                 ENDDO
     748             DO  m = 1, surf_def_h(0)%ns
     749                i = surf_def_h(0)%i(m)
     750                j = surf_def_h(0)%j(m)
     751                ts_av(j,i) = ts_av(j,i) + surf_def_h(0)%ts(m)
     752             ENDDO
     753             DO  m = 1, surf_lsm_h%ns
     754                i = surf_lsm_h%i(m)
     755                j = surf_lsm_h%j(m)
     756                ts_av(j,i) = ts_av(j,i) + surf_lsm_h%ts(m)
     757             ENDDO
     758             DO  m = 1, surf_usm_h%ns
     759                i = surf_usm_h%i(m)
     760                j = surf_usm_h%j(m)
     761                ts_av(j,i) = ts_av(j,i) + surf_usm_h%ts(m)
    708762             ENDDO
    709763
     
    718772
    719773          CASE ( 'u*' )
    720              DO  i = nxlg, nxrg
    721                 DO  j = nysg, nyng
    722                    us_av(j,i) = us_av(j,i) + us(j,i)
    723                 ENDDO
     774             DO  m = 1, surf_def_h(0)%ns
     775                i = surf_def_h(0)%i(m)
     776                j = surf_def_h(0)%j(m)
     777                us_av(j,i) = us_av(j,i) + surf_def_h(0)%us(m)
     778             ENDDO
     779             DO  m = 1, surf_lsm_h%ns
     780                i = surf_lsm_h%i(m)
     781                j = surf_lsm_h%j(m)
     782                us_av(j,i) = us_av(j,i) + surf_lsm_h%us(m)
     783             ENDDO
     784             DO  m = 1, surf_usm_h%ns
     785                i = surf_usm_h%i(m)
     786                j = surf_usm_h%j(m)
     787                us_av(j,i) = us_av(j,i) + surf_usm_h%us(m)
    724788             ENDDO
    725789
     
    752816
    753817          CASE ( 'z0*' )
    754              DO  i = nxlg, nxrg
    755                 DO  j = nysg, nyng
    756                    z0_av(j,i) = z0_av(j,i) + z0(j,i)
    757                 ENDDO
     818             DO  m = 1, surf_def_h(0)%ns
     819                i = surf_def_h(0)%i(m)
     820                j = surf_def_h(0)%j(m)
     821                z0_av(j,i) = z0_av(j,i) + surf_def_h(0)%z0(m)
     822             ENDDO
     823             DO  m = 1, surf_lsm_h%ns
     824                i = surf_lsm_h%i(m)
     825                j = surf_lsm_h%j(m)
     826                z0_av(j,i) = z0_av(j,i) + surf_lsm_h%z0(m)
     827             ENDDO
     828             DO  m = 1, surf_usm_h%ns
     829                i = surf_usm_h%i(m)
     830                j = surf_usm_h%j(m)
     831                z0_av(j,i) = z0_av(j,i) + surf_usm_h%z0(m)
    758832             ENDDO
    759833
    760834          CASE ( 'z0h*' )
    761              DO  i = nxlg, nxrg
    762                 DO  j = nysg, nyng
    763                    z0h_av(j,i) = z0h_av(j,i) + z0h(j,i)
    764                 ENDDO
     835             DO  m = 1, surf_def_h(0)%ns
     836                i = surf_def_h(0)%i(m)
     837                j = surf_def_h(0)%j(m)
     838                z0h_av(j,i) = z0h_av(j,i) + surf_def_h(0)%z0h(m)
     839             ENDDO
     840             DO  m = 1, surf_lsm_h%ns
     841                i = surf_lsm_h%i(m)
     842                j = surf_lsm_h%j(m)
     843                z0h_av(j,i) = z0h_av(j,i) + surf_lsm_h%z0h(m)
     844             ENDDO
     845             DO  m = 1, surf_usm_h%ns
     846                i = surf_usm_h%i(m)
     847                j = surf_usm_h%j(m)
     848                z0h_av(j,i) = z0h_av(j,i) + surf_usm_h%z0h(m)
    765849             ENDDO
    766850
    767851          CASE ( 'z0q*' )
    768              DO  i = nxlg, nxrg
    769                 DO  j = nysg, nyng
    770                    z0q_av(j,i) = z0q_av(j,i) + z0q(j,i)
    771                 ENDDO
     852             DO  m = 1, surf_def_h(0)%ns
     853                i = surf_def_h(0)%i(m)
     854                j = surf_def_h(0)%j(m)
     855                z0q_av(j,i) = z0q_av(j,i) + surf_def_h(0)%z0q(m)
     856             ENDDO
     857             DO  m = 1, surf_lsm_h%ns
     858                i = surf_lsm_h%i(m)
     859                j = surf_lsm_h%j(m)
     860                z0q_av(j,i) = z0q_av(j,i) + surf_lsm_h%z0q(m)
     861             ENDDO
     862             DO  m = 1, surf_usm_h%ns
     863                i = surf_usm_h%i(m)
     864                j = surf_usm_h%j(m)
     865                z0q_av(j,i) = z0q_av(j,i) + surf_usm_h%z0q(m)
    772866             ENDDO
    773867!             
Note: See TracChangeset for help on using the changeset viewer.