Module ppm_module_io

This module provides the interfaces to all PPM I/O routines.

This module contains all data structures and definitions that are private to the I/O routines.

Defined Types

name description

no types

Defined Module Interfaces

name description

ppm_doio

Internal routine that performs actual I/O

ppm_io

Performs parallel I/O of scalars and vectors

ppm_io_close

Closes a file

ppm_io_delete

Deletes a file

ppm_io_inquire

Inquires the state of a I/O Unit

ppm_io_open

Opens a file

ppm_io_read_ascii

Reads ASCII arrays from an I/O Unit

ppm_io_read_binary

Reads binary arrays from an I/O Unit

ppm_io_set_unit

Sets I/O units for stout, stderr and log file

ppm_io_unused_unit

Routine that finds the first unused I/O unit

ppm_io_write_ascii

Writes ASCII arrays to an I/O Unit

ppm_io_write_binary

Writes binary arrays to an I/O Unit

Defined Module Subroutines

name description

no subroutines

Interface ppm_doio

Internal routine that performs actual I/O

Subroutines contained in this interface:

name description

ppm_doio_s

Internal routine that performs the actual I/O.

ppm_doio_d

Internal routine that performs the actual I/O.

ppm_doio_i

Internal routine that performs the actual I/O.

ppm_doio_l

Internal routine that performs the actual I/O.

ppm_doio_sc

Internal routine that performs the actual I/O.

ppm_doio_dc

Internal routine that performs the actual I/O.

Interface ppm_io

Performs parallel I/O of scalars and vectors of Fortran intrinsic types

Subroutines contained in this interface:

name description

ppm_io_0ds

Performs parallel I/O (read or write) of real single scalars

ppm_io_0dd

Performs parallel I/O (read or write) of real double scalars

ppm_io_0di

Performs parallel I/O (read or write) of integer scalars

ppm_io_0dl

Performs parallel I/O (read or write) of logical scalars

ppm_io_0dsc

Performs parallel I/O (read or write) of complex single scalars

ppm_io_0ddc

Performs parallel I/O (read or write) of complex double scalars

ppm_io_0dc

Performs parallel I/O (read or write) of character scalars

ppm_io_1ds

Performs parallel I/O (read or write) of real single 1D vectors

ppm_io_1dd

Performs parallel I/O (read or write) of real double 1D vectors

ppm_io_1di

Performs parallel I/O (read or write) of integer 1D vectors

ppm_io_1dl

Performs parallel I/O (read or write) of logical 1D vectors

ppm_io_1dsc

Performs parallel I/O (read or write) of complex single 1D vectors

ppm_io_1ddc

Performs parallel I/O (read or write) of complex double 1D vectors

ppm_io_2ds

Performs parallel I/O (read or write) of real single 2D vectors

ppm_io_2dd

Performs parallel I/O (read or write) of real dbouble 2D vectors

ppm_io_2di

Performs parallel I/O (read or write) of integer 2D vectors

ppm_io_2dl

Performs parallel I/O (read or write) of logical 2D vectors

ppm_io_2dsc

Performs parallel I/O (read or write) of complex single 2D vectors

ppm_io_2ddc

Performs parallel I/O (read or write) of complex double 2D vectors

ppm_io_3ds

Performs parallel I/O (read or write) of real single 3D vectors

ppm_io_3dd

Performs parallel I/O (read or write) of real double 3D vectors

ppm_io_3di

Performs parallel I/O (read or write) of integer 3D vectors

ppm_io_3dl

Performs parallel I/O (read or write) of logical 3D vectors

ppm_io_3dsc

Performs parallel I/O (read or write) of complex single 3D vectors

ppm_io_3ddc

Performs parallel I/O (read or write) of complex double 3D vectors

ppm_io_4ds

Performs parallel I/O (read or write) of real single 4D vectors

ppm_io_4dd

Performs parallel I/O (read or write) of real double 4D vectors

ppm_io_4di

Performs parallel I/O (read or write) of integer 4D vectors

ppm_io_4dl

Performs parallel I/O (read or write) of logical 4D vectors

ppm_io_4dsc

Performs parallel I/O (read or write) of complex single 4D vectors

ppm_io_4ddc

Performs parallel I/O (read or write) of complex double 4D vectors

ppm_io_5ds

Performs parallel I/O (read or write) of real single 5D vectors

ppm_io_5dd

Performs parallel I/O (read or write) of real double 5D vectors

ppm_io_5di

Performs parallel I/O (read or write) of integer 5D vectors

ppm_io_5dl

Performs parallel I/O (read or write) of logical 5D vectors

ppm_io_5dsc

Performs parallel I/O (read or write) of complex single 5D vectors

ppm_io_5ddc

Performs parallel I/O (read or write) of complex double 5D vectors

Interface ppm_io_close

Closes a file

Subroutines contained in this interface:

name description

ppm_io_close

This routine closes an IO channel.

Interface ppm_io_delete

Deletes a file

Subroutines contained in this interface:

name description

ppm_io_delete

This routine deletes a file.

Interface ppm_io_inquire

Inquires the state of a I/O Unit

Subroutines contained in this interface:

name description

ppm_io_inquire

This routine inquires the state of a given ppm I/O unit.

Interface ppm_io_open

Opens a file

Subroutines contained in this interface:

name description

ppm_io_open

This routine opens an IO channel for parallel reading and/or writing

Interface ppm_io_read_ascii

Reads ASCII arrays from an I/O Unit

Subroutines contained in this interface:

name description

io_readascii_s

Provides the atomic reading functionality for ASCII 1D arrays.

io_readascii_d

Provides the atomic reading functionality for ASCII 1D arrays.

io_readascii_i

Provides the atomic reading functionality for ASCII 1D arrays.

io_readascii_l

Provides the atomic reading functionality for ASCII 1D arrays.

io_readascii_sc

Provides the atomic reading functionality for ASCII 1D arrays.

io_readascii_dc

Provides the atomic reading functionality for ASCII 1D arrays.

Interface ppm_io_read_binary

Reads binary arrays from an I/O Unit

Subroutines contained in this interface:

name description

io_readbin_s

Provides the atomic reading functionality for binary 1D arrays.

io_readbin_d

Provides the atomic reading functionality for binary 1D arrays.

io_readbin_i

Provides the atomic reading functionality for binary 1D arrays.

io_readbin_l

Provides the atomic reading functionality for binary 1D arrays.

io_readbin_sc

Provides the atomic reading functionality for binary 1D arrays.

io_readbin_dc

Provides the atomic reading functionality for binary 1D arrays.

Interface ppm_io_set_unit

Sets I/O units for stout, stderr and log file

Subroutines contained in this interface:

name description

ppm_io_set_unit

This routine is called by the user to set the IO

Interface ppm_io_unused_unit

Routine that finds the first unused I/O unit

Subroutines contained in this interface:

name description

ppm_io_unused_unit

This routine finds the next available unit number

