Index: palm/trunk/SOURCE/cpulog_mod.f90
===================================================================
--- palm/trunk/SOURCE/cpulog_mod.f90	(revision 4664)
+++ palm/trunk/SOURCE/cpulog_mod.f90	(revision 4665)
@@ -19,9 +19,12 @@
 ! Current revisions:
 ! -----------------
-! 
-! 
+!
+!
 ! Former revisions:
 ! -----------------
 ! $Id$
+! Format descriptor 102 slightly modified.
+! 
+! 4577 2020-06-25 09:53:58Z raasch
 ! further re-formatting concerning Fortran parameter variables
 !
@@ -550,5 +553,5 @@
                &'---------------------')
 
-   102 FORMAT (A25,2X,F9.3,2X,F7.2,1X,I7,2(1X,F9.3),1X,F6.2)
+   102 FORMAT (A25,2X,F10.3,2X,F7.2,1X,I7,2(1X,F10.3),1X,F6.2)
    103 FORMAT (/'Barriers are set in front of collective operations')
    104 FORMAT (/'No barriers are set in front of collective operations')
Index: palm/trunk/SOURCE/pmc_interface_mod.f90
===================================================================
--- palm/trunk/SOURCE/pmc_interface_mod.f90	(revision 4664)
+++ palm/trunk/SOURCE/pmc_interface_mod.f90	(revision 4665)
@@ -25,4 +25,8 @@
 ! -----------------
 ! $Id$
+! Interpolation and anterpolation subroutines renamed and all missing subroutine description
+! comments added. 
+!
+! 4649 2020-08-25 12:11:17Z raasch
 ! File re-formatted to follow the PALM coding standard
 !
@@ -677,5 +681,6 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Find out if this is a nested run and if so, read and broadcast the nesting parameters and set
+!> the communicators accordingly.
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_init( world_comm )
@@ -764,5 +769,5 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Define the nesting setup.
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_modelconfiguration
@@ -810,5 +815,5 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Prepare the coupling environment for the current parent domain.
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_setup_parent
@@ -1134,5 +1139,5 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Create the index list
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_create_index_list
@@ -1241,5 +1246,5 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Store the child-edge coordinates.
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_set_child_edge_coords
@@ -1278,5 +1283,5 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Prepare the coupling environment for the current child domain.
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_setup_child
@@ -1510,10 +1515,8 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Determine index bounds of interpolation/anterpolation area in the parent-grid index space.
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_map_child_grid_to_parent_grid
 
-!
-!-- Determine index bounds of interpolation/anterpolation area in the parent-grid index space
     IMPLICIT NONE
 
@@ -1710,9 +1713,7 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Precomputation of the mapping between the child- and parent-grid indices.
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_define_index_mapping
-!
-!-- Precomputation of the mapping of the child- and parent-grid indices.
 
     IMPLICIT NONE
@@ -2028,11 +2029,10 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Check if the child domain is too small in terms of number of parent-grid cells covered so that
+!> anterpolation buffers fill the whole domain so that anterpolation not possible. Also, check that
+!> anterpolation_buffer_width is not too large to prevent anterpolation.
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_check_child_domain_size
-!
-!-- Check if the child domain is too small in terms of number of parent-grid cells covered so that
-!-- anterpolation buffers fill the whole domain so that anterpolation not possible. Also, check that
-!-- anterpolation_buffer_width is not too large to prevent anterpolation.
+
     IMPLICIT NONE
 
@@ -2113,9 +2113,8 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Allocate parent-grid work-arrays for interpolation.
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_allocate_workarrays
-!
-!-- Allocate parent-grid work-arrays for interpolation
+ 
     IMPLICIT NONE
 
@@ -2161,9 +2160,10 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Define and create specific MPI-datatypes for the interpolation work-array exchange. 
+!> Exhcanges are needed to make these arrays contiguous over the horizontal direction on the
+!> plane of the boundary. 
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_create_workarray_exchange_datatypes
-!
-!-- Define specific MPI types for workarr-exchange.
+
     IMPLICIT NONE
 
@@ -2194,11 +2194,9 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Check that the grid lines of child and parent do match. Also check that the child subdomain
+!> width is not smaller than the parent grid spacing in the respective direction.
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_check_grid_matching
-!
-!-- Check that the grid lines of child and parent do match.
-!-- Also check that the child subdomain width is not smaller than the parent grid spacing in the
-!-- respective direction.
+
     IMPLICIT NONE
 
