Ignore:
Timestamp:
May 3, 2020 2:29:30 PM (4 years ago)
Author:
raasch
Message:

added restart with MPI-IO for reading local arrays

File:
1 edited

Legend:

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

    r4515 r4517  
    2727! -----------------
    2828! $Id$
     29! added restart with MPI-IO for reading local arrays
     30!
     31! 4515 2020-04-30 16:37:18Z suehring
    2932! Rename error number again since this was recently given in -r 4511
    3033!
     
    237240
    238241    USE restart_data_mpi_io_mod,                                                                   &
    239         ONLY:  rrd_mpi_io,                                                                         &
     242        ONLY:  rd_mpi_io_check_array,                                                              &
     243               rrd_mpi_io,                                                                         &
    240244               wrd_mpi_io
    241245
     
    361365
    362366    INTERFACE pcm_rrd_local
    363        MODULE PROCEDURE pcm_rrd_local
     367       MODULE PROCEDURE pcm_rrd_local_ftn
     368       MODULE PROCEDURE pcm_rrd_local_mpi
    364369    END INTERFACE pcm_rrd_local
    365370
     
    16851690    END SUBROUTINE pcm_rrd_global_mpi
    16861691
     1692
    16871693!------------------------------------------------------------------------------!
    16881694! Description:
    16891695! ------------
    1690 !> Subroutine reads local (subdomain) restart data
    1691 !------------------------------------------------------------------------------!
    1692     SUBROUTINE pcm_rrd_local( k, nxlf, nxlc, nxl_on_file, nxrf, nxrc,          &
    1693                               nxr_on_file, nynf, nync, nyn_on_file, nysf,      &
    1694                               nysc, nys_on_file, found )
     1696!> Read module-specific local restart data arrays (Fortran binary format).
     1697!------------------------------------------------------------------------------!
     1698    SUBROUTINE pcm_rrd_local_ftn( k, nxlf, nxlc, nxl_on_file, nxrf, nxrc,          &
     1699                                  nxr_on_file, nynf, nync, nyn_on_file, nysf,      &
     1700                                  nysc, nys_on_file, found )
    16951701
    16961702       INTEGER(iwp) ::  k               !<
     
    17511757       END SELECT
    17521758
    1753     END SUBROUTINE pcm_rrd_local
     1759    END SUBROUTINE pcm_rrd_local_ftn
     1760
     1761
     1762!------------------------------------------------------------------------------!
     1763! Description:
     1764! ------------
     1765!> Read module-specific local restart data arrays (MPI-IO).
     1766!------------------------------------------------------------------------------!
     1767    SUBROUTINE pcm_rrd_local_mpi
     1768
     1769       IMPLICIT NONE
     1770
     1771       LOGICAL ::  array_found  !<
     1772
     1773
     1774!>     TODO: following code does not work because arrays are sized 0:pch_index along k!!!!!
     1775       CALL rd_mpi_io_check_array( 'pcm_heatrate_av' , found = array_found )
     1776       IF ( array_found )  THEN
     1777          IF ( .NOT. ALLOCATED( pcm_heatrate_av ) )  ALLOCATE( pcm_heatrate_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     1778          CALL rrd_mpi_io( 'pcm_heatrate_av', pcm_heatrate_av )
     1779       ENDIF
     1780
     1781       CALL rd_mpi_io_check_array( 'pcm_latentrate_av' , found = array_found )
     1782       IF ( array_found )  THEN
     1783          IF ( .NOT. ALLOCATED( pcm_latentrate_av ) )  ALLOCATE( pcm_latentrate_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     1784          CALL rrd_mpi_io( 'pcm_latentrate_av', pcm_latentrate_av )
     1785       ENDIF
     1786
     1787       CALL rd_mpi_io_check_array( 'pcm_transpirationrate_av' , found = array_found )
     1788       IF ( array_found )  THEN
     1789          IF ( .NOT. ALLOCATED( pcm_transpirationrate_av ) )  ALLOCATE( pcm_transpirationrate_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     1790          CALL rrd_mpi_io( 'pcm_transpirationrate_av', pcm_transpirationrate_av )
     1791       ENDIF
     1792
     1793    END SUBROUTINE pcm_rrd_local_mpi
     1794
    17541795
    17551796!------------------------------------------------------------------------------!
Note: See TracChangeset for help on using the changeset viewer.