Changeset 4878


Ignore:
Timestamp:
Feb 18, 2021 9:47:49 AM (3 years ago)
Author:
suehring
Message:

Rename resize_array into add_ghost_layers; remove number of passed indices; replace subroutine calls with interface name

Location:
palm/trunk/SOURCE
Files:
2 edited

Legend:

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

    r4877 r4878  
    2424! -----------------
    2525! $Id$
     26! Rename resize_array into add_ghost_layers and remove number of passed indices
     27!
     28! 4877 2021-02-17 16:17:35Z suehring
    2629! Bugfix in initialization of vertical surfaces with roughness and surface heat fluxes
    2730!
     
    198201
    199202    USE netcdf_data_input_mod,                                                                     &
    200         ONLY:  char_fill,                                                                          &
     203        ONLY:  add_ghost_layers,                                                                   &
     204               char_fill,                                                                          &
    201205               check_existence,                                                                    &
    202206               close_input_file,                                                                   &
     
    213217               pids_id,                                                                            &
    214218               real_2d,                                                                            &
    215                resize_array,                                                                       &
    216219               vars_pids
    217220
     
    15151518!--       Read variable
    15161519          CALL get_variable( pids_id, 'z0', tmp_2d%var, nxl, nxr, nys, nyn )
    1517           CALL resize_array( tmp_2d%var, nys, nyn, nxl, nxr )
     1520          CALL add_ghost_layers( tmp_2d%var )
    15181521          CALL exchange_horiz_2d( tmp_2d%var )
    15191522!
     
    15431546!--       Read variable
    15441547          CALL get_variable( pids_id, 'shf', tmp_2d%var, nxl, nxr, nys, nyn )
    1545           CALL resize_array( tmp_2d%var, nys, nyn, nxl, nxr )
     1548          CALL add_ghost_layers( tmp_2d%var )
    15461549          CALL exchange_horiz_2d( tmp_2d%var )
    15471550!
     
    15721575!--          Read variable
    15731576             CALL get_variable( pids_id, 'qsws', tmp_2d%var, nxl, nxr, nys, nyn )
    1574              CALL resize_array( tmp_2d%var, nys, nyn, nxl, nxr )
     1577             CALL add_ghost_layers( tmp_2d%var )
    15751578             CALL exchange_horiz_2d( tmp_2d%var )
    15761579!
     
    16031606!--          Read variable
    16041607             CALL get_variable( pids_id, 'ssws', tmp_2d%var, nxl, nxr, nys, nyn )
    1605              CALL resize_array( tmp_2d%var, nys, nyn, nxl, nxr )
     1608             CALL add_ghost_layers( tmp_2d%var )
    16061609             CALL exchange_horiz_2d( tmp_2d%var )
    16071610!
  • palm/trunk/SOURCE/netcdf_data_input_mod.f90

    r4877 r4878  
    2424! -----------------
    2525! $Id$
     26! Rename resize_array into add_ghost_layers; remove number of passed indices; replace subroutine
     27! calls with interface name
     28!
     29! 4877 2021-02-17 16:17:35Z suehring
    2630! Add interface for resize_array and add subroutine to resize 2d-real arrays
    2731!
     
    242246
    243247    USE indices,                                                                                   &
    244         ONLY:  nbgp
     248        ONLY:  nbgp,                                                                               &
     249               nxl,                                                                                &
     250               nxr,                                                                                &
     251               nys,                                                                                &
     252               nyn
    245253
    246254    USE kinds
     
    790798    END INTERFACE get_attribute
    791799
    792     INTERFACE resize_array
    793        MODULE PROCEDURE resize_array_2d_int8
    794        MODULE PROCEDURE resize_array_2d_int32
    795        MODULE PROCEDURE resize_array_2d_real
    796        MODULE PROCEDURE resize_array_3d_int8
    797        MODULE PROCEDURE resize_array_3d_real
    798        MODULE PROCEDURE resize_array_4d_real
    799     END INTERFACE resize_array
     800    INTERFACE add_ghost_layers
     801       MODULE PROCEDURE add_ghost_layers_2d_int8
     802       MODULE PROCEDURE add_ghost_layers_2d_int32
     803       MODULE PROCEDURE add_ghost_layers_2d_real
     804       MODULE PROCEDURE add_ghost_layers_3d_int8
     805       MODULE PROCEDURE add_ghost_layers_3d_real
     806       MODULE PROCEDURE add_ghost_layers_4d_real
     807    END INTERFACE add_ghost_layers
    800808
    801809!
     
    862870!
    863871!-- Public subroutines
    864     PUBLIC check_existence,                                                                        &
     872    PUBLIC add_ghost_layers,                                                                       &
     873           check_existence,                                                                        &
    865874           close_input_file,                                                                       &
    866875           get_attribute,                                                                          &
     
    879888           netcdf_data_input_surface_data,                                                         &
    880889           netcdf_data_input_topo,                                                                 &
    881            open_read_file,                                                                         &
    882            resize_array
     890           open_read_file
    883891
    884892
     
    19131921!-- Exchange ghost points for surface variables. Therefore, resize variables.
    19141922    IF ( albedo_type_f%from_file )  THEN
    1915        CALL resize_array_2d_int8( albedo_type_f%var, nys, nyn, nxl, nxr )
     1923       CALL add_ghost_layers( albedo_type_f%var )
    19161924       CALL exchange_horiz_2d_byte( albedo_type_f%var, nys, nyn, nxl, nxr, nbgp )
    19171925    ENDIF
    19181926    IF ( pavement_type_f%from_file )  THEN
    1919        CALL resize_array_2d_int8( pavement_type_f%var, nys, nyn, nxl, nxr )
     1927       CALL add_ghost_layers( pavement_type_f%var )
    19201928       CALL exchange_horiz_2d_byte( pavement_type_f%var, nys, nyn, nxl, nxr, nbgp )
    19211929    ENDIF
    19221930    IF ( soil_type_f%from_file  .AND.  ALLOCATED( soil_type_f%var_2d ) )  THEN
    1923        CALL resize_array_2d_int8( soil_type_f%var_2d, nys, nyn, nxl, nxr )
     1931       CALL add_ghost_layers( soil_type_f%var_2d )
    19241932       CALL exchange_horiz_2d_byte( soil_type_f%var_2d, nys, nyn, nxl, nxr, nbgp )
    19251933    ENDIF
    19261934    IF ( vegetation_type_f%from_file )  THEN
    1927        CALL resize_array_2d_int8( vegetation_type_f%var, nys, nyn, nxl, nxr )
     1935       CALL add_ghost_layers( vegetation_type_f%var )
    19281936       CALL exchange_horiz_2d_byte( vegetation_type_f%var, nys, nyn, nxl, nxr, nbgp )
    19291937    ENDIF
    19301938    IF ( water_type_f%from_file )  THEN
    1931        CALL resize_array_2d_int8( water_type_f%var, nys, nyn, nxl, nxr )
     1939       CALL add_ghost_layers( water_type_f%var )
    19321940       CALL exchange_horiz_2d_byte( water_type_f%var, nys, nyn, nxl, nxr, nbgp )
    19331941    ENDIF
     
    19381946!-- introduced just for 2 variables.
    19391947    IF ( soil_type_f%from_file  .AND.  ALLOCATED( soil_type_f%var_3d ) )  THEN
    1940        CALL resize_array_3d_int8( soil_type_f%var_3d, 0, nz_soil, nys, nyn, nxl, nxr )
     1948       CALL add_ghost_layers( soil_type_f%var_3d, 0, nz_soil )
    19411949       DO  k = 0, nz_soil
    19421950          CALL exchange_horiz_2d_byte( soil_type_f%var_3d(k,:,:), nys, nyn, nxl, nxr, nbgp )
     
    19451953
    19461954    IF ( surface_fraction_f%from_file )  THEN
    1947        CALL resize_array_3d_real( surface_fraction_f%frac, 0, surface_fraction_f%nf-1, nys, nyn,   &
    1948                                   nxl, nxr )
     1955       CALL add_ghost_layers( surface_fraction_f%frac, 0, surface_fraction_f%nf-1 )
    19491956       DO  k = 0, surface_fraction_f%nf-1
    19501957          CALL exchange_horiz_2d( surface_fraction_f%frac(k,:,:) )
     
    19531960
    19541961    IF ( building_pars_f%from_file )  THEN
    1955        CALL resize_array_3d_real( building_pars_f%pars_xy, 0, building_pars_f%np-1, nys, nyn, nxl, &
    1956                                   nxr )
     1962       CALL add_ghost_layers( building_pars_f%pars_xy, 0, building_pars_f%np-1 )
    19571963       DO  k = 0, building_pars_f%np-1
    19581964          CALL exchange_horiz_2d( building_pars_f%pars_xy(k,:,:) )
     
    19611967
    19621968    IF ( albedo_pars_f%from_file )  THEN
    1963        CALL resize_array_3d_real( albedo_pars_f%pars_xy, 0, albedo_pars_f%np-1, nys, nyn, nxl, nxr )
     1969       CALL add_ghost_layers( albedo_pars_f%pars_xy, 0, albedo_pars_f%np-1 )
    19641970       DO  k = 0, albedo_pars_f%np-1
    19651971          CALL exchange_horiz_2d( albedo_pars_f%pars_xy(k,:,:) )
     
    19681974
    19691975    IF ( pavement_pars_f%from_file )  THEN
    1970        CALL resize_array_3d_real( pavement_pars_f%pars_xy, 0, pavement_pars_f%np-1, nys, nyn, nxl, &
    1971                                   nxr )
     1976       CALL add_ghost_layers( pavement_pars_f%pars_xy, 0, pavement_pars_f%np-1 )
    19721977       DO  k = 0, pavement_pars_f%np-1
    19731978          CALL exchange_horiz_2d( pavement_pars_f%pars_xy(k,:,:) )
     
    19761981
    19771982    IF ( vegetation_pars_f%from_file )  THEN
    1978        CALL resize_array_3d_real( vegetation_pars_f%pars_xy, 0, vegetation_pars_f%np-1, nys, nyn,  &
    1979                                   nxl, nxr )
     1983       CALL add_ghost_layers( vegetation_pars_f%pars_xy, 0, vegetation_pars_f%np-1 )
    19801984       DO  k = 0, vegetation_pars_f%np-1
    19811985          CALL exchange_horiz_2d( vegetation_pars_f%pars_xy(k,:,:) )
     
    19841988
    19851989    IF ( water_pars_f%from_file )  THEN
    1986        CALL resize_array_3d_real( water_pars_f%pars_xy, 0, water_pars_f%np-1, nys, nyn, nxl, nxr )
     1990       CALL add_ghost_layers( water_pars_f%pars_xy, 0, water_pars_f%np-1 )
    19871991       DO  k = 0, water_pars_f%np-1
    19881992          CALL exchange_horiz_2d( water_pars_f%pars_xy(k,:,:) )
     
    19911995
    19921996    IF ( root_area_density_lsm_f%from_file )  THEN
    1993        CALL resize_array_3d_real( root_area_density_lsm_f%var, 0, root_area_density_lsm_f%nz-1,    &
    1994                                   nys, nyn, nxl, nxr )
     1997       CALL add_ghost_layers( root_area_density_lsm_f%var, 0, root_area_density_lsm_f%nz-1 )
    19951998       DO  k = 0, root_area_density_lsm_f%nz-1
    19961999          CALL exchange_horiz_2d( root_area_density_lsm_f%var(k,:,:) )
     
    20002003    IF ( soil_pars_f%from_file )  THEN
    20012004       IF ( soil_pars_f%lod == 1 )  THEN
    2002           CALL resize_array_3d_real( soil_pars_f%pars_xy, 0, soil_pars_f%np-1, nys, nyn, nxl, nxr )
     2005          CALL add_ghost_layers( soil_pars_f%pars_xy, 0, soil_pars_f%np-1 )
    20032006          DO  k = 0, soil_pars_f%np-1
    20042007             CALL exchange_horiz_2d( soil_pars_f%pars_xy(k,:,:) )
     
    20062009
    20072010       ELSEIF ( soil_pars_f%lod == 2 )  THEN
    2008           CALL resize_array_4d_real( soil_pars_f%pars_xyz, 0, soil_pars_f%np-1,                    &
    2009                                      0, soil_pars_f%nz-1, nys, nyn, nxl, nxr )
     2011          CALL add_ghost_layers( soil_pars_f%pars_xyz, 0, soil_pars_f%np-1, 0, soil_pars_f%nz-1 )
    20102012
    20112013          DO  k2 = 0, soil_pars_f%nz-1
     
    20182020
    20192021    IF ( pavement_subsurface_pars_f%from_file )  THEN
    2020        CALL resize_array_4d_real( pavement_subsurface_pars_f%pars_xyz,                             &
    2021                                   0, pavement_subsurface_pars_f%np-1,                              &
    2022                                   0, pavement_subsurface_pars_f%nz-1, nys, nyn, nxl, nxr )
     2022       CALL add_ghost_layers( pavement_subsurface_pars_f%pars_xyz,                                 &
     2023                              0, pavement_subsurface_pars_f%np-1,                                  &
     2024                              0, pavement_subsurface_pars_f%nz-1 )
    20232025
    20242026       DO  k2 = 0, pavement_subsurface_pars_f%nz-1
     
    24072409!-- In case of non-cyclic boundary conditions set Neumann conditions at the lateral boundaries.
    24082410    IF ( building_id_f%from_file )  THEN
    2409        CALL resize_array_2d_int32( building_id_f%var, nys, nyn, nxl, nxr )
     2411       CALL add_ghost_layers( building_id_f%var )
    24102412       CALL exchange_horiz_2d_int( building_id_f%var, nys, nyn, nxl, nxr, nbgp )
    24112413    ENDIF
    24122414
    24132415    IF ( building_type_f%from_file )  THEN
    2414        CALL resize_array_2d_int8( building_type_f%var, nys, nyn, nxl, nxr )
     2416       CALL add_ghost_layers( building_type_f%var )
    24152417       CALL exchange_horiz_2d_byte( building_type_f%var, nys, nyn, nxl, nxr, nbgp )
    24162418    ENDIF
     
    33813383!> Resize 8-bit 2D Integer array: (nys:nyn,nxl:nxr) -> (nysg:nyng,nxlg:nxrg)
    33823384!--------------------------------------------------------------------------------------------------!
    3383  SUBROUTINE resize_array_2d_int8( var, js, je, is, ie )
     3385 SUBROUTINE add_ghost_layers_2d_int8( var )
    33843386
    33853387    IMPLICIT NONE
    3386 
    3387     INTEGER(iwp) ::  ie  !< upper index bound along x direction
    3388     INTEGER(iwp) ::  is  !< lower index bound along x direction
    3389     INTEGER(iwp) ::  je  !< upper index bound along y direction
    3390     INTEGER(iwp) ::  js  !< lower index bound along y direction
    33913388
    33923389    INTEGER(KIND=1), DIMENSION(:,:), ALLOCATABLE ::  var     !< treated variable
     
    33943391!
    33953392!-- Allocate temporary variable
    3396     ALLOCATE( var_tmp(js-nbgp:je+nbgp,is-nbgp:ie+nbgp) )
     3393    ALLOCATE( var_tmp(nys-nbgp:nyn+nbgp,nxl-nbgp:nxr+nbgp) )
    33973394!
    33983395!-- Temporary copy of the variable
    3399     var_tmp(js:je,is:ie) = var(js:je,is:ie)
     3396    var_tmp(nys:nyn,nxl:nxr) = var(nys:nyn,nxl:nxr)
    34003397!
    34013398!-- Resize the array
    34023399    DEALLOCATE( var )
    3403     ALLOCATE( var(js-nbgp:je+nbgp,is-nbgp:ie+nbgp) )
     3400    ALLOCATE( var(nys-nbgp:nyn+nbgp,nxl-nbgp:nxr+nbgp) )
    34043401!
    34053402!-- Transfer temporary copy back to original array
    3406     var(js:je,is:ie) = var_tmp(js:je,is:ie)
    3407 
    3408  END SUBROUTINE resize_array_2d_int8
     3403    var(nys:nyn,nxl:nxr) = var_tmp(nys:nyn,nxl:nxr)
     3404
     3405 END SUBROUTINE add_ghost_layers_2d_int8
    34093406
    34103407
     
    34143411!> Resize 32-bit 2D Integer array: (nys:nyn,nxl:nxr) -> (nysg:nyng,nxlg:nxrg)
    34153412!--------------------------------------------------------------------------------------------------!
    3416  SUBROUTINE resize_array_2d_int32( var, js, je, is, ie )
     3413 SUBROUTINE add_ghost_layers_2d_int32( var )
    34173414
    34183415    IMPLICIT NONE
    3419 
    3420     INTEGER(iwp) ::  ie  !< upper index bound along x direction
    3421     INTEGER(iwp) ::  is  !< lower index bound along x direction
    3422     INTEGER(iwp) ::  je  !< upper index bound along y direction
    3423     INTEGER(iwp) ::  js  !< lower index bound along y direction
    34243416
    34253417    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  var     !< treated variable
     
    34273419!
    34283420!-- Allocate temporary variable
    3429     ALLOCATE( var_tmp(js-nbgp:je+nbgp,is-nbgp:ie+nbgp) )
     3421    ALLOCATE( var_tmp(nys-nbgp:nyn+nbgp,nxl-nbgp:nxr+nbgp) )
    34303422!
    34313423!-- Temporary copy of the variable
    3432     var_tmp(js:je,is:ie) = var(js:je,is:ie)
     3424    var_tmp(nys:nyn,nxl:nxr) = var(nys:nyn,nxl:nxr)
    34333425!
    34343426!-- Resize the array
    34353427    DEALLOCATE( var )
    3436     ALLOCATE( var(js-nbgp:je+nbgp,is-nbgp:ie+nbgp) )
     3428    ALLOCATE( var(nys-nbgp:nyn+nbgp,nxl-nbgp:nxr+nbgp) )
    34373429!
    34383430!-- Transfer temporary copy back to original array
    3439     var(js:je,is:ie) = var_tmp(js:je,is:ie)
    3440 
    3441  END SUBROUTINE resize_array_2d_int32
     3431    var(nys:nyn,nxl:nxr) = var_tmp(nys:nyn,nxl:nxr)
     3432
     3433 END SUBROUTINE add_ghost_layers_2d_int32
    34423434
    34433435!--------------------------------------------------------------------------------------------------!
     
    34463438!> Resize 2D float array: (nys:nyn,nxl:nxr) -> (nysg:nyng,nxlg:nxrg)
    34473439!--------------------------------------------------------------------------------------------------!
    3448  SUBROUTINE resize_array_2d_real( var, js, je, is, ie )
     3440 SUBROUTINE add_ghost_layers_2d_real( var )
    34493441
    34503442    IMPLICIT NONE
    3451 
    3452     INTEGER(iwp) ::  ie  !< upper index bound along x direction
    3453     INTEGER(iwp) ::  is  !< lower index bound along x direction
    3454     INTEGER(iwp) ::  je  !< upper index bound along y direction
    3455     INTEGER(iwp) ::  js  !< lower index bound along y direction
    34563443
    34573444    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  var     !< treated variable
     
    34593446!
    34603447!-- Allocate temporary variable
    3461     ALLOCATE( var_tmp(js-nbgp:je+nbgp,is-nbgp:ie+nbgp) )
     3448    ALLOCATE( var_tmp(nys-nbgp:nyn+nbgp,nxl-nbgp:nxr+nbgp) )
    34623449!
    34633450!-- Temporary copy of the variable
    3464     var_tmp(js:je,is:ie) = var(js:je,is:ie)
     3451    var_tmp(nys:nyn,nxl:nxr) = var(nys:nyn,nxl:nxr)
    34653452!
    34663453!-- Resize the array
    34673454    DEALLOCATE( var )
    3468     ALLOCATE( var(js-nbgp:je+nbgp,is-nbgp:ie+nbgp) )
     3455    ALLOCATE( var(nys-nbgp:nyn+nbgp,nxl-nbgp:nxr+nbgp) )
    34693456!
    34703457!-- Transfer temporary copy back to original array
    3471     var(js:je,is:ie) = var_tmp(js:je,is:ie)
    3472 
    3473  END SUBROUTINE resize_array_2d_real
     3458    var(nys:nyn,nxl:nxr) = var_tmp(nys:nyn,nxl:nxr)
     3459
     3460 END SUBROUTINE add_ghost_layers_2d_real
    34743461
    34753462
     
    34793466!> Resize 8-bit 3D Integer array: (:,nys:nyn,nxl:nxr) -> (:,nysg:nyng,nxlg:nxrg)
    34803467!--------------------------------------------------------------------------------------------------!
    3481  SUBROUTINE resize_array_3d_int8( var, ks, ke, js, je, is, ie )
     3468 SUBROUTINE add_ghost_layers_3d_int8( var, ks, ke )
    34823469
    34833470    IMPLICIT NONE
    34843471
    3485     INTEGER(iwp) ::  ie  !< upper index bound along x direction
    3486     INTEGER(iwp) ::  is  !< lower index bound along x direction
    3487     INTEGER(iwp) ::  je  !< upper index bound along y direction
    3488     INTEGER(iwp) ::  js  !< lower index bound along y direction
    34893472    INTEGER(iwp) ::  ke  !< upper bound of treated array in z-direction
    34903473    INTEGER(iwp) ::  ks  !< lower bound of treated array in z-direction
     
    34943477!
    34953478!-- Allocate temporary variable
    3496     ALLOCATE( var_tmp(ks:ke,js-nbgp:je+nbgp,is-nbgp:ie+nbgp) )
     3479    ALLOCATE( var_tmp(ks:ke,nys-nbgp:nyn+nbgp,nxl-nbgp:nxr+nbgp) )
    34973480!
    34983481!-- Temporary copy of the variable
    3499     var_tmp(ks:ke,js:je,is:ie) = var(ks:ke,js:je,is:ie)
     3482    var_tmp(ks:ke,nys:nyn,nxl:nxr) = var(ks:ke,nys:nyn,nxl:nxr)
    35003483!
    35013484!-- Resize the array
    35023485    DEALLOCATE( var )
    3503     ALLOCATE( var(ks:ke,js-nbgp:je+nbgp,is-nbgp:ie+nbgp) )
     3486    ALLOCATE( var(ks:ke,nys-nbgp:nyn+nbgp,nxl-nbgp:nxr+nbgp) )
    35043487!
    35053488!-- Transfer temporary copy back to original array
    3506     var(ks:ke,js:je,is:ie) = var_tmp(ks:ke,js:je,is:ie)
    3507 
    3508  END SUBROUTINE resize_array_3d_int8
     3489    var(ks:ke,nys:nyn,nxl:nxr) = var_tmp(ks:ke,nys:nyn,nxl:nxr)
     3490
     3491 END SUBROUTINE add_ghost_layers_3d_int8
    35093492
    35103493
     
    35143497!> Resize 3D Real array: (:,nys:nyn,nxl:nxr) -> (:,nysg:nyng,nxlg:nxrg)
    35153498!--------------------------------------------------------------------------------------------------!
    3516  SUBROUTINE resize_array_3d_real( var, ks, ke, js, je, is, ie )
     3499 SUBROUTINE add_ghost_layers_3d_real( var, ks, ke )
    35173500
    35183501    IMPLICIT NONE
    35193502
    3520     INTEGER(iwp) ::  ie  !< upper index bound along x direction
    3521     INTEGER(iwp) ::  is  !< lower index bound along x direction
    3522     INTEGER(iwp) ::  je  !< upper index bound along y direction
    3523     INTEGER(iwp) ::  js  !< lower index bound along y direction
    35243503    INTEGER(iwp) ::  ke  !< upper bound of treated array in z-direction
    35253504    INTEGER(iwp) ::  ks  !< lower bound of treated array in z-direction
     
    35293508!
    35303509!-- Allocate temporary variable
    3531     ALLOCATE( var_tmp(ks:ke,js-nbgp:je+nbgp,is-nbgp:ie+nbgp) )
     3510    ALLOCATE( var_tmp(ks:ke,nys-nbgp:nyn+nbgp,nxl-nbgp:nxr+nbgp) )
    35323511!
    35333512!-- Temporary copy of the variable
    3534     var_tmp(ks:ke,js:je,is:ie) = var(ks:ke,js:je,is:ie)
     3513    var_tmp(ks:ke,nys:nyn,nxl:nxr) = var(ks:ke,nys:nyn,nxl:nxr)
    35353514!
    35363515!-- Resize the array
    35373516    DEALLOCATE( var )
    3538     ALLOCATE( var(ks:ke,js-nbgp:je+nbgp,is-nbgp:ie+nbgp) )
     3517    ALLOCATE( var(ks:ke,nys-nbgp:nyn+nbgp,nxl-nbgp:nxr+nbgp) )
    35393518!
    35403519!-- Transfer temporary copy back to original array
    3541     var(ks:ke,js:je,is:ie) = var_tmp(ks:ke,js:je,is:ie)
    3542 
    3543  END SUBROUTINE resize_array_3d_real
     3520    var(ks:ke,nys:nyn,nxl:nxr) = var_tmp(ks:ke,nys:nyn,nxl:nxr)
     3521
     3522 END SUBROUTINE add_ghost_layers_3d_real
    35443523
    35453524
     
    35493528!> Resize 4D Real array: (:,:,nys:nyn,nxl:nxr) -> (:,nysg:nyng,nxlg:nxrg)
    35503529!--------------------------------------------------------------------------------------------------!
    3551  SUBROUTINE resize_array_4d_real( var, k1s, k1e, k2s, k2e, js, je, is, ie )
     3530 SUBROUTINE add_ghost_layers_4d_real( var, k1s, k1e, k2s, k2e )
    35523531
    35533532    IMPLICIT NONE
    35543533
    3555     INTEGER(iwp) ::  ie   !< upper index bound along x direction
    3556     INTEGER(iwp) ::  is   !< lower index bound along x direction
    3557     INTEGER(iwp) ::  je   !< upper index bound along y direction
    3558     INTEGER(iwp) ::  js   !< lower index bound along y direction
    35593534    INTEGER(iwp) ::  k1e  !< upper bound of treated array in z-direction
    35603535    INTEGER(iwp) ::  k1s  !< lower bound of treated array in z-direction
     
    35663541!
    35673542!-- Allocate temporary variable
    3568     ALLOCATE( var_tmp(k1s:k1e,k2s:k2e,js-nbgp:je+nbgp,is-nbgp:ie+nbgp) )
     3543    ALLOCATE( var_tmp(k1s:k1e,k2s:k2e,nys-nbgp:nyn+nbgp,nxl-nbgp:nxr+nbgp) )
    35693544!
    35703545!-- Temporary copy of the variable
    3571     var_tmp(k1s:k1e,k2s:k2e,js:je,is:ie) = var(k1s:k1e,k2s:k2e,js:je,is:ie)
     3546    var_tmp(k1s:k1e,k2s:k2e,nys:nyn,nxl:nxr) = var(k1s:k1e,k2s:k2e,nys:nyn,nxl:nxr)
    35723547!
    35733548!-- Resize the array
    35743549    DEALLOCATE( var )
    3575     ALLOCATE( var(k1s:k1e,k2s:k2e,js-nbgp:je+nbgp,is-nbgp:ie+nbgp) )
     3550    ALLOCATE( var(k1s:k1e,k2s:k2e,nys-nbgp:nyn+nbgp,nxl-nbgp:nxr+nbgp) )
    35763551!
    35773552!-- Transfer temporary copy back to original array
    3578     var(k1s:k1e,k2s:k2e,js:je,is:ie) = var_tmp(k1s:k1e,k2s:k2e,js:je,is:ie)
    3579 
    3580  END SUBROUTINE resize_array_4d_real
     3553    var(k1s:k1e,k2s:k2e,nys:nyn,nxl:nxr) = var_tmp(k1s:k1e,k2s:k2e,nys:nyn,nxl:nxr)
     3554
     3555 END SUBROUTINE add_ghost_layers_4d_real
    35813556
    35823557
Note: See TracChangeset for help on using the changeset viewer.