@@ -2327,5 +2325,5 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Compute the areas of the domain boundary faces: left, right, south, north and top.
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_compute_face_areas
@@ -2452,5 +2450,6 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Translate the coordinates of the current domain into the root coordinate system and store them 
+!> (z remains the same).  
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_setup_coordinates
@@ -2536,5 +2535,5 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Assigns the pointer to the array to be coupled. 
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_set_array_pointer( name, child_id, nz_child, n )
@@ -2672,5 +2671,5 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Provides the child grid edge coordinates for pmc_particle_interface.
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE get_child_edges( m, lx_coord, lx_coord_b, rx_coord, rx_coord_b, sy_coord, sy_coord_b,  &
@@ -2711,5 +2710,5 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Provides the child grid spacings for pmc_particle_interface.
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE  get_child_gridspacing( m, dx, dy,dz )
@@ -2740,5 +2739,5 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Allocate child's parent-grid arrays for data transfer between parent and child.
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_create_childs_parent_grid_arrays( name, is, ie, js, je, nzc, n  )
@@ -2862,11 +2861,9 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Send data for the children in order to let them create initial conditions by interpolating the
+!> parent-domain fields.
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_parent_initialize
-
-!
-!-- Send data for the children in order to let them create initial conditions by interpolating the
-!-- parent-domain fields.
+ 
 #if defined( __parallel )
     IMPLICIT NONE
@@ -2890,10 +2887,8 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Create initial conditions for the current child domain by interpolating the parent-domain fields.
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_child_initialize
 
-!
-!-- Create initial conditions for the current child domain by interpolating the parent-domain fields.
 #if defined( __parallel )
     IMPLICIT NONE
@@ -2917,34 +2912,34 @@
 !
 !--    The interpolation.
-       CALL pmci_interp_1sto_all ( u, uc, kcto, iflu, ifuu, jflo, jfuo, kflo, kfuo, 'u' )
-       CALL pmci_interp_1sto_all ( v, vc, kcto, iflo, ifuo, jflv, jfuv, kflo, kfuo, 'v' )
-       CALL pmci_interp_1sto_all ( w, wc, kctw, iflo, ifuo, jflo, jfuo, kflw, kfuw, 'w' )
+       CALL pmci_interp_all ( u, uc, kcto, iflu, ifuu, jflo, jfuo, kflo, kfuo, 'u' )
+       CALL pmci_interp_all ( v, vc, kcto, iflo, ifuo, jflv, jfuv, kflo, kfuo, 'v' )
+       CALL pmci_interp_all ( w, wc, kctw, iflo, ifuo, jflo, jfuo, kflw, kfuw, 'w' )
 
        IF ( (       rans_mode_parent  .AND.         rans_mode )  .OR.                              &
             ( .NOT. rans_mode_parent  .AND.  .NOT.  rans_mode  .AND.                               &
               .NOT. constant_diffusion ) )  THEN
-          CALL pmci_interp_1sto_all ( e, ec, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 'e' )
+          CALL pmci_interp_all ( e, ec, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 'e' )
        ENDIF
 
        IF ( rans_mode_parent  .AND.  rans_mode  .AND.  rans_tke_e )  THEN
-          CALL pmci_interp_1sto_all ( diss, dissc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 's' )
+          CALL pmci_interp_all ( diss, dissc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 's' )
        ENDIF
 
        IF ( .NOT. neutral )  THEN
-          CALL pmci_interp_1sto_all ( pt, ptc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 's' )
+          CALL pmci_interp_all ( pt, ptc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 's' )
        ENDIF
 
        IF ( humidity )  THEN
 
-          CALL pmci_interp_1sto_all ( q, q_c, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 's' )
+          CALL pmci_interp_all ( q, q_c, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 's' )
 
           IF ( bulk_cloud_model  .AND.  microphysics_morrison )  THEN
-             CALL pmci_interp_1sto_all ( qc, qcc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 's' )
-             CALL pmci_interp_1sto_all ( nc, ncc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 's' )
+             CALL pmci_interp_all ( qc, qcc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 's' )
+             CALL pmci_interp_all ( nc, ncc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 's' )
           ENDIF
 
           IF ( bulk_cloud_model  .AND.  microphysics_seifert )  THEN
-             CALL pmci_interp_1sto_all ( qr, qrc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 's' )
-             CALL pmci_interp_1sto_all ( nr, nrc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 's' )
+             CALL pmci_interp_all ( qr, qrc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 's' )
+             CALL pmci_interp_all ( nr, nrc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 's' )
           ENDIF
 
@@ -2952,10 +2947,10 @@
 
        IF ( passive_scalar )  THEN
-          CALL pmci_interp_1sto_all ( s, sc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 's' )
+          CALL pmci_interp_all ( s, sc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 's' )
        ENDIF
 
        IF ( air_chemistry  .AND.  nesting_chem )  THEN
           DO  n = 1, nspec
-             CALL pmci_interp_1sto_all ( chem_species(n)%conc, chem_spec_c(:,:,:,n),               &
+             CALL pmci_interp_all ( chem_species(n)%conc, chem_spec_c(:,:,:,n),               &
                                          kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 's' )
           ENDDO
@@ -2964,14 +2959,14 @@
        IF ( salsa  .AND.  nesting_salsa )  THEN
           DO  lb = 1, nbins_aerosol
-             CALL pmci_interp_1sto_all ( aerosol_number(lb)%conc, aerosol_number_c(:,:,:,lb),      &
+             CALL pmci_interp_all ( aerosol_number(lb)%conc, aerosol_number_c(:,:,:,lb),      &
                                          kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 's' )
           ENDDO
           DO  lc = 1, nbins_aerosol * ncomponents_mass
-             CALL pmci_interp_1sto_all ( aerosol_mass(lc)%conc, aerosol_mass_c(:,:,:,lc),          &
+             CALL pmci_interp_all ( aerosol_mass(lc)%conc, aerosol_mass_c(:,:,:,lc),          &
                                          kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 's' )
           ENDDO
           IF ( .NOT. salsa_gases_from_chem )  THEN
              DO  lg = 1, ngases_salsa
-                CALL pmci_interp_1sto_all ( salsa_gas(lg)%conc, salsa_gas_c(:,:,:,lg),             &
+                CALL pmci_interp_all ( salsa_gas(lg)%conc, salsa_gas_c(:,:,:,lg),             &
                                             kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 's' )
              ENDDO
@@ -3010,10 +3005,8 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
-!--------------------------------------------------------------------------------------------------!
- SUBROUTINE pmci_interp_1sto_all( child_array, parent_array, kct, ifl, ifu, jfl, jfu, kfl, kfu,    &
-                                  var )
-!
-!-- Interpolation of the internal values for the child-domain initialization
+!> Interpolation of the internal values for the child-domain initialization.
+!--------------------------------------------------------------------------------------------------!
+ SUBROUTINE pmci_interp_all( child_array, parent_array, kct, ifl, ifu, jfl, jfu, kfl, kfu, var )
+
     IMPLICIT NONE
 
@@ -3261,5 +3254,5 @@
     ENDIF
 
- END SUBROUTINE pmci_interp_1sto_all
+ END SUBROUTINE pmci_interp_all
 
 #endif
@@ -3270,11 +3263,9 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Check for mismatches between settings of root and child variables (e.g., all children have to
+!> follow the end_time settings of the root model). The root model overwrites variables in the
+!> other models, so these variables only need to be set once in file PARIN.
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_check_setting_mismatches
-!
-!-- Check for mismatches between settings of root and child variables (e.g., all children have to
-!-- follow the end_time settings of the root model). The root model overwrites variables in the
-!-- other models, so these variables only need to be set once in file PARIN.
 
 #if defined( __parallel )
@@ -3358,12 +3349,10 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Unify the time steps for each model and synchronize using MPI_ALLREDUCE with the MPI_MIN
+!> operator over all processes using the global communicator MPI_COMM_WORLD.
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_synchronize
 
 #if defined( __parallel )
-!
-!-- Unify the time steps for each model and synchronize using MPI_ALLREDUCE with the MPI_MIN
-!-- operator over all processes using the global communicator MPI_COMM_WORLD.
 
    IMPLICIT NONE
@@ -3390,10 +3379,7 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> After each Runge-Kutta sub-timestep, alternately set buffer one or buffer two active
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_set_swaplevel( swaplevel )
-
-!
-!-- After each Runge-Kutta sub-timestep, alternately set buffer one or buffer two active
 
     IMPLICIT NONE
@@ -3416,14 +3402,12 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> This subroutine controls the nesting according to the nestpar parameter nesting_mode (two-way
+!> (default) or one-way) and the order of anterpolations according to the nestpar parameter
+!> nesting_datatransfer_mode (cascade, overlap or mixed (default)). Although nesting_mode is a
+!> variable of this module, pass it as an argument to allow for example to force one-way
+!> initialization phase. Note that interpolation ( parent_to_child ) must always be carried out
+!> before anterpolation ( child_to_parent ).
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_datatrans( local_nesting_mode )
-!
-!-- This subroutine controls the nesting according to the nestpar parameter nesting_mode (two-way
-!-- (default) or one-way) and the order of anterpolations according to the nestpar parameter
-!-- nesting_datatransfer_mode (cascade, overlap or mixed (default)). Although nesting_mode is a
-!-- variable of this model, pass it as an argument to allow for example to force one-way
-!-- initialization phase. Note that interpolation ( parent_to_child ) must always be carried out
-!-- before anterpolation ( child_to_parent ).
 
     IMPLICIT NONE
@@ -3480,5 +3464,5 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Wrapper routine including the parent-side calls to all the data-transfer routines. 
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_parent_datatrans( direction )
@@ -3543,5 +3527,5 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Wrapper routine including the child-side calls to all the data-transfer and processing routines. 
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_child_datatrans( direction )
@@ -3589,10 +3573,7 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> A wrapper routine for all interpolation actions.
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_interpolation
-
-!
-!-- A wrapper routine for all interpolation actions
 
     IMPLICIT NONE
@@ -3612,12 +3593,12 @@
        IF ( bc_dirichlet_l )  THEN
 
-          CALL pmci_interp_1sto_lr( u, uc, kcto, jflo, jfuo, kflo, kfuo, 'l', 'u' )
-          CALL pmci_interp_1sto_lr( v, vc, kcto, jflv, jfuv, kflo, kfuo, 'l', 'v' )
-          CALL pmci_interp_1sto_lr( w, wc, kctw, jflo, jfuo, kflw, kfuw, 'l', 'w' )
+          CALL pmci_interp_lr( u, uc, kcto, jflo, jfuo, kflo, kfuo, 'l', 'u' )
+          CALL pmci_interp_lr( v, vc, kcto, jflv, jfuv, kflo, kfuo, 'l', 'v' )
+          CALL pmci_interp_lr( w, wc, kctw, jflo, jfuo, kflw, kfuw, 'l', 'w' )
 
           IF ( (        rans_mode_parent  .AND.         rans_mode )  .OR.                          &
                ( .NOT.  rans_mode_parent  .AND.  .NOT.  rans_mode  .AND.                           &
                  .NOT.  constant_diffusion ) )  THEN
-!             CALL pmci_interp_1sto_lr( e, ec, kcto, jflo, jfuo, kflo, kfuo, 'l', 'e' )
+!             CALL pmci_interp_lr( e, ec, kcto, jflo, jfuo, kflo, kfuo, 'l', 'e' )
 !
 !--          Interpolation of e is replaced by the Neumann condition.
@@ -3629,23 +3610,23 @@
 
           IF ( rans_mode_parent  .AND.  rans_mode  .AND.  rans_tke_e )  THEN
-             CALL pmci_interp_1sto_lr( diss, dissc, kcto, jflo, jfuo, kflo, kfuo, 'l', 's' )
+             CALL pmci_interp_lr( diss, dissc, kcto, jflo, jfuo, kflo, kfuo, 'l', 's' )
           ENDIF
 
           IF ( .NOT. neutral )  THEN
-             CALL pmci_interp_1sto_lr( pt, ptc, kcto, jflo, jfuo, kflo, kfuo, 'l', 's' )
+             CALL pmci_interp_lr( pt, ptc, kcto, jflo, jfuo, kflo, kfuo, 'l', 's' )
           ENDIF
 
           IF ( humidity )  THEN
 
-             CALL pmci_interp_1sto_lr( q, q_c, kcto, jflo, jfuo, kflo, kfuo, 'l', 's' )
+             CALL pmci_interp_lr( q, q_c, kcto, jflo, jfuo, kflo, kfuo, 'l', 's' )
 
              IF ( bulk_cloud_model  .AND.  microphysics_morrison )  THEN
-                CALL pmci_interp_1sto_lr( qc, qcc, kcto, jflo, jfuo, kflo, kfuo, 'l', 's' )
-                CALL pmci_interp_1sto_lr( nc, ncc, kcto, jflo, jfuo, kflo, kfuo, 'l', 's' )
+                CALL pmci_interp_lr( qc, qcc, kcto, jflo, jfuo, kflo, kfuo, 'l', 's' )
+                CALL pmci_interp_lr( nc, ncc, kcto, jflo, jfuo, kflo, kfuo, 'l', 's' )
              ENDIF
 
              IF ( bulk_cloud_model  .AND.  microphysics_seifert )  THEN
-                CALL pmci_interp_1sto_lr( qr, qrc, kcto, jflo, jfuo, kflo, kfuo, 'l', 's' )
-                CALL pmci_interp_1sto_lr( nr, nrc, kcto, jflo, jfuo, kflo, kfuo, 'l', 's' )
+                CALL pmci_interp_lr( qr, qrc, kcto, jflo, jfuo, kflo, kfuo, 'l', 's' )
+                CALL pmci_interp_lr( nr, nrc, kcto, jflo, jfuo, kflo, kfuo, 'l', 's' )
              ENDIF
 
@@ -3653,11 +3634,11 @@
 
           IF ( passive_scalar )  THEN
-             CALL pmci_interp_1sto_lr( s, sc, kcto, jflo, jfuo, kflo, kfuo, 'l', 's' )
+             CALL pmci_interp_lr( s, sc, kcto, jflo, jfuo, kflo, kfuo, 'l', 's' )
           ENDIF
 
           IF ( air_chemistry  .AND.  nesting_chem )  THEN
              DO  n = 1, nspec
-                CALL pmci_interp_1sto_lr( chem_species(n)%conc, chem_spec_c(:,:,:,n),              &
-                                          kcto, jflo, jfuo, kflo, kfuo, 'l', 's' )
+                CALL pmci_interp_lr( chem_species(n)%conc, chem_spec_c(:,:,:,n),                   &
+                                     kcto, jflo, jfuo, kflo, kfuo, 'l', 's' )
              ENDDO
           ENDIF
@@ -3665,15 +3646,15 @@
           IF ( salsa  .AND.  nesting_salsa )  THEN
              DO  lb = 1, nbins_aerosol
-                CALL pmci_interp_1sto_lr( aerosol_number(lb)%conc, aerosol_number_c(:,:,:,lb),     &
-                                          kcto, jflo, jfuo, kflo, kfuo, 'l', 's')
+                CALL pmci_interp_lr( aerosol_number(lb)%conc, aerosol_number_c(:,:,:,lb),          &
+                                     kcto, jflo, jfuo, kflo, kfuo, 'l', 's')
              ENDDO
              DO  lc = 1, nbins_aerosol * ncomponents_mass
-                CALL pmci_interp_1sto_lr( aerosol_mass(lc)%conc, aerosol_mass_c(:,:,:,lc),         &
-                                          kcto, jflo, jfuo, kflo, kfuo, 'l', 's')
+                CALL pmci_interp_lr( aerosol_mass(lc)%conc, aerosol_mass_c(:,:,:,lc),              &
+                                     kcto, jflo, jfuo, kflo, kfuo, 'l', 's')
              ENDDO
              IF ( .NOT. salsa_gases_from_chem )  THEN
                 DO  lg = 1, ngases_salsa
-                   CALL pmci_interp_1sto_lr( salsa_gas(lg)%conc, salsa_gas_c(:,:,:,lg),            &
-                                             kcto, jflo, jfuo, kflo, kfuo, 'l', 's')
+                   CALL pmci_interp_lr( salsa_gas(lg)%conc, salsa_gas_c(:,:,:,lg),                 &
+                                        kcto, jflo, jfuo, kflo, kfuo, 'l', 's')
                 ENDDO
              ENDIF
@@ -3685,12 +3666,12 @@
        IF ( bc_dirichlet_r )  THEN
 
-          CALL pmci_interp_1sto_lr( u, uc, kcto, jflo, jfuo, kflo, kfuo, 'r', 'u' )
-          CALL pmci_interp_1sto_lr( v, vc, kcto, jflv, jfuv, kflo, kfuo, 'r', 'v' )
-          CALL pmci_interp_1sto_lr( w, wc, kctw, jflo, jfuo, kflw, kfuw, 'r', 'w' )
+          CALL pmci_interp_lr( u, uc, kcto, jflo, jfuo, kflo, kfuo, 'r', 'u' )
+          CALL pmci_interp_lr( v, vc, kcto, jflv, jfuv, kflo, kfuo, 'r', 'v' )
+          CALL pmci_interp_lr( w, wc, kctw, jflo, jfuo, kflw, kfuw, 'r', 'w' )
 
           IF ( (        rans_mode_parent  .AND.         rans_mode )  .OR.                          &
                ( .NOT.  rans_mode_parent  .AND.  .NOT.  rans_mode  .AND.                           &
                  .NOT.  constant_diffusion ) )  THEN
-!             CALL pmci_interp_1sto_lr( e, ec, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 'r', 'e' )
+!             CALL pmci_interp_lr( e, ec, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 'r', 'e' )
 !
 !--          Interpolation of e is replaced by the Neumann condition.
@@ -3701,22 +3682,22 @@
 
           IF ( rans_mode_parent  .AND.  rans_mode  .AND.  rans_tke_e )  THEN
-             CALL pmci_interp_1sto_lr( diss, dissc, kcto, jflo, jfuo, kflo, kfuo, 'r', 's' )
+             CALL pmci_interp_lr( diss, dissc, kcto, jflo, jfuo, kflo, kfuo, 'r', 's' )
           ENDIF
 
           IF (  .NOT.  neutral )  THEN
-             CALL pmci_interp_1sto_lr( pt, ptc, kcto, jflo, jfuo, kflo, kfuo, 'r', 's' )
+             CALL pmci_interp_lr( pt, ptc, kcto, jflo, jfuo, kflo, kfuo, 'r', 's' )
           ENDIF
 
           IF ( humidity )  THEN
-             CALL pmci_interp_1sto_lr( q, q_c, kcto, jflo, jfuo, kflo, kfuo, 'r', 's' )
+             CALL pmci_interp_lr( q, q_c, kcto, jflo, jfuo, kflo, kfuo, 'r', 's' )
 
              IF ( bulk_cloud_model  .AND.  microphysics_morrison )  THEN
-                CALL pmci_interp_1sto_lr( qc, qcc, kcto, jflo, jfuo, kflo, kfuo, 'r', 's' )
-                CALL pmci_interp_1sto_lr( nc, ncc, kcto, jflo, jfuo, kflo, kfuo, 'r', 's' )
+                CALL pmci_interp_lr( qc, qcc, kcto, jflo, jfuo, kflo, kfuo, 'r', 's' )
+                CALL pmci_interp_lr( nc, ncc, kcto, jflo, jfuo, kflo, kfuo, 'r', 's' )
              ENDIF
 
              IF ( bulk_cloud_model  .AND.  microphysics_seifert )  THEN
-                CALL pmci_interp_1sto_lr( qr, qrc, kcto, jflo, jfuo, kflo, kfuo, 'r', 's' )
-                CALL pmci_interp_1sto_lr( nr, nrc, kcto, jflo, jfuo, kflo, kfuo, 'r', 's' )
+                CALL pmci_interp_lr( qr, qrc, kcto, jflo, jfuo, kflo, kfuo, 'r', 's' )
+                CALL pmci_interp_lr( nr, nrc, kcto, jflo, jfuo, kflo, kfuo, 'r', 's' )
              ENDIF
 
@@ -3724,11 +3705,11 @@
 
           IF ( passive_scalar )  THEN
-             CALL pmci_interp_1sto_lr( s, sc, kcto, jflo, jfuo, kflo, kfuo, 'r', 's' )
+             CALL pmci_interp_lr( s, sc, kcto, jflo, jfuo, kflo, kfuo, 'r', 's' )
           ENDIF
 
           IF ( air_chemistry  .AND.  nesting_chem )  THEN
              DO  n = 1, nspec
-                CALL pmci_interp_1sto_lr( chem_species(n)%conc, chem_spec_c(:,:,:,n),              &
-                                          kcto, jflo, jfuo, kflo, kfuo, 'r', 's' )
+                CALL pmci_interp_lr( chem_species(n)%conc, chem_spec_c(:,:,:,n),                    &
+                                     kcto, jflo, jfuo, kflo, kfuo, 'r', 's' )
              ENDDO
           ENDIF
@@ -3736,15 +3717,15 @@
           IF ( salsa  .AND.  nesting_salsa )  THEN
              DO  lb = 1, nbins_aerosol
-                CALL pmci_interp_1sto_lr( aerosol_number(lb)%conc, aerosol_number_c(:,:,:,lb),     &
+                CALL pmci_interp_lr( aerosol_number(lb)%conc, aerosol_number_c(:,:,:,lb),           &
                                           kcto, jflo, jfuo, kflo, kfuo, 'r', 's' )
              ENDDO
              DO  lc = 1, nbins_aerosol * ncomponents_mass
-                CALL pmci_interp_1sto_lr( aerosol_mass(lc)%conc, aerosol_mass_c(:,:,:,lc),         &
-                                          kcto, jflo, jfuo, kflo, kfuo, 'r', 's' )
+                CALL pmci_interp_lr( aerosol_mass(lc)%conc, aerosol_mass_c(:,:,:,lc),               &
+                                     kcto, jflo, jfuo, kflo, kfuo, 'r', 's' )
              ENDDO
              IF ( .NOT. salsa_gases_from_chem )  THEN
                 DO  lg = 1, ngases_salsa
-                   CALL pmci_interp_1sto_lr( salsa_gas(lg)%conc, salsa_gas_c(:,:,:,lg),            &
-                                             kcto, jflo, jfuo, kflo, kfuo, 'r', 's' )
+                   CALL pmci_interp_lr( salsa_gas(lg)%conc, salsa_gas_c(:,:,:,lg),                  &
+                                        kcto, jflo, jfuo, kflo, kfuo, 'r', 's' )
                 ENDDO
              ENDIF
@@ -3756,12 +3737,12 @@
        IF ( bc_dirichlet_s )  THEN
 
-          CALL pmci_interp_1sto_sn( v, vc, kcto, iflo, ifuo, kflo, kfuo, 's', 'v' )
-          CALL pmci_interp_1sto_sn( w, wc, kctw, iflo, ifuo, kflw, kfuw, 's', 'w' )
-          CALL pmci_interp_1sto_sn( u, uc, kcto, iflu, ifuu, kflo, kfuo, 's', 'u' )
+          CALL pmci_interp_sn( v, vc, kcto, iflo, ifuo, kflo, kfuo, 's', 'v' )
+          CALL pmci_interp_sn( w, wc, kctw, iflo, ifuo, kflw, kfuw, 's', 'w' )
+          CALL pmci_interp_sn( u, uc, kcto, iflu, ifuu, kflo, kfuo, 's', 'u' )
 
           IF ( (        rans_mode_parent  .AND.         rans_mode )  .OR.                          &
                ( .NOT.  rans_mode_parent  .AND.  .NOT.  rans_mode  .AND.                           &
                  .NOT.  constant_diffusion ) )  THEN
-!             CALL pmci_interp_1sto_sn( e, ec, kcto, iflo, ifuo, kflo, kfuo, 's', 'e' )
+!             CALL pmci_interp_sn( e, ec, kcto, iflo, ifuo, kflo, kfuo, 's', 'e' )
 !
 !--          Interpolation of e is replaced by the Neumann condition.
@@ -3772,22 +3753,22 @@
 
           IF ( rans_mode_parent  .AND.  rans_mode  .AND.  rans_tke_e )  THEN
-             CALL pmci_interp_1sto_sn( diss, dissc, kcto, iflo, ifuo, kflo, kfuo, 's', 's' )
+             CALL pmci_interp_sn( diss, dissc, kcto, iflo, ifuo, kflo, kfuo, 's', 's' )
           ENDIF
 
           IF (  .NOT.  neutral )  THEN
-             CALL pmci_interp_1sto_sn( pt, ptc, kcto, iflo, ifuo, kflo, kfuo, 's', 's' )
+             CALL pmci_interp_sn( pt, ptc, kcto, iflo, ifuo, kflo, kfuo, 's', 's' )
           ENDIF
 
           IF ( humidity )  THEN
-             CALL pmci_interp_1sto_sn( q, q_c, kcto, iflo, ifuo, kflo, kfuo, 's', 's' )
+             CALL pmci_interp_sn( q, q_c, kcto, iflo, ifuo, kflo, kfuo, 's', 's' )
 
              IF ( bulk_cloud_model  .AND.  microphysics_morrison )  THEN
-                CALL pmci_interp_1sto_sn( qc, qcc, kcto, iflo, ifuo, kflo, kfuo, 's', 's' )
-                CALL pmci_interp_1sto_sn( nc, ncc, kcto, iflo, ifuo, kflo, kfuo, 's', 's' )
+                CALL pmci_interp_sn( qc, qcc, kcto, iflo, ifuo, kflo, kfuo, 's', 's' )
+                CALL pmci_interp_sn( nc, ncc, kcto, iflo, ifuo, kflo, kfuo, 's', 's' )
              ENDIF
 
              IF ( bulk_cloud_model  .AND.  microphysics_seifert )  THEN
-                CALL pmci_interp_1sto_sn( qr, qrc, kcto, iflo, ifuo, kflo, kfuo, 's', 's' )
-                CALL pmci_interp_1sto_sn( nr, nrc, kcto, iflo, ifuo, kflo, kfuo, 's', 's' )
+                CALL pmci_interp_sn( qr, qrc, kcto, iflo, ifuo, kflo, kfuo, 's', 's' )
+                CALL pmci_interp_sn( nr, nrc, kcto, iflo, ifuo, kflo, kfuo, 's', 's' )
              ENDIF
 
@@ -3795,11 +3776,11 @@
 
           IF ( passive_scalar )  THEN
-             CALL pmci_interp_1sto_sn( s, sc, kcto, iflo, ifuo, kflo, kfuo, 's', 's' )
+             CALL pmci_interp_sn( s, sc, kcto, iflo, ifuo, kflo, kfuo, 's', 's' )
           ENDIF
 
           IF ( air_chemistry  .AND.  nesting_chem )  THEN
              DO  n = 1, nspec
-                CALL pmci_interp_1sto_sn( chem_species(n)%conc, chem_spec_c(:,:,:,n),              &
-                                          kcto, iflo, ifuo, kflo, kfuo, 's', 's' )
+                CALL pmci_interp_sn( chem_species(n)%conc, chem_spec_c(:,:,:,n),                   &
+                                     kcto, iflo, ifuo, kflo, kfuo, 's', 's' )
              ENDDO
           ENDIF
@@ -3807,15 +3788,15 @@
           IF ( salsa  .AND.  nesting_salsa )  THEN
              DO  lb = 1, nbins_aerosol
-                CALL pmci_interp_1sto_sn( aerosol_number(lb)%conc, aerosol_number_c(:,:,:,lb),     &
-                                          kcto, iflo, ifuo, kflo, kfuo, 's', 's' )
+                CALL pmci_interp_sn( aerosol_number(lb)%conc, aerosol_number_c(:,:,:,lb),          &
+                                     kcto, iflo, ifuo, kflo, kfuo, 's', 's' )
              ENDDO
              DO  lc = 1, nbins_aerosol * ncomponents_mass
-                CALL pmci_interp_1sto_sn( aerosol_mass(lc)%conc, aerosol_mass_c(:,:,:,lc),         &
-                                          kcto, iflo, ifuo, kflo, kfuo, 's', 's' )
+                CALL pmci_interp_sn( aerosol_mass(lc)%conc, aerosol_mass_c(:,:,:,lc),              &
+                                     kcto, iflo, ifuo, kflo, kfuo, 's', 's' )
              ENDDO
              IF ( .NOT. salsa_gases_from_chem )  THEN
                 DO  lg = 1, ngases_salsa
-                   CALL pmci_interp_1sto_sn( salsa_gas(lg)%conc, salsa_gas_c(:,:,:,lg),            &
-                                             kcto, iflo, ifuo, kflo, kfuo, 's', 's' )
+                   CALL pmci_interp_sn( salsa_gas(lg)%conc, salsa_gas_c(:,:,:,lg),                 &
+                                        kcto, iflo, ifuo, kflo, kfuo, 's', 's' )
                 ENDDO
              ENDIF
@@ -3827,12 +3808,12 @@
        IF ( bc_dirichlet_n )  THEN
 
-          CALL pmci_interp_1sto_sn( v, vc, kcto, iflo, ifuo, kflo, kfuo, 'n', 'v' )
-          CALL pmci_interp_1sto_sn( w, wc, kctw, iflo, ifuo, kflw, kfuw, 'n', 'w' )
-          CALL pmci_interp_1sto_sn( u, uc, kcto, iflu, ifuu, kflo, kfuo, 'n', 'u' )
+          CALL pmci_interp_sn( v, vc, kcto, iflo, ifuo, kflo, kfuo, 'n', 'v' )
+          CALL pmci_interp_sn( w, wc, kctw, iflo, ifuo, kflw, kfuw, 'n', 'w' )
+          CALL pmci_interp_sn( u, uc, kcto, iflu, ifuu, kflo, kfuo, 'n', 'u' )
 
           IF ( (        rans_mode_parent  .AND.         rans_mode )  .OR.                          &
                ( .NOT.  rans_mode_parent  .AND.  .NOT.  rans_mode  .AND.                           &
                  .NOT.  constant_diffusion ) )  THEN
-!             CALL pmci_interp_1sto_sn( e, ec, kcto, iflo, ifuo, kflo, kfuo, 'n', 'e' )
+!             CALL pmci_interp_sn( e, ec, kcto, iflo, ifuo, kflo, kfuo, 'n', 'e' )
 !
 !--          Interpolation of e is replaced by the Neumann condition.
@@ -3843,22 +3824,22 @@
 
           IF ( rans_mode_parent  .AND.  rans_mode  .AND.  rans_tke_e )  THEN
-             CALL pmci_interp_1sto_sn( diss, dissc, kcto, iflo, ifuo, kflo, kfuo, 'n', 's' )
+             CALL pmci_interp_sn( diss, dissc, kcto, iflo, ifuo, kflo, kfuo, 'n', 's' )
           ENDIF
 
           IF (  .NOT.  neutral )  THEN
-             CALL pmci_interp_1sto_sn( pt, ptc, kcto, iflo, ifuo, kflo, kfuo, 'n', 's' )
+             CALL pmci_interp_sn( pt, ptc, kcto, iflo, ifuo, kflo, kfuo, 'n', 's' )
           ENDIF
 
           IF ( humidity )  THEN
-             CALL pmci_interp_1sto_sn( q, q_c, kcto, iflo, ifuo, kflo, kfuo, 'n', 's' )
+             CALL pmci_interp_sn( q, q_c, kcto, iflo, ifuo, kflo, kfuo, 'n', 's' )
 
              IF ( bulk_cloud_model  .AND.  microphysics_morrison )  THEN
-                CALL pmci_interp_1sto_sn( qc, qcc, kcto, iflo, ifuo, kflo, kfuo, 'n', 's' )
-                CALL pmci_interp_1sto_sn( nc, ncc, kcto, iflo, ifuo, kflo, kfuo, 'n', 's' )
+                CALL pmci_interp_sn( qc, qcc, kcto, iflo, ifuo, kflo, kfuo, 'n', 's' )
+                CALL pmci_interp_sn( nc, ncc, kcto, iflo, ifuo, kflo, kfuo, 'n', 's' )
              ENDIF
 
              IF ( bulk_cloud_model  .AND.  microphysics_seifert )  THEN
-                CALL pmci_interp_1sto_sn( qr, qrc, kcto, iflo, ifuo, kflo, kfuo, 'n', 's' )
-                CALL pmci_interp_1sto_sn( nr, nrc, kcto, iflo, ifuo, kflo, kfuo, 'n', 's' )
+                CALL pmci_interp_sn( qr, qrc, kcto, iflo, ifuo, kflo, kfuo, 'n', 's' )
+                CALL pmci_interp_sn( nr, nrc, kcto, iflo, ifuo, kflo, kfuo, 'n', 's' )
              ENDIF
 
@@ -3866,11 +3847,11 @@
 
           IF ( passive_scalar )  THEN
-             CALL pmci_interp_1sto_sn( s, sc, kcto, iflo, ifuo, kflo, kfuo, 'n', 's' )
+             CALL pmci_interp_sn( s, sc, kcto, iflo, ifuo, kflo, kfuo, 'n', 's' )
           ENDIF
 
           IF ( air_chemistry  .AND.  nesting_chem )  THEN
              DO  n = 1, nspec
-                CALL pmci_interp_1sto_sn( chem_species(n)%conc, chem_spec_c(:,:,:,n),              &
-                                          kcto, iflo, ifuo, kflo, kfuo, 'n', 's' )
+                CALL pmci_interp_sn( chem_species(n)%conc, chem_spec_c(:,:,:,n),                   &
+                                     kcto, iflo, ifuo, kflo, kfuo, 'n', 's' )
              ENDDO
           ENDIF
@@ -3878,15 +3859,15 @@
           IF ( salsa  .AND.  nesting_salsa )  THEN
              DO  lb = 1, nbins_aerosol
-                CALL pmci_interp_1sto_sn( aerosol_number(lb)%conc, aerosol_number_c(:,:,:,lb),     &
-                                          kcto, iflo, ifuo, kflo, kfuo, 'n', 's' )
+                CALL pmci_interp_sn( aerosol_number(lb)%conc, aerosol_number_c(:,:,:,lb),          &
+                                     kcto, iflo, ifuo, kflo, kfuo, 'n', 's' )
              ENDDO
              DO  lc = 1, nbins_aerosol * ncomponents_mass
-                CALL pmci_interp_1sto_sn( aerosol_mass(lc)%conc, aerosol_mass_c(:,:,:,lc),         &
-                                          kcto, iflo, ifuo, kflo, kfuo, 'n', 's' )
+                CALL pmci_interp_sn( aerosol_mass(lc)%conc, aerosol_mass_c(:,:,:,lc),              &
+                                     kcto, iflo, ifuo, kflo, kfuo, 'n', 's' )
              ENDDO
              IF ( .NOT. salsa_gases_from_chem )  THEN
                 DO  lg = 1, ngases_salsa
-                   CALL pmci_interp_1sto_sn( salsa_gas(lg)%conc, salsa_gas_c(:,:,:,lg),            &
-                                             kcto, iflo, ifuo, kflo, kfuo, 'n', 's' )
+                   CALL pmci_interp_sn( salsa_gas(lg)%conc, salsa_gas_c(:,:,:,lg),                 &
+                                        kcto, iflo, ifuo, kflo, kfuo, 'n', 's' )
                 ENDDO
              ENDIF
@@ -3898,12 +3879,12 @@
 !
 !-- All PEs are top-border PEs
-    CALL pmci_interp_1sto_t( w, wc, kctw, iflo, ifuo, jflo, jfuo, 'w' )
-    CALL pmci_interp_1sto_t( u, uc, kcto, iflu, ifuu, jflo, jfuo, 'u' )
-    CALL pmci_interp_1sto_t( v, vc, kcto, iflo, ifuo, jflv, jfuv, 'v' )
+    CALL pmci_interp_t( w, wc, kctw, iflo, ifuo, jflo, jfuo, 'w' )
+    CALL pmci_interp_t( u, uc, kcto, iflu, ifuu, jflo, jfuo, 'u' )
+    CALL pmci_interp_t( v, vc, kcto, iflo, ifuo, jflv, jfuv, 'v' )
 
     IF ( (        rans_mode_parent  .AND.         rans_mode )  .OR.                                &
          ( .NOT.  rans_mode_parent  .AND.  .NOT.  rans_mode  .AND.                                 &
            .NOT.  constant_diffusion ) )  THEN
-!       CALL pmci_interp_1sto_t( e, ec, kcto, iflo, ifuo, jflo, jfuo, 'e' )
+!       CALL pmci_interp_t( e, ec, kcto, iflo, ifuo, jflo, jfuo, 'e' )
 !
 !--    Interpolation of e is replaced by the Neumann condition.
@@ -3912,31 +3893,31 @@
 
     IF ( rans_mode_parent  .AND.  rans_mode  .AND.  rans_tke_e )  THEN
-       CALL pmci_interp_1sto_t( diss, dissc, kcto, iflo, ifuo, jflo, jfuo, 's' )
+       CALL pmci_interp_t( diss, dissc, kcto, iflo, ifuo, jflo, jfuo, 's' )
     ENDIF
 
     IF ( .NOT. neutral )  THEN
-       CALL pmci_interp_1sto_t( pt, ptc, kcto, iflo, ifuo, jflo, jfuo, 's' )
+       CALL pmci_interp_t( pt, ptc, kcto, iflo, ifuo, jflo, jfuo, 's' )
     ENDIF
 
     IF ( humidity )  THEN
-       CALL pmci_interp_1sto_t( q, q_c, kcto, iflo, ifuo, jflo, jfuo, 's' )
+       CALL pmci_interp_t( q, q_c, kcto, iflo, ifuo, jflo, jfuo, 's' )
        IF ( bulk_cloud_model  .AND.  microphysics_morrison )  THEN
-          CALL pmci_interp_1sto_t( qc, qcc, kcto, iflo, ifuo, jflo, jfuo, 's' )
-          CALL pmci_interp_1sto_t( nc, ncc, kcto, iflo, ifuo, jflo, jfuo, 's' )
+          CALL pmci_interp_t( qc, qcc, kcto, iflo, ifuo, jflo, jfuo, 's' )
+          CALL pmci_interp_t( nc, ncc, kcto, iflo, ifuo, jflo, jfuo, 's' )
        ENDIF
        IF ( bulk_cloud_model  .AND.  microphysics_seifert )  THEN
-          CALL pmci_interp_1sto_t( qr, qrc, kcto, iflo, ifuo, jflo, jfuo, 's' )
-          CALL pmci_interp_1sto_t( nr, nrc, kcto, iflo, ifuo, jflo, jfuo, 's' )
+          CALL pmci_interp_t( qr, qrc, kcto, iflo, ifuo, jflo, jfuo, 's' )
+          CALL pmci_interp_t( nr, nrc, kcto, iflo, ifuo, jflo, jfuo, 's' )
        ENDIF
     ENDIF
 
     IF ( passive_scalar )  THEN
-       CALL pmci_interp_1sto_t( s, sc, kcto, iflo, ifuo, jflo, jfuo, 's' )
+       CALL pmci_interp_t( s, sc, kcto, iflo, ifuo, jflo, jfuo, 's' )
     ENDIF
 
     IF ( air_chemistry  .AND.  nesting_chem )  THEN
        DO  n = 1, nspec
-          CALL pmci_interp_1sto_t( chem_species(n)%conc, chem_spec_c(:,:,:,n),                     &
-                                   kcto, iflo, ifuo, jflo, jfuo, 's' )
+          CALL pmci_interp_t( chem_species(n)%conc, chem_spec_c(:,:,:,n),                          &
+                              kcto, iflo, ifuo, jflo, jfuo, 's' )
        ENDDO
     ENDIF
@@ -3944,15 +3925,15 @@
     IF ( salsa  .AND.  nesting_salsa )  THEN
        DO  lb = 1, nbins_aerosol
-          CALL pmci_interp_1sto_t( aerosol_number(lb)%conc, aerosol_number_c(:,:,:,lb),            &
-                                   kcto, iflo, ifuo, jflo, jfuo, 's' )
+          CALL pmci_interp_t( aerosol_number(lb)%conc, aerosol_number_c(:,:,:,lb),                 &
+                              kcto, iflo, ifuo, jflo, jfuo, 's' )
        ENDDO
        DO  lc = 1, nbins_aerosol * ncomponents_mass
-          CALL pmci_interp_1sto_t( aerosol_mass(lc)%conc, aerosol_mass_c(:,:,:,lc),                &
-                                   kcto, iflo, ifuo, jflo, jfuo, 's' )
+          CALL pmci_interp_t( aerosol_mass(lc)%conc, aerosol_mass_c(:,:,:,lc),                     &
+                              kcto, iflo, ifuo, jflo, jfuo, 's' )
        ENDDO
        IF ( .NOT. salsa_gases_from_chem )  THEN
           DO  lg = 1, ngases_salsa
-             CALL pmci_interp_1sto_t( salsa_gas(lg)%conc, salsa_gas_c(:,:,:,lg),                   &
-                                      kcto, iflo, ifuo, jflo, jfuo, 's' )
+             CALL pmci_interp_t( salsa_gas(lg)%conc, salsa_gas_c(:,:,:,lg),                        &
+                                 kcto, iflo, ifuo, jflo, jfuo, 's' )
           ENDDO
        ENDIF
@@ -3966,11 +3947,8 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> A wrapper routine for all anterpolation actions. Note that TKE is not anterpolated.
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_anterpolation
-
-!
-!-- A wrapper routine for all anterpolation actions.
-!-- Note that TKE is not anterpolated.
+ 
     IMPLICIT NONE
     INTEGER(iwp) ::  lb  !< Running index for aerosol size bins
@@ -3980,17 +3958,17 @@
 
 
-    CALL pmci_anterp_tophat( u,  uc,  kcto, iflu, ifuu, jflo, jfuo, kflo, kfuo, ijkfc_u, 'u' )
-    CALL pmci_anterp_tophat( v,  vc,  kcto, iflo, ifuo, jflv, jfuv, kflo, kfuo, ijkfc_v, 'v' )
-    CALL pmci_anterp_tophat( w,  wc,  kctw, iflo, ifuo, jflo, jfuo, kflw, kfuw, ijkfc_w, 'w' )
+    CALL pmci_anterp_var( u,  uc,  kcto, iflu, ifuu, jflo, jfuo, kflo, kfuo, ijkfc_u, 'u' )
+    CALL pmci_anterp_var( v,  vc,  kcto, iflo, ifuo, jflv, jfuv, kflo, kfuo, ijkfc_v, 'v' )
+    CALL pmci_anterp_var( w,  wc,  kctw, iflo, ifuo, jflo, jfuo, kflw, kfuw, ijkfc_w, 'w' )
 !
 !-- Anterpolation of TKE and dissipation rate if parent and child are in
 !-- RANS mode.
     IF ( rans_mode_parent  .AND.  rans_mode )  THEN
-       CALL pmci_anterp_tophat( e, ec, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, ijkfc_s, 'e' )
+       CALL pmci_anterp_var( e, ec, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, ijkfc_s, 'e' )
 !
 !--    Anterpolation of dissipation rate only if TKE-e closure is applied.
        IF ( rans_tke_e )  THEN
-          CALL pmci_anterp_tophat( diss, dissc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo,          &
-                                   ijkfc_s, 'diss' )
+          CALL pmci_anterp_var( diss, dissc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo,              &
+                                ijkfc_s, 'diss' )
        ENDIF
 
@@ -3998,18 +3976,16 @@
 
     IF ( .NOT. neutral )  THEN
-       CALL pmci_anterp_tophat( pt, ptc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, ijkfc_s, 'pt' )
+       CALL pmci_anterp_var( pt, ptc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, ijkfc_s, 'pt' )
     ENDIF
 
     IF ( humidity )  THEN
 
-       CALL pmci_anterp_tophat( q, q_c, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, ijkfc_s, 'q' )
+       CALL pmci_anterp_var( q, q_c, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, ijkfc_s, 'q' )
 
        IF ( bulk_cloud_model  .AND.  microphysics_morrison )  THEN
 
-          CALL pmci_anterp_tophat( qc, qcc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, ijkfc_s,     &
-                                   'qc' )
-
-          CALL pmci_anterp_tophat( nc, ncc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, ijkfc_s,     &
-                                   'nc' )
+          CALL pmci_anterp_var( qc, qcc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, ijkfc_s, 'qc' )
+
+          CALL pmci_anterp_var( nc, ncc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, ijkfc_s, 'nc' )
 
        ENDIF
@@ -4017,9 +3993,7 @@
        IF ( bulk_cloud_model  .AND.  microphysics_seifert )  THEN
 
-          CALL pmci_anterp_tophat( qr, qrc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, ijkfc_s,     &
-                                   'qr' )
-
-          CALL pmci_anterp_tophat( nr, nrc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, ijkfc_s,     &
-                                   'nr' )
+          CALL pmci_anterp_var( qr, qrc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, ijkfc_s, 'qr' )
+
+          CALL pmci_anterp_var( nr, nrc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, ijkfc_s, 'nr' )
 
        ENDIF
@@ -4028,11 +4002,11 @@
 
     IF ( passive_scalar )  THEN
-       CALL pmci_anterp_tophat( s, sc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, ijkfc_s, 's' )
+       CALL pmci_anterp_var( s, sc, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, ijkfc_s, 's' )
     ENDIF
 
     IF ( air_chemistry  .AND.  nesting_chem )  THEN
        DO  n = 1, nspec
-          CALL pmci_anterp_tophat( chem_species(n)%conc, chem_spec_c(:,:,:,n),                     &
-                                   kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, ijkfc_s, 's' )
+          CALL pmci_anterp_var( chem_species(n)%conc, chem_spec_c(:,:,:,n),                        &
+                                kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, ijkfc_s, 's' )
        ENDDO
     ENDIF
@@ -4040,15 +4014,15 @@
     IF ( salsa  .AND.  nesting_salsa )  THEN
        DO  lb = 1, nbins_aerosol
-          CALL pmci_anterp_tophat( aerosol_number(lb)%conc, aerosol_number_c(:,:,:,lb),            &
-                                   kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, ijkfc_s, 's' )
+          CALL pmci_anterp_var( aerosol_number(lb)%conc, aerosol_number_c(:,:,:,lb),               &
+                                kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, ijkfc_s, 's' )
        ENDDO
        DO  lc = 1, nbins_aerosol * ncomponents_mass
-          CALL pmci_anterp_tophat( aerosol_mass(lc)%conc, aerosol_mass_c(:,:,:,lc),                &
-                                   kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, ijkfc_s, 's' )
+          CALL pmci_anterp_var( aerosol_mass(lc)%conc, aerosol_mass_c(:,:,:,lc),                   &
+                                kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, ijkfc_s, 's' )
        ENDDO
        IF ( .NOT. salsa_gases_from_chem )  THEN
           DO  lg = 1, ngases_salsa
-             CALL pmci_anterp_tophat( salsa_gas(lg)%conc, salsa_gas_c(:,:,:,lg),                   &
-                                      kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, ijkfc_s, 's' )
+             CALL pmci_anterp_var( salsa_gas(lg)%conc, salsa_gas_c(:,:,:,lg),                      &
+                                   kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, ijkfc_s, 's' )
           ENDDO
        ENDIF
@@ -4061,10 +4035,9 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
-!--------------------------------------------------------------------------------------------------!
- SUBROUTINE pmci_interp_1sto_lr( child_array, parent_array, kct, jfl, jfu, kfl, kfu, edge, var )
-!
-!-- Interpolation of ghost-node values used as the child-domain boundary conditions. This subroutine
-!-- handles the left and right boundaries.
+!> Interpolation of ghost-node values used as the child-domain boundary conditions. This subroutine
+!> handles the left and right boundaries.
+!--------------------------------------------------------------------------------------------------!
+ SUBROUTINE pmci_interp_lr( child_array, parent_array, kct, jfl, jfu, kfl, kfu, edge, var )
+
     IMPLICIT NONE
 
@@ -4293,5 +4266,5 @@
     ENDIF
 
- END SUBROUTINE pmci_interp_1sto_lr
+ END SUBROUTINE pmci_interp_lr
 
 
@@ -4299,10 +4272,9 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
-!--------------------------------------------------------------------------------------------------!
- SUBROUTINE pmci_interp_1sto_sn( child_array, parent_array, kct, ifl, ifu, kfl, kfu, edge, var )
-!
-!-- Interpolation of ghost-node values used as the child-domain boundary conditions. This subroutine
-!-- handles the south and north boundaries.
+!> Interpolation of ghost-node values used as the child-domain boundary conditions. This subroutine
+!> handles the south and north boundaries.
+!--------------------------------------------------------------------------------------------------!
+ SUBROUTINE pmci_interp_sn( child_array, parent_array, kct, ifl, ifu, kfl, kfu, edge, var )
+ 
     IMPLICIT NONE
 
@@ -4533,5 +4505,5 @@
     ENDIF
 
- END SUBROUTINE pmci_interp_1sto_sn
+ END SUBROUTINE pmci_interp_sn
 
 
@@ -4539,10 +4511,9 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
-!--------------------------------------------------------------------------------------------------!
- SUBROUTINE pmci_interp_1sto_t( child_array, parent_array, kct, ifl, ifu, jfl, jfu, var )
-!
-!-- Interpolation of ghost-node values used as the child-domain boundary conditions. This subroutine
-!-- handles the top boundary.
+!> Interpolation of ghost-node values used as the child-domain boundary conditions. This subroutine
+!> handles the top boundary.
+!--------------------------------------------------------------------------------------------------!
+ SUBROUTINE pmci_interp_t( child_array, parent_array, kct, ifl, ifu, jfl, jfu, var )
+ 
     IMPLICIT NONE
 
@@ -4802,5 +4773,5 @@
     ENDIF
 
- END SUBROUTINE pmci_interp_1sto_t
+ END SUBROUTINE pmci_interp_t
 
 
@@ -4809,12 +4780,11 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
-!--------------------------------------------------------------------------------------------------!
- SUBROUTINE pmci_anterp_tophat( child_array, parent_array, kct, ifl, ifu, jfl, jfu, kfl, kfu,      &
-                                ijkfc, var )
-!
-!-- Anterpolation of internal-node values to be used as the parent-domain values. This subroutine is
-!-- based on the first-order numerical integration of the child-grid values contained within the
-!-- anterpolation cell (Clark & Farley, Journal of the Atmospheric Sciences 41(3), 1984).
+!> Anterpolation of internal-node values of one variable to be used as the parent-domain values. 
+!> This subroutine is based on the first-order numerical integration of the child-grid values 
+!> contained within the anterpolation cell (Clark & Farley, Journal of the Atmospheric
+!> Sciences 41(3), 1984).
+!--------------------------------------------------------------------------------------------------!
+ SUBROUTINE pmci_anterp_var( child_array, parent_array, kct, ifl, ifu, jfl, jfu, kfl, kfu,         &
+                             ijkfc, var )
 
     IMPLICIT NONE
@@ -4926,5 +4896,5 @@
     ENDDO
 
- END SUBROUTINE pmci_anterp_tophat
+ END SUBROUTINE pmci_anterp_var
 
 #endif
@@ -5153,11 +5123,9 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Adjust the volume-flow rate through the nested boundaries so that the net volume flow through
+!> all boundaries of the current nest domain becomes zero.
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_ensure_nest_mass_conservation
-
-!
-!-- Adjust the volume-flow rate through the nested boundaries so that the net volume flow through
-!-- all boundaries of the current nest domain becomes zero.
+ 
     IMPLICIT NONE
 
@@ -5382,11 +5350,9 @@
 ! Description:
 ! ------------
-!> @Todo: Missing subroutine description.
+!> Adjust the volume-flow rate through the top boundary so that the net volume flow through 
+!> all boundaries of the current nest domain becomes zero.
 !--------------------------------------------------------------------------------------------------!
  SUBROUTINE pmci_ensure_nest_mass_conservation_vertical
-
-!
-!-- Adjust the volume-flow rate through the top boundary so that the net volume flow through all
-!-- boundaries of the current nest domain becomes zero.
+ 
     IMPLICIT NONE
 
