Ignore:
Timestamp:
Aug 16, 2019 1:50:17 PM (23 months ago)
Author:
suehring
Message:

Replace get_topography_top_index functions by pre-calculated arrays in order to save computational resources

File:
1 edited

Legend:

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

    r4069 r4168  
    2525! -----------------
    2626! $Id$
     27! Remove dependency on surface_mod + example for terrain-following output
     28! adjusted
     29!
     30! 4069 2019-07-01 14:05:51Z Giersch
    2731! Masked output running index mid has been introduced as a local variable to
    2832! avoid runtime error (Loop variable has been modified) in time_integration
     
    7276    USE kinds
    7377   
    74     USE surface_mod,                                                           &
    75         ONLY:  get_topography_top_index_ji
    76    
    7778    USE user
    7879
     
    8081
    8182    CHARACTER (LEN=*) ::  variable  !<
    82     CHARACTER (LEN=5) ::  grid      !< flag to distinquish between staggered grids
    8383
    8484    INTEGER(iwp) ::  av             !<
     
    8787!    INTEGER(iwp) ::  j              !<
    8888!    INTEGER(iwp) ::  k              !<
    89 !    INTEGER(iwp) ::  topo_top_ind  !< k index of highest horizontal surface
     89!    INTEGER(iwp) ::  topo_top_index !< k index of highest horizontal surface
    9090
    9191    LOGICAL ::  found               !<
     
    102102
    103103    found = .TRUE.
    104     grid  = 's'
    105104
    106105    SELECT CASE ( TRIM( variable ) )
     
    131130!!
    132131!!--                   Get k index of highest horizontal surface
    133 !                      topo_top_ind = get_topography_top_index_ji( &
     132!                      topo_top_index = topo_top_ind( &
    134133!                                        mask_j(mid,j), &
    135134!                                        mask_i(mid,i), &
    136 !                                        grid )
     135!                                        1          )
    137136!!
    138137!!--                   Save output array
    139138!                      DO  k = 1, mask_size_l(mid,3)
    140 !                         local_pf(i,j,k) = u2(MIN( topo_top_ind+mask_k(mid,k),&
    141 !                                                   nzt+1 ),                   &
    142 !                                              mask_j(mid,j),                  &
     139!                         local_pf(i,j,k) = u2(MIN( topo_top_index+mask_k(mid,k),&
     140!                                                   nzt+1 ),                     &
     141!                                              mask_j(mid,j),                    &
    143142!                                              mask_i(mid,i)                   )
    144143!                      ENDDO
     
    166165!!
    167166!!--                   Get k index of highest horizontal surface
    168 !                      topo_top_ind = get_topography_top_index_ji( &
     167!                      topo_top_index = topo_top_ind(  &
    169168!                                        mask_j(mid,j), &
    170169!                                        mask_i(mid,i), &
    171 !                                        grid )
     170!                                        1 )
    172171!!
    173172!!--                   Save output array
    174173!                      DO  k = 1, mask_size_l(mid,3)
    175 !                         local_pf(i,j,k) = u2_av(                             &
    176 !                                              MIN( topo_top_ind+mask_k(mid,k),&
    177 !                                                   nzt+1 ),                   &
    178 !                                              mask_j(mid,j),                  &
     174!                         local_pf(i,j,k) = u2_av(                               &
     175!                                              MIN( topo_top_index+mask_k(mid,k),&
     176!                                                   nzt+1 ),                     &
     177!                                              mask_j(mid,j),                    &
    179178!                                              mask_i(mid,i)                   )
    180179!                      ENDDO
Note: See TracChangeset for help on using the changeset viewer.