pFIO_UnlimitedEntityMod Module

MODULE: pFIO_UnlimitedEntityMod

Author: GMAO SI-Team

The module pFIO_UnlimitedEntityMod encapsulates notion of variable UnlimitedEntitys.

CFIO_AtttributeMod is a support layer for the CFIO package and which implements encapsulates variable UnlimitedEntitys ala NetCDF. An UnlimitedEntity can be any Fortan kind/type and can either be a scalar or a 1-dimensional vector. (Strings can only be scalars.)

While some functionality exists for containing non-intrinsic types (e.g., user defined types), the primary intended use is for establishing correspondence with intrinsic types stored in files.


Uses

  • module~~pfio_unlimitedentitymod~~UsesGraph module~pfio_unlimitedentitymod pFIO_UnlimitedEntityMod iso_fortran_env iso_fortran_env module~pfio_unlimitedentitymod->iso_fortran_env module~mapl_exceptionhandling MAPL_ExceptionHandling module~pfio_unlimitedentitymod->module~mapl_exceptionhandling module~pfio_constantsmod pFIO_ConstantsMod module~pfio_unlimitedentitymod->module~pfio_constantsmod module~pfio_utilitiesmod pFIO_UtilitiesMod module~pfio_unlimitedentitymod->module~pfio_utilitiesmod module~mapl_errorhandlingmod MAPL_ErrorHandlingMod module~mapl_exceptionhandling->module~mapl_errorhandlingmod module~mapl_throwmod MAPL_ThrowMod module~mapl_exceptionhandling->module~mapl_throwmod module~pfio_utilitiesmod->iso_fortran_env module~pfio_utilitiesmod->module~mapl_exceptionhandling module~pfio_utilitiesmod->module~pfio_constantsmod iso_c_binding iso_c_binding module~pfio_utilitiesmod->iso_c_binding module~mapl_errorhandlingmod->module~mapl_throwmod mpi mpi module~mapl_errorhandlingmod->mpi

Used by

  • module~~pfio_unlimitedentitymod~~UsedByGraph module~pfio_unlimitedentitymod pFIO_UnlimitedEntityMod module~pfio pFIO module~pfio->module~pfio_unlimitedentitymod module~pfio_attributemod pFIO_AttributeMod module~pfio_attributemod->module~pfio_unlimitedentitymod module~pfio_filemetadatamod pFIO_FileMetadataMod module~pfio_filemetadatamod->module~pfio_unlimitedentitymod module~pfio_netcdf4_fileformattermod pFIO_NetCDF4_FileFormatterMod module~pfio_netcdf4_fileformattermod->module~pfio_unlimitedentitymod module~pfio_stringunlimitedentitymapmod pFIO_StringUnlimitedEntityMapMod module~pfio_stringunlimitedentitymapmod->module~pfio_unlimitedentitymod module~pfio_stringunlimitedentitymaputilmod pFIO_StringUnlimitedEntityMapUtilMod module~pfio_stringunlimitedentitymaputilmod->module~pfio_unlimitedentitymod module~pfio_variablemod pFIO_VariableMod module~pfio_variablemod->module~pfio_unlimitedentitymod module~test_unlimitedentity Test_UnlimitedEntity module~test_unlimitedentity->module~pfio_unlimitedentitymod module~test_variable Test_Variable module~test_variable->module~pfio_unlimitedentitymod program~main~8 main program~main~8->module~pfio_unlimitedentitymod

Interfaces

public interface UnlimitedEntity

  • private function new_UnlimitedEntity_empty() result(attr)

    Arguments

    None

    Return Value type(UnlimitedEntity)

  • private function new_UnlimitedEntity_0d(value, rc) result(attr)

    Arguments

    Type IntentOptional Attributes Name
    class(*), intent(in) :: value
    integer, intent(out), optional :: rc

    Return Value type(UnlimitedEntity)

  • private function new_UnlimitedEntity_1d(values, rc) result(attr)

    Arguments

    Type IntentOptional Attributes Name
    class(*), intent(in) :: values(:)
    integer, intent(out), optional :: rc

    Return Value type(UnlimitedEntity)

  • private function new_UnlimitedEntity_2d(values, rc) result(attr)

    Arguments

    Type IntentOptional Attributes Name
    class(*), intent(in) :: values(:,:)
    integer, intent(out), optional :: rc

    Return Value type(UnlimitedEntity)

  • private function new_UnlimitedEntity_3d(values, rc) result(attr)

    Arguments

    Type IntentOptional Attributes Name
    class(*), intent(in) :: values(:,:,:)
    integer, intent(out), optional :: rc

    Return Value type(UnlimitedEntity)

  • private function new_UnlimitedEntity_4d(values, rc) result(attr)

    Arguments

    Type IntentOptional Attributes Name
    class(*), intent(in) :: values(:,:,:,:)
    integer, intent(out), optional :: rc

    Return Value type(UnlimitedEntity)

  • private function new_UnlimitedEntity_5d(values, rc) result(attr)

    Arguments

    Type IntentOptional Attributes Name
    class(*), intent(in) :: values(:,:,:,:,:)
    integer, intent(out), optional :: rc

    Return Value type(UnlimitedEntity)


Derived Types

type, public ::  StringWrap

This derived type is a workaround for sporadic Intel Fortran issues when accessing strings through unlimited polymorphic entities.

Components

Type Visibility Attributes Name Initial
character(len=:), public, allocatable :: value

type, public ::  UnlimitedEntity

Constructor

private function new_UnlimitedEntity_empty ()
private function new_UnlimitedEntity_0d (value, rc)
private function new_UnlimitedEntity_1d (values, rc)
private function new_UnlimitedEntity_2d (values, rc)
private function new_UnlimitedEntity_3d (values, rc)
private function new_UnlimitedEntity_4d (values, rc)
private function new_UnlimitedEntity_5d (values, rc)

Type-Bound Procedures

procedure, public :: destroy
procedure, public :: equal
procedure, public :: get_rank
procedure, public :: get_shape
procedure, public :: get_string
procedure, public :: get_value
procedure, public :: get_values
procedure, public :: is_empty
procedure, public :: not_equal
generic, public :: operator(/=) => not_equal
generic, public :: operator(==) => equal
procedure, public :: serialize
procedure, public :: set

Subroutines

public subroutine UnlimitedEntity_deserialize(buffer, this, rc)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: buffer(:)
type(UnlimitedEntity), intent(inout) :: this
integer, intent(out), optional :: rc