Interface ppm_io_write_ascii

Writes ASCII arrays to an I/O Unit

Subroutines contained in this interface:

name description

io_writeascii_s

Provides the atomic writing functionality for ascii 1D arrays.

io_writeascii_d

Provides the atomic writing functionality for ascii 1D arrays.

io_writeascii_i

Provides the atomic writing functionality for ascii 1D arrays.

io_writeascii_l

Provides the atomic writing functionality for ascii 1D arrays.

io_writeascii_sc

Provides the atomic writing functionality for ascii 1D arrays.

io_writeascii_dc

Provides the atomic writing functionality for ascii 1D arrays.

Interface ppm_io_write_binary

Writes binary arrays to an I/O Unit

Subroutines contained in this interface:

name description

io_writebin_s

Provides the atomic writing functionality for binary 1D arrays.

io_writebin_d

Provides the atomic writing functionality for binary 1D arrays.

io_writebin_i

Provides the atomic writing functionality for binary 1D arrays.

io_writebin_l

Provides the atomic writing functionality for binary 1D arrays.

io_writebin_sc

Provides the atomic writing functionality for binary 1D arrays.

io_writebin_dc

Provides the atomic writing functionality for binary 1D arrays.

Subroutine io_readascii_d

Provides the atomic reading functionality for ASCII 1D arrays.

[Note]Note

Never used by the user program directly.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

Fortran I/O unit to be used

adata

real array

(:)

(OUT)

Data vector to be read. 1d array of either single, double,

iofmt

character

(IN)

Format string for I/O. List-directed I/O is used if

lchar

logical

(IN)

.TRUE. if a CHARACTER string is to be read and has to be

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

Fortran I/O unit to be used

adata

real array, (:), (OUT)

Data vector to be read. 1d array of either single, double, single complex, double complex, integer or logical elements. Needs to be allocated to proper size before calling this routine. Its size determines the number of elements read from the file.

iofmt

character, , (IN)

Format string for I/O. List-directed I/O is used if length zero string is given.

lchar

logical, , (IN)

.TRUE. if a CHARACTER string is to be read and has to be converted to an INTEGER array before returning it.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine io_readascii_dc

Provides the atomic reading functionality for ASCII 1D arrays.

[Note]Note

Never used by the user program directly.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

Fortran I/O unit to be used

adata

complex array

(:)

(OUT)

Data vector to be read. 1d array of either single, double,

iofmt

character

(IN)

Format string for I/O. List-directed I/O is used if

lchar

logical

(IN)

.TRUE. if a CHARACTER string is to be read and has to be

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

Fortran I/O unit to be used

adata

complex array, (:), (OUT)

Data vector to be read. 1d array of either single, double, single complex, double complex, integer or logical elements. Needs to be allocated to proper size before calling this routine. Its size determines the number of elements read from the file.

iofmt

character, , (IN)

Format string for I/O. List-directed I/O is used if length zero string is given.

lchar

logical, , (IN)

.TRUE. if a CHARACTER string is to be read and has to be converted to an INTEGER array before returning it.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine io_readascii_i

Provides the atomic reading functionality for ASCII 1D arrays.

[Note]Note

Never used by the user program directly.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

Fortran I/O unit to be used

adata

integer array

(:)

(OUT)

Data vector to be read. 1d array of either single, double,

iofmt

character

(IN)

Format string for I/O. List-directed I/O is used if

lchar

logical

(IN)

.TRUE. if a CHARACTER string is to be read and has to be

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

Fortran I/O unit to be used

adata

integer array, (:), (OUT)

Data vector to be read. 1d array of either single, double, single complex, double complex, integer or logical elements. Needs to be allocated to proper size before calling this routine. Its size determines the number of elements read from the file.

iofmt

character, , (IN)

Format string for I/O. List-directed I/O is used if length zero string is given.

lchar

logical, , (IN)

.TRUE. if a CHARACTER string is to be read and has to be converted to an INTEGER array before returning it.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine io_readascii_l

Provides the atomic reading functionality for ASCII 1D arrays.

[Note]Note

Never used by the user program directly.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

Fortran I/O unit to be used

adata

logical array

(:)

(OUT)

Data vector to be read. 1d array of either single, double,

iofmt

character

(IN)

Format string for I/O. List-directed I/O is used if

lchar

logical

(IN)

.TRUE. if a CHARACTER string is to be read and has to be

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

Fortran I/O unit to be used

adata

logical array, (:), (OUT)

Data vector to be read. 1d array of either single, double, single complex, double complex, integer or logical elements. Needs to be allocated to proper size before calling this routine. Its size determines the number of elements read from the file.

iofmt

character, , (IN)

Format string for I/O. List-directed I/O is used if length zero string is given.

lchar

logical, , (IN)

.TRUE. if a CHARACTER string is to be read and has to be converted to an INTEGER array before returning it.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine io_readascii_s

Provides the atomic reading functionality for ASCII 1D arrays.

[Note]Note

Never used by the user program directly.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

Fortran I/O unit to be used

adata

real array

(:)

(OUT)

Data vector to be read. 1d array of either single, double,

iofmt

character

(IN)

Format string for I/O. List-directed I/O is used if

lchar

logical

(IN)

.TRUE. if a CHARACTER string is to be read and has to be

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

Fortran I/O unit to be used

adata

real array, (:), (OUT)

Data vector to be read. 1d array of either single, double, single complex, double complex, integer or logical elements. Needs to be allocated to proper size before calling this routine. Its size determines the number of elements read from the file.

iofmt

character, , (IN)

Format string for I/O. List-directed I/O is used if length zero string is given.

lchar

logical, , (IN)

.TRUE. if a CHARACTER string is to be read and has to be converted to an INTEGER array before returning it.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine io_readascii_sc

Provides the atomic reading functionality for ASCII 1D arrays.

[Note]Note

Never used by the user program directly.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

Fortran I/O unit to be used

adata

complex array

(:)

(OUT)

Data vector to be read. 1d array of either single, double,

iofmt

character

(IN)

Format string for I/O. List-directed I/O is used if

lchar

logical

(IN)

.TRUE. if a CHARACTER string is to be read and has to be

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

Fortran I/O unit to be used

adata

complex array, (:), (OUT)

Data vector to be read. 1d array of either single, double, single complex, double complex, integer or logical elements. Needs to be allocated to proper size before calling this routine. Its size determines the number of elements read from the file.

iofmt

character, , (IN)

Format string for I/O. List-directed I/O is used if length zero string is given.

lchar

logical, , (IN)

.TRUE. if a CHARACTER string is to be read and has to be converted to an INTEGER array before returning it.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine io_readbin_d

Provides the atomic reading functionality for binary 1D arrays.

[Note]Note

It is never used by the user program directly.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

Fortran I/O unit to be used

adata

real array

(:)

(OUT)

Data vector to be read. 1d array of either single, double,

nrec

integer

(IN)

Length of record to be read

ioprec

