ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_arrayInit Module Reference

This module contains procedures and generic interfaces for efficient initialization of arbitrary rectangular cores and surrounding halos of arrays of arbitrary size, shape, and rank of arbitrary intrinsic type and kind.
More...

Data Types

interface  getCoreHalo
 Generate and return an array of specified rank and shape of arbitrary intrinsic type and kind with its rectangular core and halo set to the corresponding user-specified values.
More...
 
interface  setCoreHalo
 Initialize the rectangular core and halo of an input array of arbitrary rank and shape of arbitrary intrinsic type and kind with the corresponding user-specified values.
More...
 

Variables

character(*, SK), parameter MODULE_NAME = "@pm_arrayInit"
 

Detailed Description

This module contains procedures and generic interfaces for efficient initialization of arbitrary rectangular cores and surrounding halos of arrays of arbitrary size, shape, and rank of arbitrary intrinsic type and kind.

The halo of an array of arbitrary rank is defined as the complement of rectangular (hollow) region of arbitrary size within a super-rectangle.
The following figures illustrate example scalar and array cores and halos of two 1D and 2D arrays.

Note
All procedures of this module initialize all elements of the output arrays.
See also
pm_arrayFill
pm_matrixInit
Test:
test_pm_arrayInit
Todo:
Normal Priority: A separate module pm_arrayInitHalo should be added in future to handle initialization of halos exclusively (without changing array cores).
Bug:

Status: Unresolved
Source: Intel LLVM Fortran Compiler ifx version 2023.0.0 20221201
Description: Intel LLVM Fortran Compiler ifx yields an ICE while compiling this module.
By contrast, the Intel classic Fortran compiler ifort can successfully compile this file.
The origins of the ICE remain unexplored as of today.

Remedy (as of ParaMonte Library version 2.0.0): Avoid compiling the library with Intel LLVM Fortran Compiler ifx.


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Fatemeh Bagheri, Wednesday 12:20 AM, October 13, 2021, Dallas, TX

Variable Documentation

◆ MODULE_NAME

character(*,SK), parameter pm_arrayInit::MODULE_NAME = "@pm_arrayInit"

Definition at line 70 of file pm_arrayInit.F90.