integer

(IN)

Precision for I/O. One of:

lchar

logical

(IN)

.TRUE. if a CHARACTER string is to be read and has to be

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

Fortran I/O unit to be used

adata

real array, (:), (OUT)

Data vector to be read. 1d array of either single, double, single complex, double complex, integer or logical elements. Needs to be allocated to proper size before calling this routine. Its size determines the number of elements read from the file.

nrec

integer, , (IN)

Length of record to be read

ioprec

integer, , (IN)

Precision for I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Integer and Logical cases are not influenced by this. No conversions are done if any value other than the above is given.

lchar

logical, , (IN)

.TRUE. if a CHARACTER string is to be read and has to be converted to an INTEGER array before returning it.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_data_io, ppm_module_error, ppm_module_alloc, ppm_module_substop, ppm_module_substart

Subroutine io_readbin_dc

Provides the atomic reading functionality for binary 1D arrays.

[Note]Note

It is never used by the user program directly.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

Fortran I/O unit to be used

adata

complex array

(:)

(OUT)

Data vector to be read. 1d array of either single, double,

nrec

integer

(IN)

Length of record to be read

ioprec

integer

(IN)

Precision for I/O. One of:

lchar

logical

(IN)

.TRUE. if a CHARACTER string is to be read and has to be

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

Fortran I/O unit to be used

adata

complex array, (:), (OUT)

Data vector to be read. 1d array of either single, double, single complex, double complex, integer or logical elements. Needs to be allocated to proper size before calling this routine. Its size determines the number of elements read from the file.

nrec

integer, , (IN)

Length of record to be read

ioprec

integer, , (IN)

Precision for I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Integer and Logical cases are not influenced by this. No conversions are done if any value other than the above is given.

lchar

logical, , (IN)

.TRUE. if a CHARACTER string is to be read and has to be converted to an INTEGER array before returning it.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_data_io, ppm_module_error, ppm_module_alloc, ppm_module_substop, ppm_module_substart

Subroutine io_readbin_i

Provides the atomic reading functionality for binary 1D arrays.

[Note]Note

It is never used by the user program directly.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

Fortran I/O unit to be used

adata

integer array

(:)

(OUT)

Data vector to be read. 1d array of either single, double,

nrec

integer

(IN)

Length of record to be read

ioprec

integer

(IN)

Precision for I/O. One of:

lchar

logical

(IN)

.TRUE. if a CHARACTER string is to be read and has to be

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

Fortran I/O unit to be used

adata

integer array, (:), (OUT)

Data vector to be read. 1d array of either single, double, single complex, double complex, integer or logical elements. Needs to be allocated to proper size before calling this routine. Its size determines the number of elements read from the file.

nrec

integer, , (IN)

Length of record to be read

ioprec

integer, , (IN)

Precision for I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Integer and Logical cases are not influenced by this. No conversions are done if any value other than the above is given.

lchar

logical, , (IN)

.TRUE. if a CHARACTER string is to be read and has to be converted to an INTEGER array before returning it.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_data_io, ppm_module_error, ppm_module_alloc, ppm_module_substop, ppm_module_substart

Subroutine io_readbin_l

Provides the atomic reading functionality for binary 1D arrays.

[Note]Note

It is never used by the user program directly.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

Fortran I/O unit to be used

adata

logical array

(:)

(OUT)

Data vector to be read. 1d array of either single, double,

nrec

integer

(IN)

Length of record to be read

ioprec

integer

(IN)

Precision for I/O. One of:

lchar

logical

(IN)

.TRUE. if a CHARACTER string is to be read and has to be

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

Fortran I/O unit to be used

adata

logical array, (:), (OUT)

Data vector to be read. 1d array of either single, double, single complex, double complex, integer or logical elements. Needs to be allocated to proper size before calling this routine. Its size determines the number of elements read from the file.

nrec

integer, , (IN)

Length of record to be read

ioprec

integer, , (IN)

Precision for I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Integer and Logical cases are not influenced by this. No conversions are done if any value other than the above is given.

lchar

logical, , (IN)

.TRUE. if a CHARACTER string is to be read and has to be converted to an INTEGER array before returning it.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_data_io, ppm_module_error, ppm_module_alloc, ppm_module_substop, ppm_module_substart

Subroutine io_readbin_s

Provides the atomic reading functionality for binary 1D arrays.

[Note]Note

It is never used by the user program directly.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

Fortran I/O unit to be used

adata

real array

(:)

(OUT)

Data vector to be read. 1d array of either single, double,

nrec

integer

(IN)

Length of record to be read

ioprec

integer

(IN)

Precision for I/O. One of:

lchar

logical

(IN)

.TRUE. if a CHARACTER string is to be read and has to be

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

Fortran I/O unit to be used

adata

real array, (:), (OUT)

Data vector to be read. 1d array of either single, double, single complex, double complex, integer or logical elements. Needs to be allocated to proper size before calling this routine. Its size determines the number of elements read from the file.

nrec

integer, , (IN)

Length of record to be read

ioprec

integer, , (IN)

Precision for I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Integer and Logical cases are not influenced by this. No conversions are done if any value other than the above is given.

lchar

logical, , (IN)

.TRUE. if a CHARACTER string is to be read and has to be converted to an INTEGER array before returning it.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_data_io, ppm_module_error, ppm_module_alloc, ppm_module_substop, ppm_module_substart

Subroutine io_readbin_sc

Provides the atomic reading functionality for binary 1D arrays.

[Note]Note

It is never used by the user program directly.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

Fortran I/O unit to be used

adata

complex array

(:)

(OUT)

Data vector to be read. 1d array of either single, double,

nrec

integer

(IN)

Length of record to be read

ioprec

integer

(IN)

Precision for I/O. One of:

lchar

logical

(IN)

.TRUE. if a CHARACTER string is to be read and has to be

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

Fortran I/O unit to be used

adata

complex array, (:), (OUT)

Data vector to be read. 1d array of either single, double, single complex, double complex, integer or logical elements. Needs to be allocated to proper size before calling this routine. Its size determines the number of elements read from the file.

nrec

integer, , (IN)

Length of record to be read

ioprec

integer, , (IN)

Precision for I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Integer and Logical cases are not influenced by this. No conversions are done if any value other than the above is given.

lchar

logical, , (IN)

.TRUE. if a CHARACTER string is to be read and has to be converted to an INTEGER array before returning it.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_data_io, ppm_module_error, ppm_module_alloc, ppm_module_substop, ppm_module_substart

Subroutine io_writeascii_d

Provides the atomic writing functionality for ascii 1D arrays.

[Note]Note

It is never used by the user program directly.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

Fortran I/O unit to be used

adata

real array

(:)

(IN)

Data vector to be read. 1d array of either single, double,

iofmt

character

(IN)

Format string for I/O. List-directed I/O is used if

lchar

logical

(IN)

.TRUE. if the integer array actually is a CHARACTER string

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

Fortran I/O unit to be used

adata

real array, (:), (IN)

Data vector to be read. 1d array of either single, double, single complex, double complex, integer or logical elements. All elements of it will be written.

iofmt

character, , (IN)

Format string for I/O. List-directed I/O is used if length zero string is given.

lchar

logical, , (IN)

TRUE. if the integer array actually is a CHARACTER string. and should be converted back before output.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine io_writeascii_dc

Provides the atomic writing functionality for ascii 1D arrays.

[Note]Note

It is never used by the user program directly.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

Fortran I/O unit to be used

adata

complex array

(:)

(IN)

Data vector to be read. 1d array of either single, double,

iofmt

character

(IN)

Format string for I/O. List-directed I/O is used if

lchar

logical

(IN)

.TRUE. if the integer array actually is a CHARACTER string

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

Fortran I/O unit to be used

adata

complex array, (:), (IN)

Data vector to be read. 1d array of either single, double, single complex, double complex, integer or logical elements. All elements of it will be written.

iofmt

character, , (IN)

Format string for I/O. List-directed I/O is used if length zero string is given.

lchar

logical, , (IN)

TRUE. if the integer array actually is a CHARACTER string. and should be converted back before output.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine io_writeascii_i

Provides the atomic writing functionality for ascii 1D arrays.

[Note]Note

It is never used by the user program directly.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

Fortran I/O unit to be used

adata

integer array

(:)

(IN)

Data vector to be read. 1d array of either single, double,

iofmt

character

(IN)

Format string for I/O. List-directed I/O is used if

lchar

logical

(IN)

.TRUE. if the integer array actually is a CHARACTER string

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

Fortran I/O unit to be used

adata

integer array, (:), (IN)

Data vector to be read. 1d array of either single, double, single complex, double complex, integer or logical elements. All elements of it will be written.

iofmt

character, , (IN)

Format string for I/O. List-directed I/O is used if length zero string is given.

lchar

logical, , (IN)

TRUE. if the integer array actually is a CHARACTER string. and should be converted back before output.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine io_writeascii_l

Provides the atomic writing functionality for ascii 1D arrays.

[Note]Note

It is never used by the user program directly.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

Fortran I/O unit to be used

adata

logical array

(:)

(IN)

Data vector to be read. 1d array of either single, double,

iofmt

character

(IN)

Format string for I/O. List-directed I/O is used if

lchar

logical

(IN)

.TRUE. if the integer array actually is a CHARACTER string

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

Fortran I/O unit to be used

adata

logical array, (:), (IN)

Data vector to be read. 1d array of either single, double, single complex, double complex, integer or logical elements. All elements of it will be written.

iofmt

character, , (IN)

Format string for I/O. List-directed I/O is used if length zero string is given.

lchar

logical, , (IN)

TRUE. if the integer array actually is a CHARACTER string. and should be converted back before output.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine io_writeascii_s

Provides the atomic writing functionality for ascii 1D arrays.

[Note]Note

It is never used by the user program directly.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

Fortran I/O unit to be used

adata

real array

(:)

(IN)

Data vector to be read. 1d array of either single, double,

iofmt

character

(IN)

Format string for I/O. List-directed I/O is used if

lchar

logical

(IN)

.TRUE. if the integer array actually is a CHARACTER string

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

Fortran I/O unit to be used

adata

real array, (:), (IN)

Data vector to be read. 1d array of either single, double, single complex, double complex, integer or logical elements. All elements of it will be written.

iofmt

character, , (IN)

Format string for I/O. List-directed I/O is used if length zero string is given.

lchar

logical, , (IN)

TRUE. if the integer array actually is a CHARACTER string. and should be converted back before output.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine io_writeascii_sc

Provides the atomic writing functionality for ascii 1D arrays.

[Note]Note

It is never used by the user program directly.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

Fortran I/O unit to be used

adata

complex array

(:)

(IN)

Data vector to be read. 1d array of either single, double,

iofmt

character

(IN)

Format string for I/O. List-directed I/O is used if

lchar

logical

(IN)

.TRUE. if the integer array actually is a CHARACTER string

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

Fortran I/O unit to be used

adata

complex array, (:), (IN)

Data vector to be read. 1d array of either single, double, single complex, double complex, integer or logical elements. All elements of it will be written.

iofmt

character, , (IN)

Format string for I/O. List-directed I/O is used if length zero string is given.

lchar

logical, , (IN)

TRUE. if the integer array actually is a CHARACTER string. and should be converted back before output.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine io_writebin_d

Provides the atomic writing functionality for binary 1D arrays.

[Note]Note

It is never used by the user program directly.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

Fortran I/O unit to be used

adata

real array

(:)

(IN)

Data vector to be written. 1d array of either single, double,

ioprec

integer

(IN)

Precision for I/O. One of:

lchar

logical

(IN)

.TRUE. if the integer array actually is a CHARACTER string

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

Fortran I/O unit to be used

adata

real array, (:), (IN)

Data vector to be written. 1d array of either single, double, single complex, double complex, integer or logical elements. All elements of it will be written.

ioprec

integer, , (IN)

Precision for I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Integer and Logical cases are not influenced by this. No conversions are done if any value other than the above is given.

lchar

logical, , (IN)

TRUE. if the integer array actually is a CHARACTER string. and should be converted back before output.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine io_writebin_dc

Provides the atomic writing functionality for binary 1D arrays.

[Note]Note

It is never used by the user program directly.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

Fortran I/O unit to be used

adata

complex array

(:)

(IN)

Data vector to be written. 1d array of either single, double,

ioprec

integer

(IN)

Precision for I/O. One of:

lchar

logical

(IN)

.TRUE. if the integer array actually is a CHARACTER string

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

Fortran I/O unit to be used

adata

complex array, (:), (IN)

Data vector to be written. 1d array of either single, double, single complex, double complex, integer or logical elements. All elements of it will be written.

ioprec

integer, , (IN)

Precision for I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Integer and Logical cases are not influenced by this. No conversions are done if any value other than the above is given.

lchar

logical, , (IN)

TRUE. if the integer array actually is a CHARACTER string. and should be converted back before output.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine io_writebin_i

Provides the atomic writing functionality for binary 1D arrays.

[Note]Note

It is never used by the user program directly.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

Fortran I/O unit to be used

adata

integer array

(:)

(IN)

Data vector to be written. 1d array of either single, double,

ioprec

integer

(IN)

Precision for I/O. One of:

lchar

logical

(IN)

.TRUE. if the integer array actually is a CHARACTER string

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

Fortran I/O unit to be used

adata

integer array, (:), (IN)

Data vector to be written. 1d array of either single, double, single complex, double complex, integer or logical elements. All elements of it will be written.

ioprec

integer, , (IN)

Precision for I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Integer and Logical cases are not influenced by this. No conversions are done if any value other than the above is given.

lchar

logical, , (IN)

TRUE. if the integer array actually is a CHARACTER string. and should be converted back before output.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine io_writebin_l

Provides the atomic writing functionality for binary 1D arrays.

[Note]Note

It is never used by the user program directly.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

Fortran I/O unit to be used

adata

logical array

(:)

(IN)

Data vector to be written. 1d array of either single, double,

ioprec

integer

(IN)

Precision for I/O. One of:

lchar

logical

(IN)

.TRUE. if the integer array actually is a CHARACTER string

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

Fortran I/O unit to be used

adata

logical array, (:), (IN)

Data vector to be written. 1d array of either single, double, single complex, double complex, integer or logical elements. All elements of it will be written.

ioprec

integer, , (IN)

Precision for I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Integer and Logical cases are not influenced by this. No conversions are done if any value other than the above is given.

lchar

logical, , (IN)

TRUE. if the integer array actually is a CHARACTER string. and should be converted back before output.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine io_writebin_s

Provides the atomic writing functionality for binary 1D arrays.

[Note]Note

It is never used by the user program directly.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

Fortran I/O unit to be used

adata

real array

(:)

(IN)

Data vector to be written. 1d array of either single, double,

ioprec

integer

(IN)

Precision for I/O. One of:

lchar

logical

(IN)

.TRUE. if the integer array actually is a CHARACTER string

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

Fortran I/O unit to be used

adata

real array, (:), (IN)

Data vector to be written. 1d array of either single, double, single complex, double complex, integer or logical elements. All elements of it will be written.

ioprec

integer, , (IN)

Precision for I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Integer and Logical cases are not influenced by this. No conversions are done if any value other than the above is given.

lchar

logical, , (IN)

TRUE. if the integer array actually is a CHARACTER string. and should be converted back before output.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine io_writebin_sc

Provides the atomic writing functionality for binary 1D arrays.

[Note]Note

It is never used by the user program directly.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

Fortran I/O unit to be used

adata

complex array

(:)

(IN)

Data vector to be written. 1d array of either single, double,

ioprec

integer

(IN)

Precision for I/O. One of:

lchar

logical

(IN)

.TRUE. if the integer array actually is a CHARACTER string

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

Fortran I/O unit to be used

adata

complex array, (:), (IN)

Data vector to be written. 1d array of either single, double, single complex, double complex, integer or logical elements. All elements of it will be written.

ioprec

integer, , (IN)

Precision for I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Integer and Logical cases are not influenced by this. No conversions are done if any value other than the above is given.

lchar

logical, , (IN)

TRUE. if the integer array actually is a CHARACTER string. and should be converted back before output.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_doio_d

Internal routine that performs the actual I/O. It should never be called by the client program directly, but via ppm_io. It only handles 1D arrays. Everything else is converted to a 1D array by the calling routine ppm_io.

[Caution]Caution

Uses non-blocking MPI to overlap MPI-IO and file-IO. For this reason it needs two buffers. If memory is a problem, using only one and blocking MPI might be better.

[Warning]Warning

This routine uses MPI_Irecv and thus, all buffer arrays need to be ALLOCATABLEs and not POINTERs! Using Fortran90 POINTER structures in conjunction with non-blocking MPI_Irecv does NOT WORK! (see http://parallel.ru/docs/Parallel/mpi2/node236.html)

[Note]Note

This routine makes use of MPI_Cancel to cancel pending send and receive actions when an I/O error occured on Root. Canceling a send action is expensive and only supported in versions newer than mpich 1.2.0.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

real array

(:)

(INOUT)

Data to be written/read.

actn

integer

(IN)

I/O action. One of: ppm_param_io_read/ppm_param_io_write

dist

integer

(IN)

I/O distribution.

iofmt

character

(IN)

Format string (for ASCII I/O). List-directed I/O is used if

ioprec

integer

(IN)

Precision for binary I/O.

lchar

logical

(IN)

.TRUE. if the integer vector actually corresponds to a character

mptag

integer

(IN)

MPI tag to be used for this I/O.

info

integer

(OUT)

Returns 0 upon success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

real array, (:), (INOUT)

Data to be written/read.

actn

integer, , (IN)

I/O action. One of: ppm_param_io_read/ppm_param_io_write

dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

For write one of:

  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum
iofmt

character, , (IN)

Format string (for ASCII I/O). List-directed I/O is used if string of length 0 is given.

ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double
  • ppm_param_undefined

If undefined is given, no conversion is done.

lchar

logical, , (IN)

.TRUE. if the integer vector actually corresponds to a character string. In this case the string will be converted back to characters before it is written out. .FALSE. if it is a true INTEGER vector.

mptag

integer, , (IN)

MPI tag to be used for this I/O.

info

integer, , (OUT)

Returns 0 upon success

Used Modules

ppm_module_data, ppm_module_data_io, ppm_module_error, ppm_module_alloc, ppm_module_substop, ppm_module_write, ppm_module_substart

Subroutine ppm_doio_dc

Internal routine that performs the actual I/O. It should never be called by the client program directly, but via ppm_io. It only handles 1D arrays. Everything else is converted to a 1D array by the calling routine ppm_io.

[Caution]Caution

Uses non-blocking MPI to overlap MPI-IO and file-IO. For this reason it needs two buffers. If memory is a problem, using only one and blocking MPI might be better.

[Warning]Warning

This routine uses MPI_Irecv and thus, all buffer arrays need to be ALLOCATABLEs and not POINTERs! Using Fortran90 POINTER structures in conjunction with non-blocking MPI_Irecv does NOT WORK! (see http://parallel.ru/docs/Parallel/mpi2/node236.html)

[Note]Note

This routine makes use of MPI_Cancel to cancel pending send and receive actions when an I/O error occured on Root. Canceling a send action is expensive and only supported in versions newer than mpich 1.2.0.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

complex array

(:)

(INOUT)

Data to be written/read.

actn

integer

(IN)

I/O action. One of: ppm_param_io_read/ppm_param_io_write

dist

integer

(IN)

I/O distribution.

iofmt

character

(IN)

Format string (for ASCII I/O). List-directed I/O is used if

ioprec

integer

(IN)

Precision for binary I/O.

lchar

logical

(IN)

.TRUE. if the integer vector actually corresponds to a character

mptag

integer

(IN)

MPI tag to be used for this I/O.

info

integer

(OUT)

Returns 0 upon success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

complex array, (:), (INOUT)

Data to be written/read.

actn

integer, , (IN)

I/O action. One of: ppm_param_io_read/ppm_param_io_write

dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

For write one of:

  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum
iofmt

character, , (IN)

Format string (for ASCII I/O). List-directed I/O is used if string of length 0 is given.

ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double
  • ppm_param_undefined

If undefined is given, no conversion is done.

lchar

logical, , (IN)

.TRUE. if the integer vector actually corresponds to a character string. In this case the string will be converted back to characters before it is written out. .FALSE. if it is a true INTEGER vector.

mptag

integer, , (IN)

MPI tag to be used for this I/O.

info

integer, , (OUT)

Returns 0 upon success

Used Modules

ppm_module_data, ppm_module_data_io, ppm_module_error, ppm_module_alloc, ppm_module_substop, ppm_module_write, ppm_module_substart

Subroutine ppm_doio_i

Internal routine that performs the actual I/O. It should never be called by the client program directly, but via ppm_io. It only handles 1D arrays. Everything else is converted to a 1D array by the calling routine ppm_io.

[Caution]Caution

Uses non-blocking MPI to overlap MPI-IO and file-IO. For this reason it needs two buffers. If memory is a problem, using only one and blocking MPI might be better.

[Warning]Warning

This routine uses MPI_Irecv and thus, all buffer arrays need to be ALLOCATABLEs and not POINTERs! Using Fortran90 POINTER structures in conjunction with non-blocking MPI_Irecv does NOT WORK! (see http://parallel.ru/docs/Parallel/mpi2/node236.html)

[Note]Note

This routine makes use of MPI_Cancel to cancel pending send and receive actions when an I/O error occured on Root. Canceling a send action is expensive and only supported in versions newer than mpich 1.2.0.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

integer array

(:)

(INOUT)

Data to be written/read.

actn

integer

(IN)

I/O action. One of: ppm_param_io_read/ppm_param_io_write

dist

integer

(IN)

I/O distribution.

iofmt

character

(IN)

Format string (for ASCII I/O). List-directed I/O is used if

ioprec

integer

(IN)

Precision for binary I/O.

lchar

logical

(IN)

.TRUE. if the integer vector actually corresponds to a character

mptag

integer

(IN)

MPI tag to be used for this I/O.

info

integer

(OUT)

Returns 0 upon success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

integer array, (:), (INOUT)

Data to be written/read.

actn

integer, , (IN)

I/O action. One of: ppm_param_io_read/ppm_param_io_write

dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

For write one of:

  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum
iofmt

character, , (IN)

Format string (for ASCII I/O). List-directed I/O is used if string of length 0 is given.

ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double
  • ppm_param_undefined

If undefined is given, no conversion is done.

lchar

logical, , (IN)

.TRUE. if the integer vector actually corresponds to a character string. In this case the string will be converted back to characters before it is written out. .FALSE. if it is a true INTEGER vector.

mptag

integer, , (IN)

MPI tag to be used for this I/O.

info

integer, , (OUT)

Returns 0 upon success

Used Modules

ppm_module_data, ppm_module_data_io, ppm_module_error, ppm_module_alloc, ppm_module_substop, ppm_module_write, ppm_module_substart

Subroutine ppm_doio_l

Internal routine that performs the actual I/O. It should never be called by the client program directly, but via ppm_io. It only handles 1D arrays. Everything else is converted to a 1D array by the calling routine ppm_io.

[Caution]Caution

Uses non-blocking MPI to overlap MPI-IO and file-IO. For this reason it needs two buffers. If memory is a problem, using only one and blocking MPI might be better.

[Warning]Warning

This routine uses MPI_Irecv and thus, all buffer arrays need to be ALLOCATABLEs and not POINTERs! Using Fortran90 POINTER structures in conjunction with non-blocking MPI_Irecv does NOT WORK! (see http://parallel.ru/docs/Parallel/mpi2/node236.html)

[Note]Note

This routine makes use of MPI_Cancel to cancel pending send and receive actions when an I/O error occured on Root. Canceling a send action is expensive and only supported in versions newer than mpich 1.2.0.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

logical array

(:)

(INOUT)

Data to be written/read.

actn

integer

(IN)

I/O action. One of: ppm_param_io_read/ppm_param_io_write

dist

integer

(IN)

I/O distribution.

iofmt

character

(IN)

Format string (for ASCII I/O). List-directed I/O is used if

ioprec

integer

(IN)

Precision for binary I/O.

lchar

logical

(IN)

.TRUE. if the integer vector actually corresponds to a character

mptag

integer

(IN)

MPI tag to be used for this I/O.

info

integer

(OUT)

Returns 0 upon success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

logical array, (:), (INOUT)

Data to be written/read.

actn

integer, , (IN)

I/O action. One of: ppm_param_io_read/ppm_param_io_write

dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

For write one of:

  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum
iofmt

character, , (IN)

Format string (for ASCII I/O). List-directed I/O is used if string of length 0 is given.

ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double
  • ppm_param_undefined

If undefined is given, no conversion is done.

lchar

logical, , (IN)

.TRUE. if the integer vector actually corresponds to a character string. In this case the string will be converted back to characters before it is written out. .FALSE. if it is a true INTEGER vector.

mptag

integer, , (IN)

MPI tag to be used for this I/O.

info

integer, , (OUT)

Returns 0 upon success

Used Modules

ppm_module_data, ppm_module_data_io, ppm_module_error, ppm_module_alloc, ppm_module_substop, ppm_module_write, ppm_module_substart

Subroutine ppm_doio_s

Internal routine that performs the actual I/O. It should never be called by the client program directly, but via ppm_io. It only handles 1D arrays. Everything else is converted to a 1D array by the calling routine ppm_io.

[Caution]Caution

Uses non-blocking MPI to overlap MPI-IO and file-IO. For this reason it needs two buffers. If memory is a problem, using only one and blocking MPI might be better.

[Warning]Warning

This routine uses MPI_Irecv and thus, all buffer arrays need to be ALLOCATABLEs and not POINTERs! Using Fortran90 POINTER structures in conjunction with non-blocking MPI_Irecv does NOT WORK! (see http://parallel.ru/docs/Parallel/mpi2/node236.html)

[Note]Note

This routine makes use of MPI_Cancel to cancel pending send and receive actions when an I/O error occured on Root. Canceling a send action is expensive and only supported in versions newer than mpich 1.2.0.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

real array

(:)

(INOUT)

Data to be written/read.

actn

integer

(IN)

I/O action. One of: ppm_param_io_read/ppm_param_io_write

dist

integer

(IN)

I/O distribution.

iofmt

character

(IN)

Format string (for ASCII I/O). List-directed I/O is used if

ioprec

integer

(IN)

Precision for binary I/O.

lchar

logical

(IN)

.TRUE. if the integer vector actually corresponds to a character

mptag

integer

(IN)

MPI tag to be used for this I/O.

info

integer

(OUT)

Returns 0 upon success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

real array, (:), (INOUT)

Data to be written/read.

actn

integer, , (IN)

I/O action. One of: ppm_param_io_read/ppm_param_io_write

dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

For write one of:

  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum
iofmt

character, , (IN)

Format string (for ASCII I/O). List-directed I/O is used if string of length 0 is given.

ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double
  • ppm_param_undefined

If undefined is given, no conversion is done.

lchar

logical, , (IN)

.TRUE. if the integer vector actually corresponds to a character string. In this case the string will be converted back to characters before it is written out. .FALSE. if it is a true INTEGER vector.

mptag

integer, , (IN)

MPI tag to be used for this I/O.

info

integer, , (OUT)

Returns 0 upon success

Used Modules

ppm_module_data, ppm_module_data_io, ppm_module_error, ppm_module_alloc, ppm_module_substop, ppm_module_write, ppm_module_substart

Subroutine ppm_doio_sc

Internal routine that performs the actual I/O. It should never be called by the client program directly, but via ppm_io. It only handles 1D arrays. Everything else is converted to a 1D array by the calling routine ppm_io.

[Caution]Caution

Uses non-blocking MPI to overlap MPI-IO and file-IO. For this reason it needs two buffers. If memory is a problem, using only one and blocking MPI might be better.

[Warning]Warning

This routine uses MPI_Irecv and thus, all buffer arrays need to be ALLOCATABLEs and not POINTERs! Using Fortran90 POINTER structures in conjunction with non-blocking MPI_Irecv does NOT WORK! (see http://parallel.ru/docs/Parallel/mpi2/node236.html)

[Note]Note

This routine makes use of MPI_Cancel to cancel pending send and receive actions when an I/O error occured on Root. Canceling a send action is expensive and only supported in versions newer than mpich 1.2.0.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

complex array

(:)

(INOUT)

Data to be written/read.

actn

integer

(IN)

I/O action. One of: ppm_param_io_read/ppm_param_io_write

dist

integer

(IN)

I/O distribution.

iofmt

character

(IN)

Format string (for ASCII I/O). List-directed I/O is used if

ioprec

integer

(IN)

Precision for binary I/O.

lchar

logical

(IN)

.TRUE. if the integer vector actually corresponds to a character

mptag

integer

(IN)

MPI tag to be used for this I/O.

info

integer

(OUT)

Returns 0 upon success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

complex array, (:), (INOUT)

Data to be written/read.

actn

integer, , (IN)

I/O action. One of: ppm_param_io_read/ppm_param_io_write

dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

For write one of:

  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum
iofmt

character, , (IN)

Format string (for ASCII I/O). List-directed I/O is used if string of length 0 is given.

ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double
  • ppm_param_undefined

If undefined is given, no conversion is done.

lchar

logical, , (IN)

.TRUE. if the integer vector actually corresponds to a character string. In this case the string will be converted back to characters before it is written out. .FALSE. if it is a true INTEGER vector.

mptag

integer, , (IN)

MPI tag to be used for this I/O.

info

integer, , (OUT)

Returns 0 upon success

Used Modules

ppm_module_data, ppm_module_data_io, ppm_module_error, ppm_module_alloc, ppm_module_substop, ppm_module_write, ppm_module_substart

Subroutine ppm_io_0dc

Performs parallel I/O (read or write) of character scalars on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

character

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

character, , (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_0dd

Performs parallel I/O (read or write) of real double scalars on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

real

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

real, , (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_0ddc

Performs parallel I/O (read or write) of complex double scalars on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

complex

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

complex, , (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_0di

Performs parallel I/O (read or write) of integer scalars on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

integer

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

integer, , (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_0dl

Performs parallel I/O (read or write) of logical scalars on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

logical

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

logical, , (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_0ds

Performs parallel I/O (read or write) of real single scalars on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

real

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

real, , (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_0dsc

Performs parallel I/O (read or write) of complex single scalars on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

complex

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

complex, , (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_1dd

Performs parallel I/O (read or write) of real double 1D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

real array

(:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

real array, (:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_1ddc

Performs parallel I/O (read or write) of complex double 1D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

complex array

(:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

complex array, (:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_1di

Performs parallel I/O (read or write) of integer 1D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

integer array

(:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

integer array, (:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_1dl

Performs parallel I/O (read or write) of logical 1D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

logical array

(:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

logical array, (:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_1ds

Performs parallel I/O (read or write) of real single 1D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

real array

(:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

real array, (:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_1dsc

Performs parallel I/O (read or write) of complex single 1D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

complex array

(:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

complex array, (:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_2dd

Performs parallel I/O (read or write) of real dbouble 2D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

real array

(:,:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

real array, (:,:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_2ddc

Performs parallel I/O (read or write) of complex double 2D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

complex array

(:,:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

complex array, (:,:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_2di

Performs parallel I/O (read or write) of integer 2D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

integer array

(:,:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

integer array, (:,:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_2dl

Performs parallel I/O (read or write) of logical 2D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

logical array

(:,:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

logical array, (:,:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_2ds

Performs parallel I/O (read or write) of real single 2D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

real array

(:,:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

real array, (:,:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_2dsc

Performs parallel I/O (read or write) of complex single 2D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

complex array

(:,:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

complex array, (:,:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_3dd

Performs parallel I/O (read or write) of real double 3D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

real array

(:,:,:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

real array, (:,:,:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_3ddc

Performs parallel I/O (read or write) of complex double 3D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

complex array

(:,:,:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

complex array, (:,:,:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_3di

Performs parallel I/O (read or write) of integer 3D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

integer array

(:,:,:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

integer array, (:,:,:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_3dl

Performs parallel I/O (read or write) of logical 3D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

logical array

(:,:,:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

logical array, (:,:,:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_3ds

Performs parallel I/O (read or write) of real single 3D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

real array

(:,:,:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

real array, (:,:,:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_3dsc

Performs parallel I/O (read or write) of complex single 3D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

complex array

(:,:,:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

complex array, (:,:,:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_4dd

Performs parallel I/O (read or write) of real double 4D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

real array

(:,:,:,:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

real array, (:,:,:,:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_4ddc

Performs parallel I/O (read or write) of complex double 4D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

complex array

(:,:,:,:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

complex array, (:,:,:,:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_4di

Performs parallel I/O (read or write) of integer 4D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

integer array

(:,:,:,:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

integer array, (:,:,:,:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_4dl

Performs parallel I/O (read or write) of logical 4D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

logical array

(:,:,:,:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

logical array, (:,:,:,:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_4ds

Performs parallel I/O (read or write) of real single 4D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

real array

(:,:,:,:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

real array, (:,:,:,:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_4dsc

Performs parallel I/O (read or write) of complex single 4D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

complex array

(:,:,:,:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

complex array, (:,:,:,:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_5dd

Performs parallel I/O (read or write) of real double 5D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

real array

(:,:,:,:,:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

real array, (:,:,:,:,:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_5ddc

Performs parallel I/O (read or write) of complex double 5D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

complex array

(:,:,:,:,:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

complex array, (:,:,:,:,:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_5di

Performs parallel I/O (read or write) of integer 5D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

integer array

(:,:,:,:,:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

integer array, (:,:,:,:,:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_5dl

Performs parallel I/O (read or write) of logical 5D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

logical array

(:,:,:,:,:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

logical array, (:,:,:,:,:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_5ds

Performs parallel I/O (read or write) of real single 5D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

real array

(:,:,:,:,:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

real array, (:,:,:,:,:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_5dsc

Performs parallel I/O (read or write) of complex single 5D vectors on a distributed or centralized unit opened with ppm_io_open.

[Note]Note

Many arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_io(20,xp,ACTN=ppm_param_io_read,STAT=info)

[Warning]Warning

RESHAPE operates on the stack, so on machines with limited stack size this limits the max possible data size. Therefore we use DO loops (not slower) to emain on the heap. On vector machines we still use RESHAPE because it is faster.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

I/O unit (as returned by ppm_io_open).

adata

complex array

(:,:,:,:,:)

(INOUT)

data to be written/read. Overloaded types are: single,

actn

integer

(IN)

X

I/O action. One of:

dist

integer

(IN)

X

I/O distribution. For read one of:

iofmt

character

(IN)

X

Format string (for ASCII I/O). Default is (*)

ioprec

integer

(IN)

X

Precision for binary I/O. One of:

stat

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

I/O unit (as returned by ppm_io_open).

adata

complex array, (:,:,:,:,:), (INOUT)

data to be written/read. Overloaded types are: single, double, integer, single complex, double complex, logical, character. Can be either scalar, 1d, 2d, 3d, 4d or 5d. Character strings can only be scalar (i.e. no array of strings).

(Optional) actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_read
  • ppm_param_io_write

If not specified, default is ppm_param_io_read

(Optional) dist

integer, , (IN)

I/O distribution. For read one of:

  • ppm_param_io_same
  • ppm_param_io_split

If not specified, default is ppm_param_io_same.

For write one of:
  • ppm_param_io_root
  • ppm_param_io_concat
  • ppm_param_io_sum

If not specified, default is ppm_param_io_concat

(Optional) iofmt

character, , (IN)

Format string (for ASCII I/O). Default is (*)

(Optional) ioprec

integer, , (IN)

Precision for binary I/O. One of:

  • ppm_param_io_single
  • ppm_param_io_double

Default is leave-as-is.

stat

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_close

This routine closes an IO channel.

Arguments

name type dimension intent optional description

iunit

integer

(IN)

IO unit to be closed.

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (IN)

IO unit to be closed.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_data_io, ppm_module_error, ppm_module_alloc, ppm_module_substop, ppm_module_write, ppm_module_substart

Subroutine ppm_io_delete

This routine deletes a file.

Arguments

name type dimension intent optional description

filename

character

(IN)

Name of the file to be deleted

mode

integer

(IN)

I/O mode. One of:

info

integer

(OUT)

Return status, 0 on success

filename

character, , (IN)

Name of the file to be deleted

mode

integer, , (IN)

I/O mode. One of:

  • ppm_param_io_distributed
  • ppm_param_io_centralized

In the distributed mode, every processor deletes the file locally. In the centralized mode, only processor 0 deletes the file.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_inquire

This routine inquires the state of a given ppm I/O unit.

[Note]Note

All output arguments are optional. It is adivised to use explicit argument naming when using this routine. Example:

CALL ppm_inquire(20,MODE=imode,STAT=info)

Arguments

name type dimension intent optional description

iunit

integer

(IN)

IO unit to be inquired

isopen

logical

(OUT)

Either:

mode

integer

(OUT)

I/O mode. One of:

pfmt

integer

(OUT)

I/O format. One of:

stat

integer

(OUT)

Return code. 0 on success.

iunit

integer, , (IN)

IO unit to be inquired

isopen

logical, , (OUT)

Either:

  • .TRUE. if the unit is open on the local processor.
  • .FALSE. otherwise
mode

integer, , (OUT)

I/O mode. One of:

  • ppm_param_io_centralized
  • ppm_param_io_distributed
  • ppm_param_undefined
pfmt

integer, , (OUT)

I/O format. One of:

  • ppm_param_io_ascii
  • ppm_param_io_binary
  • ppm_param_undefined
stat

integer, , (OUT)

Return code. 0 on success.

Used Modules

ppm_module_data, ppm_module_data_io, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_io_open

This routine opens an IO channel for parallel reading and/or writing and associates the given I/O unit with the file indicated.

[Note]Note

There are lots of MPI_Allreduce and MPI_Bcast used for the processors to negotiate a unit number and catch all errors. There must be a cheaper way of doing this…

Arguments

name type dimension intent optional description

iunit

integer

(INOUT)

Fortran IO unit to be used. If -1 is given on input, the

filename

character

(IN)

Name of the file to which IO refers

actn

integer

(IN)

I/O action. One of:

posn

integer

(IN)

Position for I/O in file. This is only relavent for writing

pfmt

integer

(IN)

Format of I/O. One of:

pmode

integer

(IN)

Parallel mode. Specifies whether every processor writes its data

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (INOUT)

Fortran IO unit to be used. If -1 is given on input, the routine will find an unused unit and return it here.

filename

character, , (IN)

Name of the file to which IO refers

actn

integer, , (IN)

I/O action. One of:

  • ppm_param_io_write
  • ppm_param_io_read
  • ppm_param_io_read_write
posn

integer, , (IN)

Position for I/O in file. This is only relavent for writing action. One of:

  • ppm_param_io_replace
  • ppm_param_io_append
pfmt

integer, , (IN)

Format of I/O. One of:

  • ppm_param_io_ascii
  • ppm_param_io_binary
pmode

integer, , (IN)

Parallel mode. Specifies whether every processor writes its data to a local file or if all data is routed to rank 0, which is writing everything into one single file. One of:

  • ppm_param_io_distributed
  • ppm_param_io_centralized
info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_data_io, ppm_module_error, ppm_module_alloc, ppm_module_substop, ppm_module_write, ppm_module_substart

Subroutine ppm_io_set_unit

This routine is called by the user to set the IO units for stdout, stderr and log file as used by ppm_error, ppm_log and ppm_write.

[Note]Note

Any unit can be given a negative number in which case the corresponding output is supressed.

[Caution]Caution

If units are files, the files are automatically opened and replaced.

Arguments

name type dimension intent optional description

stdout

integer

(IN)

X

Unit number for stdout

stderr

integer

(IN)

X

Unit number for stderr

logfile

integer

(IN)

X

Unit number for logfile

info

integer

(OUT)

Return status, 0 on success

(Optional) stdout

integer, , (IN)

Unit number for stdout

(Optional) stderr

integer, , (IN)

Unit number for stderr

(Optional) logfile

integer, , (IN)

Unit number for logfile

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data

Subroutine ppm_io_unused_unit

This routine finds the next available unit number starting from the given one and counting upwards.

Arguments

name type dimension intent optional description

iunit

integer

(INOUT)

On input: starting number.

info

integer

(OUT)

Return status, 0 on success

iunit

integer, , (INOUT)

On input: starting number.

On output: next free unit number.

-1 is returned if no free unit number .LE. 255 was found.

info

integer, , (OUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_substop, ppm_module_substart

Defined Module Variables

name type dimension description

no variables

Used Modules

ppm_module_data