From 92072fa2a332275c40ef7af17064ff21fb87595a Mon Sep 17 00:00:00 2001 From: rouson Date: Fri, 8 Nov 2024 21:55:05 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20Berkeley?= =?UTF-8?q?Lab/assert@1c6062079ad7f9752e53404bd85fae77576f657e=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lists/files.html | 166 +++++++++++++------------- lists/modules.html | 130 ++++++++++---------- lists/procedures.html | 160 ++++++++++++------------- lists/types.html | 20 ++-- module/assert_m.html | 82 ++++++------- module/characterizable_m.html | 80 ++++++------- module/intrinsic_array_s.html | 94 +++++++-------- sourcefile/assert_m.f90.html | 72 +++++------ sourcefile/characterizable_m.f90.html | 4 +- sourcefile/intrinsic_array_s.f90.html | 40 +++---- tipuesearch/tipuesearch_content.js | 2 +- 11 files changed, 425 insertions(+), 425 deletions(-) diff --git a/lists/files.html b/lists/files.html index 012200b..4471b32 100644 --- a/lists/files.html +++ b/lists/files.html @@ -98,127 +98,127 @@

Source Files

- - + + file~~graph~~FileGraph - - + + -sourcefile~assert_subroutine_m.f90 - - -assert_subroutine_m.F90 - - - - - -sourcefile~assert_subroutine_s.f90 - - -assert_subroutine_s.F90 +sourcefile~characterizable_m.f90 + + +characterizable_m.f90 - - -sourcefile~assert_subroutine_m.f90->sourcefile~assert_subroutine_s.f90 - - - - + sourcefile~assert_m.f90 - - -assert_m.f90 + + +assert_m.f90 - - -sourcefile~assert_subroutine_m.f90->sourcefile~assert_m.f90 - - + + +sourcefile~characterizable_m.f90->sourcefile~assert_m.f90 + + - - -sourcefile~string_m.f90 - - -string_m.f90 + + +sourcefile~intrinsic_array_m.f90 + + +intrinsic_array_m.F90 - - -sourcefile~string_m.f90->sourcefile~assert_m.f90 - - + + +sourcefile~characterizable_m.f90->sourcefile~intrinsic_array_m.f90 + + - - -sourcefile~characterizable_m.f90 - - -characterizable_m.f90 + + +sourcefile~assert_subroutine_s.f90 + + +assert_subroutine_s.F90 - + sourcefile~characterizable_m.f90->sourcefile~assert_subroutine_s.f90 - - - - - -sourcefile~characterizable_m.f90->sourcefile~assert_m.f90 - - + + - - -sourcefile~intrinsic_array_m.f90 - - -intrinsic_array_m.F90 + + +sourcefile~string_m.f90 + + +string_m.f90 - - -sourcefile~characterizable_m.f90->sourcefile~intrinsic_array_m.f90 - - + + +sourcefile~string_m.f90->sourcefile~assert_m.f90 + + - + sourcefile~intrinsic_array_s.f90 - - -intrinsic_array_s.F90 + + +intrinsic_array_s.F90 - + sourcefile~assert_m.f90->sourcefile~intrinsic_array_s.f90 - - + + - + sourcefile~intrinsic_array_m.f90->sourcefile~intrinsic_array_s.f90 - - + + - + sourcefile~intrinsic_array_m.f90->sourcefile~assert_m.f90 - - + + + + + +sourcefile~assert_subroutine_m.f90 + + +assert_subroutine_m.F90 + + + + + +sourcefile~assert_subroutine_m.f90->sourcefile~assert_m.f90 + + + + + +sourcefile~assert_subroutine_m.f90->sourcefile~assert_subroutine_s.f90 + + diff --git a/lists/modules.html b/lists/modules.html index a842efa..49510ca 100644 --- a/lists/modules.html +++ b/lists/modules.html @@ -105,116 +105,116 @@

Modules

module~~graph~~ModuleGraph - - -module~assert_subroutine_m - - -assert_subroutine_m - - - - + module~characterizable_m - - -characterizable_m + + +characterizable_m - + module~string_m - + string_m - - -module~assert_subroutine_s - - -assert_subroutine_s - - - - - -module~assert_subroutine_s->module~assert_subroutine_m - - - - + module~intrinsic_array_s - - -intrinsic_array_s + + +intrinsic_array_s - + module~assert_m - - -assert_m + + +assert_m - + module~intrinsic_array_s->module~assert_m - - + + - + module~intrinsic_array_m - - -intrinsic_array_m + + +intrinsic_array_m - + module~intrinsic_array_s->module~intrinsic_array_m - - + + - - -module~assert_m->module~assert_subroutine_m - - + + +module~assert_subroutine_s + + +assert_subroutine_s + + + + + +module~assert_subroutine_m + + +assert_subroutine_m + + + + + +module~assert_subroutine_s->module~assert_subroutine_m + + - + module~assert_m->module~characterizable_m - - + + module~assert_m->module~string_m - - + + - + module~assert_m->module~intrinsic_array_m - - + + + + + +module~assert_m->module~assert_subroutine_m + + module~intrinsic_array_m->module~characterizable_m - - + + @@ -228,8 +228,8 @@

Modules

proc~assert_always->module~characterizable_m - - + +
diff --git a/lists/procedures.html b/lists/procedures.html index f5a0e99..e2b7bb7 100644 --- a/lists/procedures.html +++ b/lists/procedures.html @@ -102,45 +102,39 @@

Procedures

call~~graph~~CallGraph - - -interface~assert_always - - -assert_always - - - - + proc~assert_always - - -assert_always + + +assert_always - - -interface~assert_always->proc~assert_always - - - - + -interface~intrinsic_array_t - - -intrinsic_array_t +proc~construct + + +construct - + -interface~as_character - - -as_character +proc~string + + +string + + + + + +proc~allocated_components + + +allocated_components @@ -153,80 +147,86 @@

Procedures

- - -interface~as_character->proc~as_character - - - - - -proc~as_character->interface~intrinsic_array_t - - - - + interface~assert - - -assert + + +assert - + proc~as_character->interface~assert - - + + - - -proc~string - - -string + + +interface~intrinsic_array_t + + +intrinsic_array_t - - -proc~construct - - -construct + + +proc~as_character->interface~intrinsic_array_t + + + + + +proc~assert + + +assert - + -proc~allocated_components - - -allocated_components +interface~assert_always + + +assert_always - - -proc~assert - - -assert - - + + +proc~assert->interface~assert_always + + - + interface~assert->proc~assert - - + + - + + +interface~assert_always->proc~assert_always + + + + + +interface~as_character + + +as_character + + + + -proc~assert->interface~assert_always - - +interface~as_character->proc~as_character + + diff --git a/lists/types.html b/lists/types.html index b6c6f0b..5797c10 100644 --- a/lists/types.html +++ b/lists/types.html @@ -99,21 +99,21 @@

Derived Types

type~~graph~~TypeGraph - + -type~intrinsic_array_t - - -intrinsic_array_t +type~characterizable_t + + +characterizable_t - + -type~characterizable_t - - -characterizable_t +type~intrinsic_array_t + + +intrinsic_array_t diff --git a/module/assert_m.html b/module/assert_m.html index 16c7608..068e63c 100644 --- a/module/assert_m.html +++ b/module/assert_m.html @@ -127,10 +127,10 @@

Uses

  • @@ -140,82 +140,82 @@

    Uses

    - - + + module~~assert_m~~UsesGraph - + module~assert_m - -assert_m + +assert_m - + -module~assert_subroutine_m - - -assert_subroutine_m +module~intrinsic_array_m + + +intrinsic_array_m - + -module~assert_m->module~assert_subroutine_m - - +module~assert_m->module~intrinsic_array_m + + module~string_m - -string_m + +string_m module~assert_m->module~string_m - - + + - + -module~intrinsic_array_m - - -intrinsic_array_m +module~characterizable_m + + +characterizable_m - + -module~assert_m->module~intrinsic_array_m - - +module~assert_m->module~characterizable_m + + - + -module~characterizable_m - - -characterizable_m +module~assert_subroutine_m + + +assert_subroutine_m - + -module~assert_m->module~characterizable_m - - +module~assert_m->module~assert_subroutine_m + + module~intrinsic_array_m->module~characterizable_m - - + + diff --git a/module/characterizable_m.html b/module/characterizable_m.html index 7ccc280..a8e781d 100644 --- a/module/characterizable_m.html +++ b/module/characterizable_m.html @@ -148,11 +148,11 @@

    Used by

    - - + + module~~characterizable_m~~UsedByGraph - + module~characterizable_m @@ -163,52 +163,52 @@

    Used by

    proc~assert_always - -assert_always + +assert_always proc~assert_always->module~characterizable_m - - + + - + -module~intrinsic_array_m - - -intrinsic_array_m +module~assert_m + + +assert_m - + -module~intrinsic_array_m->module~characterizable_m - - +module~assert_m->module~characterizable_m + + - + -module~assert_m - - -assert_m +module~intrinsic_array_m + + +intrinsic_array_m - - -module~assert_m->module~characterizable_m - - - - + module~assert_m->module~intrinsic_array_m - - + + + + + +module~intrinsic_array_m->module~characterizable_m + + @@ -219,17 +219,17 @@

    Used by

    - - -module~intrinsic_array_s->module~intrinsic_array_m - - - - + module~intrinsic_array_s->module~assert_m - - + + + + + +module~intrinsic_array_s->module~intrinsic_array_m + + diff --git a/module/intrinsic_array_s.html b/module/intrinsic_array_s.html index 184a9c3..5bb7f11 100644 --- a/module/intrinsic_array_s.html +++ b/module/intrinsic_array_s.html @@ -159,103 +159,103 @@

    Uses

    - - + + module~~intrinsic_array_s~~UsesGraph - + module~intrinsic_array_s - -intrinsic_array_s + +intrinsic_array_s module~assert_m - -assert_m + +assert_m module~intrinsic_array_s->module~assert_m - - + + module~intrinsic_array_m - -intrinsic_array_m + +intrinsic_array_m module~intrinsic_array_s->module~intrinsic_array_m - - + + - -module~assert_m->module~intrinsic_array_m - - - - - -module~assert_subroutine_m - - -assert_subroutine_m - - - - -module~assert_m->module~assert_subroutine_m - - +module~assert_m->module~intrinsic_array_m + + - + module~string_m - - -string_m + + +string_m module~assert_m->module~string_m - - + + - + module~characterizable_m - - -characterizable_m + + +characterizable_m - + module~assert_m->module~characterizable_m - - + + + + + +module~assert_subroutine_m + + +assert_subroutine_m + + + + + +module~assert_m->module~assert_subroutine_m + + module~intrinsic_array_m->module~characterizable_m - - + + diff --git a/sourcefile/assert_m.f90.html b/sourcefile/assert_m.f90.html index 84b96de..c57c0da 100644 --- a/sourcefile/assert_m.f90.html +++ b/sourcefile/assert_m.f90.html @@ -142,82 +142,82 @@

    This file depends on

    - - + + sourcefile~~assert_m.f90~~EfferentGraph - + sourcefile~assert_m.f90 - -assert_m.f90 + +assert_m.f90 sourcefile~intrinsic_array_m.f90 - -intrinsic_array_m.F90 + +intrinsic_array_m.F90 sourcefile~assert_m.f90->sourcefile~intrinsic_array_m.f90 - - + + - + -sourcefile~characterizable_m.f90 - - -characterizable_m.f90 +sourcefile~string_m.f90 + + +string_m.f90 - - -sourcefile~assert_m.f90->sourcefile~characterizable_m.f90 - - + + +sourcefile~assert_m.f90->sourcefile~string_m.f90 + + sourcefile~assert_subroutine_m.f90 - -assert_subroutine_m.F90 + +assert_subroutine_m.F90 sourcefile~assert_m.f90->sourcefile~assert_subroutine_m.f90 - - + + - + -sourcefile~string_m.f90 - - -string_m.f90 +sourcefile~characterizable_m.f90 + + +characterizable_m.f90 - - -sourcefile~assert_m.f90->sourcefile~string_m.f90 - - + + +sourcefile~assert_m.f90->sourcefile~characterizable_m.f90 + + sourcefile~intrinsic_array_m.f90->sourcefile~characterizable_m.f90 - - + + diff --git a/sourcefile/characterizable_m.f90.html b/sourcefile/characterizable_m.f90.html index d079654..4650550 100644 --- a/sourcefile/characterizable_m.f90.html +++ b/sourcefile/characterizable_m.f90.html @@ -178,7 +178,7 @@

    Files dependent on this one

    - + sourcefile~assert_m.f90->sourcefile~characterizable_m.f90 @@ -199,7 +199,7 @@

    Files dependent on this one

    - + sourcefile~assert_subroutine_s.f90->sourcefile~characterizable_m.f90 diff --git a/sourcefile/intrinsic_array_s.f90.html b/sourcefile/intrinsic_array_s.f90.html index be12b9b..2e042f2 100644 --- a/sourcefile/intrinsic_array_s.f90.html +++ b/sourcefile/intrinsic_array_s.f90.html @@ -210,35 +210,35 @@

    This file depends on

    - + -sourcefile~assert_subroutine_m.f90 - - -assert_subroutine_m.F90 +sourcefile~string_m.f90 + + +string_m.f90 - - -sourcefile~assert_m.f90->sourcefile~assert_subroutine_m.f90 - - + + +sourcefile~assert_m.f90->sourcefile~string_m.f90 + + - + -sourcefile~string_m.f90 - - -string_m.f90 +sourcefile~assert_subroutine_m.f90 + + +assert_subroutine_m.F90 - - -sourcefile~assert_m.f90->sourcefile~string_m.f90 - - + + +sourcefile~assert_m.f90->sourcefile~assert_subroutine_m.f90 + + diff --git a/tipuesearch/tipuesearch_content.js b/tipuesearch/tipuesearch_content.js index faaef03..1159f7d 100644 --- a/tipuesearch/tipuesearch_content.js +++ b/tipuesearch/tipuesearch_content.js @@ -1 +1 @@ -var tipuesearch = {"pages":[{"title":" Assert library ","text":"Assert library","tags":"home","loc":"index.html"},{"title":"characterizable_t – Assert library ","text":"type, public, abstract :: characterizable_t Inherited by type~~characterizable_t~~InheritedByGraph type~characterizable_t characterizable_t type~intrinsic_array_t intrinsic_array_t type~intrinsic_array_t->type~characterizable_t Help × Graph Key Nodes of different colours represent the following: Graph Key Type Type This Page's Entity This Page's Entity Solid arrows point from a derived type to the parent type which it\n extends. Dashed arrows point from a derived type to the other\n types it contains as a components, with a label listing the name(s) of\n said component(s). Contents Type-Bound Procedures as_character Type-Bound Procedures procedure( as_character_i ), public, deferred :: as_character pure function as_character_i(self) result(character_self) Prototype Arguments Type Intent Optional Attributes Name class( characterizable_t ), intent(in) :: self Return Value character(len=:),allocatable","tags":"","loc":"type/characterizable_t.html"},{"title":"intrinsic_array_t – Assert library ","text":"type, public, extends( characterizable_t ) :: intrinsic_array_t Inherits type~~intrinsic_array_t~~InheritsGraph type~intrinsic_array_t intrinsic_array_t type~characterizable_t characterizable_t type~intrinsic_array_t->type~characterizable_t Help × Graph Key Nodes of different colours represent the following: Graph Key Type Type This Page's Entity This Page's Entity Solid arrows point from a derived type to the parent type which it\n extends. Dashed arrows point from a derived type to the other\n types it contains as a components, with a label listing the name(s) of\n said component(s). Contents Variables complex_1D complex_double_1D integer_1D logical_1D real_1D double_precision_1D complex_2D complex_double_2D integer_2D logical_2D real_2D double_precision_2D complex_3D complex_double_3D integer_3D logical_3D real_3D double_precision_3D Constructor intrinsic_array_t Type-Bound Procedures as_character Components Type Visibility Attributes Name Initial complex, private, allocatable :: complex_1D (:) complex(kind=kind(1.D0)), private, allocatable :: complex_double_1D (:) integer, private, allocatable :: integer_1D (:) logical, private, allocatable :: logical_1D (:) real, private, allocatable :: real_1D (:) double precision, private, allocatable :: double_precision_1D (:) complex, private, allocatable :: complex_2D (:,:) complex(kind=kind(1.D0)), private, allocatable :: complex_double_2D (:,:) integer, private, allocatable :: integer_2D (:,:) logical, private, allocatable :: logical_2D (:,:) real, private, allocatable :: real_2D (:,:) double precision, private, allocatable :: double_precision_2D (:,:) complex, private, allocatable :: complex_3D (:,:,:) complex(kind=kind(1.D0)), private, allocatable :: complex_double_3D (:,:,:) integer, private, allocatable :: integer_3D (:,:,:) logical, private, allocatable :: logical_3D (:,:,:) real, private, allocatable :: real_3D (:,:,:) double precision, private, allocatable :: double_precision_3D (:,:,:) Constructor public interface intrinsic_array_t private pure module function construct(array) result(intrinsic_array) Arguments Type Intent Optional Attributes Name class(*), intent(in) :: array (..) Return Value type( intrinsic_array_t ) Type-Bound Procedures procedure, public :: as_character interface private pure module module function as_character(self) result(character_self) Implementation → Arguments Type Intent Optional Attributes Name class( intrinsic_array_t ), intent(in) :: self Return Value character(len=:),allocatable","tags":"","loc":"type/intrinsic_array_t.html"},{"title":"as_character_i – Assert library","text":"abstract interface private pure function as_character_i(self) result(character_self) Arguments Type Intent Optional Attributes Name class( characterizable_t ), intent(in) :: self Return Value character(len=:),allocatable","tags":"","loc":"interface/as_character_i.html"},{"title":"allocated_components – Assert library","text":"pure function allocated_components(self) Arguments Type Intent Optional Attributes Name type( intrinsic_array_t ), intent(in) :: self Return Value logical,allocatable,(:) Contents None","tags":"","loc":"proc/allocated_components.html"},{"title":"assert – Assert library","text":"interface Calls interface~~assert~~CallsGraph interface~assert assert proc~assert assert interface~assert->proc~assert interface~assert_always assert_always proc~assert->interface~assert_always proc~assert_always assert_always interface~assert_always->proc~assert_always Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by interface~~assert~~CalledByGraph interface~assert assert proc~as_character as_character proc~as_character->interface~assert interface~as_character as_character interface~as_character->proc~as_character Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. public pure module module subroutine assert(assertion, description, diagnostic_data) Implementation → Arguments Type Intent Optional Attributes Name logical, intent(in) :: assertion Most assertions will be expressions such as i>0 character(len=*), intent(in) :: description A brief statement of what is being asserted such as \"i>0\" or \"positive i\" class(*), intent(in), optional :: diagnostic_data Data to include in an error ouptput: may be of an intrinsic type or a type that extends characterizable_t Description If assertion is .false. and enforcement is enabled (e.g. via -DASSERTIONS=1), \nthen error-terminate with a character stop code that contains diagnostic_data if present","tags":"","loc":"interface/assert.html"},{"title":"assert_always – Assert library","text":"interface Calls interface~~assert_always~~CallsGraph interface~assert_always assert_always proc~assert_always assert_always interface~assert_always->proc~assert_always Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by interface~~assert_always~~CalledByGraph interface~assert_always assert_always proc~assert assert proc~assert->interface~assert_always interface~assert assert interface~assert->proc~assert proc~as_character as_character proc~as_character->interface~assert interface~as_character as_character interface~as_character->proc~as_character Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. public pure module module subroutine assert_always(assertion, description, diagnostic_data) Implementation → Arguments Type Intent Optional Attributes Name logical, intent(in) :: assertion character(len=*), intent(in) :: description class(*), intent(in), optional :: diagnostic_data Description Same as above but always enforces the assertion (regardless of 0)","tags":"","loc":"interface/assert_always.html"},{"title":"string – Assert library","text":"public pure function string(number) result(number_as_string) Arguments Type Intent Optional Attributes Name integer, intent(in) :: number Return Value character(len=:),allocatable Contents None","tags":"","loc":"proc/string.html"},{"title":"intrinsic_array_t – Assert library","text":"public interface intrinsic_array_t Called by interface~~intrinsic_array_t~~CalledByGraph interface~intrinsic_array_t intrinsic_array_t proc~as_character as_character proc~as_character->interface~intrinsic_array_t interface~as_character as_character interface~as_character->proc~as_character Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents Functions construct Functions private pure module function construct(array) result(intrinsic_array) Arguments Type Intent Optional Attributes Name class(*), intent(in) :: array (..) Return Value type( intrinsic_array_t )","tags":"","loc":"interface/intrinsic_array_t.html"},{"title":"as_character – Assert library","text":"interface Calls interface~~as_character~~CallsGraph interface~as_character as_character proc~as_character as_character interface~as_character->proc~as_character interface~intrinsic_array_t intrinsic_array_t proc~as_character->interface~intrinsic_array_t interface~assert assert proc~as_character->interface~assert proc~assert assert interface~assert->proc~assert interface~assert_always assert_always proc~assert->interface~assert_always proc~assert_always assert_always interface~assert_always->proc~assert_always Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. private pure module module function as_character(self) result(character_self) Implementation → Arguments Type Intent Optional Attributes Name class( intrinsic_array_t ), intent(in) :: self Return Value character(len=:),allocatable","tags":"","loc":"interface/as_character.html"},{"title":"construct – Assert library","text":"module procedure construct module procedure construct() Arguments None Contents None","tags":"","loc":"proc/construct.html"},{"title":"as_character – Assert library","text":"module procedure as_character pure module module function as_character(self) result(character_self) Interface → Arguments Type Intent Optional Attributes Name class( intrinsic_array_t ), intent(in) :: self Return Value character(len=:),allocatable Calls proc~~as_character~~CallsGraph proc~as_character as_character interface~intrinsic_array_t intrinsic_array_t proc~as_character->interface~intrinsic_array_t interface~assert assert proc~as_character->interface~assert proc~assert assert interface~assert->proc~assert interface~assert_always assert_always proc~assert->interface~assert_always proc~assert_always assert_always interface~assert_always->proc~assert_always Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~as_character~~CalledByGraph proc~as_character as_character interface~as_character as_character interface~as_character->proc~as_character Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/as_character.html"},{"title":"assert – Assert library","text":"module procedure assert pure module module subroutine assert(assertion, description, diagnostic_data) Interface → Arguments Type Intent Optional Attributes Name logical, intent(in) :: assertion Most assertions will be expressions such as i>0 character(len=*), intent(in) :: description A brief statement of what is being asserted such as \"i>0\" or \"positive i\" class(*), intent(in), optional :: diagnostic_data Data to include in an error ouptput: may be of an intrinsic type or a type that extends characterizable_t Calls proc~~assert~~CallsGraph proc~assert assert interface~assert_always assert_always proc~assert->interface~assert_always proc~assert_always assert_always interface~assert_always->proc~assert_always Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~assert~~CalledByGraph proc~assert assert interface~assert assert interface~assert->proc~assert proc~as_character as_character proc~as_character->interface~assert interface~as_character as_character interface~as_character->proc~as_character Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/assert.html"},{"title":"assert_always – Assert library","text":"module procedure assert_always pure module module subroutine assert_always(assertion, description, diagnostic_data) Interface → Uses characterizable_m proc~~assert_always~~UsesGraph proc~assert_always assert_always module~characterizable_m characterizable_m proc~assert_always->module~characterizable_m Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Arguments Type Intent Optional Attributes Name logical, intent(in) :: assertion character(len=*), intent(in) :: description class(*), intent(in), optional :: diagnostic_data Called by proc~~assert_always~~CalledByGraph proc~assert_always assert_always interface~assert_always assert_always interface~assert_always->proc~assert_always proc~assert assert proc~assert->interface~assert_always interface~assert assert interface~assert->proc~assert proc~as_character as_character proc~as_character->interface~assert interface~as_character as_character interface~as_character->proc~as_character Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/assert_always.html"},{"title":"assert_m – Assert library","text":"Uses assert_subroutine_m characterizable_m intrinsic_array_m string_m module~~assert_m~~UsesGraph module~assert_m assert_m module~assert_subroutine_m assert_subroutine_m module~assert_m->module~assert_subroutine_m module~string_m string_m module~assert_m->module~string_m module~intrinsic_array_m intrinsic_array_m module~assert_m->module~intrinsic_array_m module~characterizable_m characterizable_m module~assert_m->module~characterizable_m module~intrinsic_array_m->module~characterizable_m Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Used by module~~assert_m~~UsedByGraph module~assert_m assert_m module~intrinsic_array_s intrinsic_array_s module~intrinsic_array_s->module~assert_m Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents None","tags":"","loc":"module/assert_m.html"},{"title":"characterizable_m – Assert library","text":"Define an abstract class that supports object representation in character form Used by module~~characterizable_m~~UsedByGraph module~characterizable_m characterizable_m proc~assert_always assert_always proc~assert_always->module~characterizable_m module~intrinsic_array_m intrinsic_array_m module~intrinsic_array_m->module~characterizable_m module~assert_m assert_m module~assert_m->module~characterizable_m module~assert_m->module~intrinsic_array_m module~intrinsic_array_s intrinsic_array_s module~intrinsic_array_s->module~intrinsic_array_m module~intrinsic_array_s->module~assert_m Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Abstract Interfaces as_character_i Derived Types characterizable_t Abstract Interfaces abstract interface private pure function as_character_i(self) result(character_self) Arguments Type Intent Optional Attributes Name class( characterizable_t ), intent(in) :: self Return Value character(len=:),allocatable Derived Types type, public, abstract :: characterizable_t Type-Bound Procedures procedure(as_character_i), public :: as_character","tags":"","loc":"module/characterizable_m.html"},{"title":"assert_subroutine_m – Assert library","text":"use assertions_m, only : assert\n call assert( 2 > 1, \"2 > 1\") Assertion enforcement is controlled via the 0 preprocessor macro,\nwhich can be defined to non-zero or zero at compilation time to\nrespectively enable or disable runtime assertion enforcement. When the 0 preprocessor macro is not defined to any value,\nthe default is that assertions are disabled and will not check the condition. Disabling assertion enforcement may eliminate any associated runtime\noverhead by enabling optimizing compilers to ignore the assertion procedure\nbody during a dead-code-removal phase of optimization. To enable assertion enforcement (e.g., for a debug build), define the preprocessor 0 to non-zero.\nThis file's capitalized .F90 extension causes most Fortran compilers to preprocess this file so\nthat building as follows enables assertion enforcement: fpm build --flag \"-DASSERTIONS\" Used by Descendants: assert_subroutine_s module~~assert_subroutine_m~~UsedByGraph module~assert_subroutine_m assert_subroutine_m module~assert_m assert_m module~assert_m->module~assert_subroutine_m module~assert_subroutine_s assert_subroutine_s module~assert_subroutine_s->module~assert_subroutine_m module~intrinsic_array_s intrinsic_array_s module~intrinsic_array_s->module~assert_m Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Variables enforce_assertions Interfaces assert assert_always Variables Type Visibility Attributes Name Initial logical, private, parameter :: enforce_assertions = .false. Interfaces interface public pure module module subroutine assert(assertion, description, diagnostic_data) Implementation → If assertion is .false. and enforcement is enabled (e.g. via -DASSERTIONS=1), \nthen error-terminate with a character stop code that contains diagnostic_data if present Arguments Type Intent Optional Attributes Name logical, intent(in) :: assertion Most assertions will be expressions such as i>0 character(len=*), intent(in) :: description A brief statement of what is being asserted such as \"i>0\" or \"positive i\" class(*), intent(in), optional :: diagnostic_data Data to include in an error ouptput: may be of an intrinsic type or a type that extends characterizable_t interface public pure module module subroutine assert_always(assertion, description, diagnostic_data) Implementation → Same as above but always enforces the assertion (regardless of 0) Arguments Type Intent Optional Attributes Name logical, intent(in) :: assertion character(len=*), intent(in) :: description class(*), intent(in), optional :: diagnostic_data","tags":"","loc":"module/assert_subroutine_m.html"},{"title":"string_m – Assert library","text":"Used by module~~string_m~~UsedByGraph module~string_m string_m module~assert_m assert_m module~assert_m->module~string_m module~intrinsic_array_s intrinsic_array_s module~intrinsic_array_s->module~assert_m Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Functions string Functions public pure function string (number) result(number_as_string) Arguments Type Intent Optional Attributes Name integer, intent(in) :: number Return Value character(len=:),allocatable","tags":"","loc":"module/string_m.html"},{"title":"intrinsic_array_m – Assert library","text":"Define an abstract class that supports object representation in character form Uses characterizable_m module~~intrinsic_array_m~~UsesGraph module~intrinsic_array_m intrinsic_array_m module~characterizable_m characterizable_m module~intrinsic_array_m->module~characterizable_m Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Used by Descendants: intrinsic_array_s module~~intrinsic_array_m~~UsedByGraph module~intrinsic_array_m intrinsic_array_m module~assert_m assert_m module~assert_m->module~intrinsic_array_m module~intrinsic_array_s intrinsic_array_s module~intrinsic_array_s->module~intrinsic_array_m module~intrinsic_array_s->module~assert_m Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Interfaces intrinsic_array_t as_character Derived Types intrinsic_array_t Interfaces public interface intrinsic_array_t private pure module function construct(array) result(intrinsic_array) Arguments Type Intent Optional Attributes Name class(*), intent(in) :: array (..) Return Value type( intrinsic_array_t ) interface private pure module module function as_character(self) result(character_self) Implementation → Arguments Type Intent Optional Attributes Name class( intrinsic_array_t ), intent(in) :: self Return Value character(len=:),allocatable Derived Types type, public, extends( characterizable_t ) :: intrinsic_array_t Components Type Visibility Attributes Name Initial complex, private, allocatable :: complex_1D (:) complex(kind=kind(1.D0)), private, allocatable :: complex_double_1D (:) integer, private, allocatable :: integer_1D (:) logical, private, allocatable :: logical_1D (:) real, private, allocatable :: real_1D (:) double precision, private, allocatable :: double_precision_1D (:) complex, private, allocatable :: complex_2D (:,:) complex(kind=kind(1.D0)), private, allocatable :: complex_double_2D (:,:) integer, private, allocatable :: integer_2D (:,:) logical, private, allocatable :: logical_2D (:,:) real, private, allocatable :: real_2D (:,:) double precision, private, allocatable :: double_precision_2D (:,:) complex, private, allocatable :: complex_3D (:,:,:) complex(kind=kind(1.D0)), private, allocatable :: complex_double_3D (:,:,:) integer, private, allocatable :: integer_3D (:,:,:) logical, private, allocatable :: logical_3D (:,:,:) real, private, allocatable :: real_3D (:,:,:) double precision, private, allocatable :: double_precision_3D (:,:,:) Constructor private pure,module function construct (array) Type-Bound Procedures procedure, public :: as_character","tags":"","loc":"module/intrinsic_array_m.html"},{"title":"intrinsic_array_s – Assert library","text":"Uses assert_m Ancestors: intrinsic_array_m module~~intrinsic_array_s~~UsesGraph module~intrinsic_array_s intrinsic_array_s module~assert_m assert_m module~intrinsic_array_s->module~assert_m module~intrinsic_array_m intrinsic_array_m module~intrinsic_array_s->module~intrinsic_array_m module~assert_m->module~intrinsic_array_m module~assert_subroutine_m assert_subroutine_m module~assert_m->module~assert_subroutine_m module~string_m string_m module~assert_m->module~string_m module~characterizable_m characterizable_m module~assert_m->module~characterizable_m module~intrinsic_array_m->module~characterizable_m Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Functions allocated_components Module Procedures construct as_character Functions pure function allocated_components (self) Arguments Type Intent Optional Attributes Name type( intrinsic_array_t ), intent(in) :: self Return Value logical,allocatable, (:) Module Procedures module procedure construct module procedure construct() Arguments None module procedure as_character pure module module function as_character(self) result(character_self) Interface → Arguments Type Intent Optional Attributes Name class( intrinsic_array_t ), intent(in) :: self Return Value character(len=:),allocatable","tags":"","loc":"module/intrinsic_array_s.html"},{"title":"assert_subroutine_s – Assert library","text":"Uses Ancestors: assert_subroutine_m module~~assert_subroutine_s~~UsesGraph module~assert_subroutine_s assert_subroutine_s module~assert_subroutine_m assert_subroutine_m module~assert_subroutine_s->module~assert_subroutine_m Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Module Procedures assert assert_always Module Procedures module procedure assert pure module module subroutine assert(assertion, description, diagnostic_data) Interface → Arguments Type Intent Optional Attributes Name logical, intent(in) :: assertion Most assertions will be expressions such as i>0 character(len=*), intent(in) :: description A brief statement of what is being asserted such as \"i>0\" or \"positive i\" class(*), intent(in), optional :: diagnostic_data Data to include in an error ouptput: may be of an intrinsic type or a type that extends characterizable_t module procedure assert_always pure module module subroutine assert_always(assertion, description, diagnostic_data) Interface → Arguments Type Intent Optional Attributes Name logical, intent(in) :: assertion character(len=*), intent(in) :: description class(*), intent(in), optional :: diagnostic_data","tags":"","loc":"module/assert_subroutine_s.html"},{"title":"assert_m.f90 – Assert library","text":"This file depends on sourcefile~~assert_m.f90~~EfferentGraph sourcefile~assert_m.f90 assert_m.f90 sourcefile~intrinsic_array_m.f90 intrinsic_array_m.F90 sourcefile~assert_m.f90->sourcefile~intrinsic_array_m.f90 sourcefile~characterizable_m.f90 characterizable_m.f90 sourcefile~assert_m.f90->sourcefile~characterizable_m.f90 sourcefile~assert_subroutine_m.f90 assert_subroutine_m.F90 sourcefile~assert_m.f90->sourcefile~assert_subroutine_m.f90 sourcefile~string_m.f90 string_m.f90 sourcefile~assert_m.f90->sourcefile~string_m.f90 sourcefile~intrinsic_array_m.f90->sourcefile~characterizable_m.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Files dependent on this one sourcefile~~assert_m.f90~~AfferentGraph sourcefile~assert_m.f90 assert_m.f90 sourcefile~intrinsic_array_s.f90 intrinsic_array_s.F90 sourcefile~intrinsic_array_s.f90->sourcefile~assert_m.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules assert_m Source Code assert_m.f90 Source Code module assert_m use intrinsic_array_m use assert_subroutine_m use characterizable_m use string_m , only : string implicit none end module assert_m","tags":"","loc":"sourcefile/assert_m.f90.html"},{"title":"intrinsic_array_s.F90 – Assert library","text":"This file depends on sourcefile~~intrinsic_array_s.f90~~EfferentGraph sourcefile~intrinsic_array_s.f90 intrinsic_array_s.F90 sourcefile~intrinsic_array_m.f90 intrinsic_array_m.F90 sourcefile~intrinsic_array_s.f90->sourcefile~intrinsic_array_m.f90 sourcefile~assert_m.f90 assert_m.f90 sourcefile~intrinsic_array_s.f90->sourcefile~assert_m.f90 sourcefile~characterizable_m.f90 characterizable_m.f90 sourcefile~intrinsic_array_m.f90->sourcefile~characterizable_m.f90 sourcefile~assert_m.f90->sourcefile~intrinsic_array_m.f90 sourcefile~assert_m.f90->sourcefile~characterizable_m.f90 sourcefile~assert_subroutine_m.f90 assert_subroutine_m.F90 sourcefile~assert_m.f90->sourcefile~assert_subroutine_m.f90 sourcefile~string_m.f90 string_m.f90 sourcefile~assert_m.f90->sourcefile~string_m.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Submodules intrinsic_array_s Source Code intrinsic_array_s.F90 Source Code submodule ( intrinsic_array_m ) intrinsic_array_s use assert_m , only : assert implicit none contains #ifndef _CRAYFTN module procedure construct select rank ( array ) rank ( 1 ) select type ( array ) type is ( complex ) allocate ( intrinsic_array % complex_1D , source = array ) type is ( complex ( kind ( 1.D0 ))) allocate ( intrinsic_array % complex_double_1D , source = array ) type is ( integer ) allocate ( intrinsic_array % integer_1D , source = array ) type is ( logical ) allocate ( intrinsic_array % logical_1D , source = array ) type is ( real ) allocate ( intrinsic_array % real_1D , source = array ) type is ( double precision ) intrinsic_array % double_precision_1D = array class default error stop \"intrinsic_array_s(construct): unsupported rank-1 type\" end select rank ( 2 ) select type ( array ) type is ( complex ) allocate ( intrinsic_array % complex_2D , source = array ) type is ( complex ( kind ( 1.D0 ))) allocate ( intrinsic_array % complex_double_2D , source = array ) type is ( integer ) allocate ( intrinsic_array % integer_2D , source = array ) type is ( logical ) allocate ( intrinsic_array % logical_2D , source = array ) type is ( real ) allocate ( intrinsic_array % real_2D , source = array ) type is ( double precision ) allocate ( intrinsic_array % double_precision_2D , source = array ) class default error stop \"intrinsic_array_s(construct): unsupported rank-2 type\" end select rank ( 3 ) select type ( array ) type is ( complex ) allocate ( intrinsic_array % complex_3D , source = array ) type is ( complex ( kind ( 1.D0 ))) allocate ( intrinsic_array % complex_double_3D , source = array ) type is ( integer ) allocate ( intrinsic_array % integer_3D , source = array ) type is ( logical ) allocate ( intrinsic_array % logical_3D , source = array ) type is ( real ) allocate ( intrinsic_array % real_3D , source = array ) type is ( double precision ) allocate ( intrinsic_array % double_precision_3D , source = array ) class default error stop \"intrinsic_array_s(construct): unsupported rank-3 type\" end select rank default error stop \"intrinsic_array_s(construct): unsupported rank\" end select end procedure #else module procedure complex_array select rank ( array ) rank ( 1 ) allocate ( intrinsic_array % complex_1D , source = array ) rank ( 2 ) allocate ( intrinsic_array % complex_2D , source = array ) rank ( 3 ) allocate ( intrinsic_array % complex_3D , source = array ) rank default error stop \"intrinsic_array_s(complex_array): unsupported rank\" end select end procedure module procedure integer_array select rank ( array ) rank ( 1 ) allocate ( intrinsic_array % integer_1D , source = array ) rank ( 2 ) allocate ( intrinsic_array % integer_2D , source = array ) rank ( 3 ) allocate ( intrinsic_array % integer_3D , source = array ) rank default error stop \"intrinsic_array_s(integer_array): unsupported rank\" end select end procedure module procedure logical_array select rank ( array ) rank ( 1 ) allocate ( intrinsic_array % logical_1D , source = array ) rank ( 2 ) allocate ( intrinsic_array % logical_2D , source = array ) rank ( 3 ) allocate ( intrinsic_array % logical_3D , source = array ) rank default error stop \"intrinsic_array_s(logical_array): unsupported rank\" end select end procedure module procedure real_array select rank ( array ) rank ( 1 ) allocate ( intrinsic_array % real_1D , source = array ) rank ( 2 ) allocate ( intrinsic_array % real_2D , source = array ) rank ( 3 ) allocate ( intrinsic_array % real_3D , source = array ) rank default error stop \"intrinsic_array_s(real_array): unsupported rank\" end select end procedure module procedure double_precision_array select rank ( array ) rank ( 1 ) allocate ( intrinsic_array % double_precision_1D , source = array ) rank ( 2 ) allocate ( intrinsic_array % double_precision_2D , source = array ) rank ( 3 ) allocate ( intrinsic_array % double_precision_3D , source = array ) rank default error stop \"intrinsic_array_s(double_precision_array): unsupported rank\" end select end procedure #endif pure function allocated_components ( self ) type ( intrinsic_array_t ), intent ( in ) :: self logical , allocatable :: allocated_components (:) allocated_components = [ & allocated ( self % complex_1D ), allocated ( self % real_1D ), allocated ( self % integer_1D ), allocated ( self % complex_double_1D ) & , allocated ( self % complex_2D ), allocated ( self % real_2D ), allocated ( self % integer_2D ), allocated ( self % complex_double_2D ) & , allocated ( self % complex_3D ), allocated ( self % real_3D ), allocated ( self % integer_3D ), allocated ( self % complex_double_3D ) & , allocated ( self % logical_1D ), allocated ( self % double_precision_1D ) & , allocated ( self % logical_2D ), allocated ( self % double_precision_2D ) & , allocated ( self % logical_3D ), allocated ( self % double_precision_3D ) & ] end function module procedure as_character integer , parameter :: single_number_width = 64 associate ( a => allocated_components ( self )) call assert ( count ( a ) == 1 , \"intrinsic_array_s(as_character): invalid number of allocated components\" , intrinsic_array_t ( a )) end associate if ( allocated ( self % complex_1D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % complex_1D )) write ( character_self , * ) self % complex_1D else if ( allocated ( self % complex_double_1D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % complex_double_1D )) write ( character_self , * ) self % complex_double_1D else if ( allocated ( self % integer_1D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % integer_1D )) write ( character_self , * ) self % integer_1D else if ( allocated ( self % logical_1D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % logical_1D )) write ( character_self , * ) self % logical_1D else if ( allocated ( self % real_1D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % real_1D )) write ( character_self , * ) self % real_1D else if ( allocated ( self % double_precision_1D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % double_precision_1D )) write ( character_self , * ) self % double_precision_1D else if ( allocated ( self % complex_2D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % complex_2D )) write ( character_self , * ) self % complex_2D else if ( allocated ( self % complex_double_2D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % complex_double_2D )) write ( character_self , * ) self % complex_double_2D else if ( allocated ( self % integer_2D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % integer_2D )) write ( character_self , * ) self % integer_2D else if ( allocated ( self % logical_2D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % logical_2D )) write ( character_self , * ) self % logical_2D else if ( allocated ( self % real_2D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % real_2D )) write ( character_self , * ) self % real_2D else if ( allocated ( self % double_precision_2D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % double_precision_2D )) write ( character_self , * ) self % double_precision_2D else if ( allocated ( self % complex_3D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % complex_3D )) write ( character_self , * ) self % complex_3D else if ( allocated ( self % complex_double_3D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % complex_double_3D )) write ( character_self , * ) self % complex_double_3D else if ( allocated ( self % integer_3D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % integer_3D )) write ( character_self , * ) self % integer_3D else if ( allocated ( self % logical_3D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % logical_3D )) write ( character_self , * ) self % logical_3D else if ( allocated ( self % real_3D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % real_3D )) write ( character_self , * ) self % real_3D else if ( allocated ( self % double_precision_3D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % double_precision_3D )) write ( character_self , * ) self % double_precision_3D end if character_self = trim ( adjustl ( character_self )) end procedure end submodule intrinsic_array_s","tags":"","loc":"sourcefile/intrinsic_array_s.f90.html"},{"title":"characterizable_m.f90 – Assert library","text":"Files dependent on this one sourcefile~~characterizable_m.f90~~AfferentGraph sourcefile~characterizable_m.f90 characterizable_m.f90 sourcefile~intrinsic_array_m.f90 intrinsic_array_m.F90 sourcefile~intrinsic_array_m.f90->sourcefile~characterizable_m.f90 sourcefile~assert_m.f90 assert_m.f90 sourcefile~assert_m.f90->sourcefile~characterizable_m.f90 sourcefile~assert_m.f90->sourcefile~intrinsic_array_m.f90 sourcefile~assert_subroutine_s.f90 assert_subroutine_s.F90 sourcefile~assert_subroutine_s.f90->sourcefile~characterizable_m.f90 sourcefile~intrinsic_array_s.f90 intrinsic_array_s.F90 sourcefile~intrinsic_array_s.f90->sourcefile~intrinsic_array_m.f90 sourcefile~intrinsic_array_s.f90->sourcefile~assert_m.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules characterizable_m Source Code characterizable_m.f90 Source Code module characterizable_m !! Define an abstract class that supports object representation in character form implicit none private public :: characterizable_t type , abstract :: characterizable_t contains procedure ( as_character_i ), deferred :: as_character end type abstract interface pure function as_character_i ( self ) result ( character_self ) import characterizable_t implicit none class ( characterizable_t ), intent ( in ) :: self character ( len = :), allocatable :: character_self end function end interface end module characterizable_m","tags":"","loc":"sourcefile/characterizable_m.f90.html"},{"title":"assert_subroutine_m.F90 – Assert library","text":"Files dependent on this one sourcefile~~assert_subroutine_m.f90~~AfferentGraph sourcefile~assert_subroutine_m.f90 assert_subroutine_m.F90 sourcefile~assert_m.f90 assert_m.f90 sourcefile~assert_m.f90->sourcefile~assert_subroutine_m.f90 sourcefile~assert_subroutine_s.f90 assert_subroutine_s.F90 sourcefile~assert_subroutine_s.f90->sourcefile~assert_subroutine_m.f90 sourcefile~intrinsic_array_s.f90 intrinsic_array_s.F90 sourcefile~intrinsic_array_s.f90->sourcefile~assert_m.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules assert_subroutine_m Source Code assert_subroutine_m.F90 Source Code ! (c) 2024 UC Regents, see LICENSE file for detailed terms. ! ! (c) 2019-2020 Guide Star Engineering, LLC ! This Software was developed for the US Nuclear Regulatory Commission (US NRC) under contract ! \"Multi-Dimensional Physics Implementation into Fuel Analysis under Steady-state and Transients (FAST)\", ! contract # NRC-HQ-60-17-C-0007 ! #include \"assert_macros.h\" module assert_subroutine_m !! summary: Utility for runtime enforcement of logical assertions. !! usage: error-terminate if the assertion fails: !! !! use assertions_m, only : assert !! call assert( 2 > 1, \"2 > 1\") !! !! Assertion enforcement is controlled via the `ASSERTIONS` preprocessor macro, !! which can be defined to non-zero or zero at compilation time to !! respectively enable or disable runtime assertion enforcement. !! !! When the `ASSERTIONS` preprocessor macro is not defined to any value, !! the default is that assertions are *disabled* and will not check the condition. !! !! Disabling assertion enforcement may eliminate any associated runtime !! overhead by enabling optimizing compilers to ignore the assertion procedure !! body during a dead-code-removal phase of optimization. !! !! To enable assertion enforcement (e.g., for a debug build), define the preprocessor ASSERTIONS to non-zero. !! This file's capitalized .F90 extension causes most Fortran compilers to preprocess this file so !! that building as follows enables assertion enforcement: !! !! fpm build --flag \"-DASSERTIONS\" !! implicit none private public :: assert , assert_always #ifndef USE_ASSERTIONS # if ASSERTIONS # define USE_ASSERTIONS .true. # else # define USE_ASSERTIONS .false. # endif #endif logical , parameter :: enforce_assertions = USE_ASSERTIONS interface pure module subroutine assert ( assertion , description , diagnostic_data ) !! If assertion is .false. and enforcement is enabled (e.g. via -DASSERTIONS=1), !! then error-terminate with a character stop code that contains diagnostic_data if present implicit none logical , intent ( in ) :: assertion !! Most assertions will be expressions such as i>0 character ( len =* ), intent ( in ) :: description !! A brief statement of what is being asserted such as \"i>0\" or \"positive i\" class ( * ), intent ( in ), optional :: diagnostic_data !! Data to include in an error ouptput: may be of an intrinsic type or a type that extends characterizable_t end subroutine pure module subroutine assert_always ( assertion , description , diagnostic_data ) !! Same as above but always enforces the assertion (regardless of ASSERTIONS) implicit none logical , intent ( in ) :: assertion character ( len =* ), intent ( in ) :: description class ( * ), intent ( in ), optional :: diagnostic_data end subroutine end interface end module assert_subroutine_m","tags":"","loc":"sourcefile/assert_subroutine_m.f90.html"},{"title":"string_m.f90 – Assert library","text":"Files dependent on this one sourcefile~~string_m.f90~~AfferentGraph sourcefile~string_m.f90 string_m.f90 sourcefile~assert_m.f90 assert_m.f90 sourcefile~assert_m.f90->sourcefile~string_m.f90 sourcefile~intrinsic_array_s.f90 intrinsic_array_s.F90 sourcefile~intrinsic_array_s.f90->sourcefile~assert_m.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules string_m Source Code string_m.f90 Source Code module string_m implicit none contains pure function string ( number ) result ( number_as_string ) integer , intent ( in ) :: number integer , parameter :: max_len = 128 character ( len = max_len ) :: untrimmed_string character ( len = :), allocatable :: number_as_string write ( untrimmed_string , * ) number number_as_string = trim ( adjustl ( untrimmed_string )) end function end module string_m","tags":"","loc":"sourcefile/string_m.f90.html"},{"title":"intrinsic_array_m.F90 – Assert library","text":"This file depends on sourcefile~~intrinsic_array_m.f90~~EfferentGraph sourcefile~intrinsic_array_m.f90 intrinsic_array_m.F90 sourcefile~characterizable_m.f90 characterizable_m.f90 sourcefile~intrinsic_array_m.f90->sourcefile~characterizable_m.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Files dependent on this one sourcefile~~intrinsic_array_m.f90~~AfferentGraph sourcefile~intrinsic_array_m.f90 intrinsic_array_m.F90 sourcefile~assert_m.f90 assert_m.f90 sourcefile~assert_m.f90->sourcefile~intrinsic_array_m.f90 sourcefile~intrinsic_array_s.f90 intrinsic_array_s.F90 sourcefile~intrinsic_array_s.f90->sourcefile~intrinsic_array_m.f90 sourcefile~intrinsic_array_s.f90->sourcefile~assert_m.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules intrinsic_array_m Source Code intrinsic_array_m.F90 Source Code module intrinsic_array_m !! Define an abstract class that supports object representation in character form use characterizable_m , only : characterizable_t implicit none private public :: intrinsic_array_t type , extends ( characterizable_t ) :: intrinsic_array_t complex , allocatable :: complex_1D (:) complex ( kind ( 1.D0 )), allocatable :: complex_double_1D (:) integer , allocatable :: integer_1D (:) logical , allocatable :: logical_1D (:) real , allocatable :: real_1D (:) double precision , allocatable :: double_precision_1D (:) complex , allocatable :: complex_2D (:,:) complex ( kind ( 1.D0 )), allocatable :: complex_double_2D (:,:) integer , allocatable :: integer_2D (:,:) logical , allocatable :: logical_2D (:,:) real , allocatable :: real_2D (:,:) double precision , allocatable :: double_precision_2D (:,:) complex , allocatable :: complex_3D (:,:,:) complex ( kind ( 1.D0 )), allocatable :: complex_double_3D (:,:,:) integer , allocatable :: integer_3D (:,:,:) logical , allocatable :: logical_3D (:,:,:) real , allocatable :: real_3D (:,:,:) double precision , allocatable :: double_precision_3D (:,:,:) contains procedure :: as_character end type interface intrinsic_array_t #ifndef _CRAYFTN pure module function construct ( array ) result ( intrinsic_array ) implicit none class ( * ), intent ( in ) :: array (..) type ( intrinsic_array_t ) intrinsic_array end function #else pure module function complex_array ( array ) result ( intrinsic_array ) implicit none complex , intent ( in ) :: array (..) type ( intrinsic_array_t ) intrinsic_array end function pure module function integer_array ( array ) result ( intrinsic_array ) implicit none integer , intent ( in ) :: array (..) type ( intrinsic_array_t ) intrinsic_array end function pure module function logical_array ( array ) result ( intrinsic_array ) implicit none logical , intent ( in ) :: array (..) type ( intrinsic_array_t ) intrinsic_array end function pure module function real_array ( array ) result ( intrinsic_array ) implicit none real , intent ( in ) :: array (..) type ( intrinsic_array_t ) intrinsic_array end function pure module function double_precision_array ( array ) result ( intrinsic_array ) implicit none double precision , intent ( in ) :: array (..) type ( intrinsic_array_t ) intrinsic_array end function #endif end interface interface pure module function as_character ( self ) result ( character_self ) implicit none class ( intrinsic_array_t ), intent ( in ) :: self character ( len = :), allocatable :: character_self end function end interface end module intrinsic_array_m","tags":"","loc":"sourcefile/intrinsic_array_m.f90.html"},{"title":"assert_subroutine_s.F90 – Assert library","text":"This file depends on sourcefile~~assert_subroutine_s.f90~~EfferentGraph sourcefile~assert_subroutine_s.f90 assert_subroutine_s.F90 sourcefile~assert_subroutine_m.f90 assert_subroutine_m.F90 sourcefile~assert_subroutine_s.f90->sourcefile~assert_subroutine_m.f90 sourcefile~characterizable_m.f90 characterizable_m.f90 sourcefile~assert_subroutine_s.f90->sourcefile~characterizable_m.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Submodules assert_subroutine_s Source Code assert_subroutine_s.F90 Source Code ! ! (c) 2019-2020 Guide Star Engineering, LLC ! This Software was developed for the US Nuclear Regulatory Commission (US NRC) under contract ! \"Multi-Dimensional Physics Implementation into Fuel Analysis under Steady-state and Transients (FAST)\", ! contract # NRC-HQ-60-17-C-0007 ! submodule ( assert_subroutine_m ) assert_subroutine_s implicit none contains module procedure assert toggle_assertions : & if ( enforce_assertions ) then call assert_always ( assertion , description , diagnostic_data ) end if toggle_assertions end procedure module procedure assert_always use characterizable_m , only : characterizable_t character ( len = :), allocatable :: header , trailer check_assertion : & if (. not . assertion ) then #ifndef __flang__ associate ( me => this_image ()) ! work around gfortran bug header = 'Assertion \"' // description // '\" failed on image ' // string ( me ) end associate #else header = 'Assertion \"' // description // '\" failed.' #endif represent_diagnostics_as_string : & if (. not . present ( diagnostic_data )) then trailer = \"\" else select type ( diagnostic_data ) type is ( character ( len =* )) trailer = diagnostic_data type is ( complex ) trailer = string ( diagnostic_data ) type is ( integer ) trailer = string ( diagnostic_data ) type is ( logical ) trailer = string ( diagnostic_data ) type is ( real ) trailer = string ( diagnostic_data ) class is ( characterizable_t ) trailer = diagnostic_data % as_character () class default trailer = \"of unsupported type.\" end select trailer = ' with diagnostic data \"' // trailer // '\"' end if represent_diagnostics_as_string error stop header // trailer end if check_assertion contains pure function string ( numeric ) result ( number_as_string ) !! Result is a string represention of the numeric argument class ( * ), intent ( in ) :: numeric integer , parameter :: max_len = 128 character ( len = max_len ) :: untrimmed_string character ( len = :), allocatable :: number_as_string select type ( numeric ) type is ( complex ) write ( untrimmed_string , * ) numeric type is ( integer ) write ( untrimmed_string , * ) numeric type is ( logical ) write ( untrimmed_string , * ) numeric type is ( real ) write ( untrimmed_string , * ) numeric class default error stop \"Internal error in subroutine 'assert': unsupported type in function 'string'.\" end select number_as_string = trim ( adjustl ( untrimmed_string )) end function string end procedure end submodule assert_subroutine_s","tags":"","loc":"sourcefile/assert_subroutine_s.f90.html"}]} \ No newline at end of file +var tipuesearch = {"pages":[{"title":" Assert library ","text":"Assert library","tags":"home","loc":"index.html"},{"title":"characterizable_t – Assert library ","text":"type, public, abstract :: characterizable_t Inherited by type~~characterizable_t~~InheritedByGraph type~characterizable_t characterizable_t type~intrinsic_array_t intrinsic_array_t type~intrinsic_array_t->type~characterizable_t Help × Graph Key Nodes of different colours represent the following: Graph Key Type Type This Page's Entity This Page's Entity Solid arrows point from a derived type to the parent type which it\n extends. Dashed arrows point from a derived type to the other\n types it contains as a components, with a label listing the name(s) of\n said component(s). Contents Type-Bound Procedures as_character Type-Bound Procedures procedure( as_character_i ), public, deferred :: as_character pure function as_character_i(self) result(character_self) Prototype Arguments Type Intent Optional Attributes Name class( characterizable_t ), intent(in) :: self Return Value character(len=:),allocatable","tags":"","loc":"type/characterizable_t.html"},{"title":"intrinsic_array_t – Assert library ","text":"type, public, extends( characterizable_t ) :: intrinsic_array_t Inherits type~~intrinsic_array_t~~InheritsGraph type~intrinsic_array_t intrinsic_array_t type~characterizable_t characterizable_t type~intrinsic_array_t->type~characterizable_t Help × Graph Key Nodes of different colours represent the following: Graph Key Type Type This Page's Entity This Page's Entity Solid arrows point from a derived type to the parent type which it\n extends. Dashed arrows point from a derived type to the other\n types it contains as a components, with a label listing the name(s) of\n said component(s). Contents Variables complex_1D complex_double_1D integer_1D logical_1D real_1D double_precision_1D complex_2D complex_double_2D integer_2D logical_2D real_2D double_precision_2D complex_3D complex_double_3D integer_3D logical_3D real_3D double_precision_3D Constructor intrinsic_array_t Type-Bound Procedures as_character Components Type Visibility Attributes Name Initial complex, private, allocatable :: complex_1D (:) complex(kind=kind(1.D0)), private, allocatable :: complex_double_1D (:) integer, private, allocatable :: integer_1D (:) logical, private, allocatable :: logical_1D (:) real, private, allocatable :: real_1D (:) double precision, private, allocatable :: double_precision_1D (:) complex, private, allocatable :: complex_2D (:,:) complex(kind=kind(1.D0)), private, allocatable :: complex_double_2D (:,:) integer, private, allocatable :: integer_2D (:,:) logical, private, allocatable :: logical_2D (:,:) real, private, allocatable :: real_2D (:,:) double precision, private, allocatable :: double_precision_2D (:,:) complex, private, allocatable :: complex_3D (:,:,:) complex(kind=kind(1.D0)), private, allocatable :: complex_double_3D (:,:,:) integer, private, allocatable :: integer_3D (:,:,:) logical, private, allocatable :: logical_3D (:,:,:) real, private, allocatable :: real_3D (:,:,:) double precision, private, allocatable :: double_precision_3D (:,:,:) Constructor public interface intrinsic_array_t private pure module function construct(array) result(intrinsic_array) Arguments Type Intent Optional Attributes Name class(*), intent(in) :: array (..) Return Value type( intrinsic_array_t ) Type-Bound Procedures procedure, public :: as_character interface private pure module module function as_character(self) result(character_self) Implementation → Arguments Type Intent Optional Attributes Name class( intrinsic_array_t ), intent(in) :: self Return Value character(len=:),allocatable","tags":"","loc":"type/intrinsic_array_t.html"},{"title":"as_character_i – Assert library","text":"abstract interface private pure function as_character_i(self) result(character_self) Arguments Type Intent Optional Attributes Name class( characterizable_t ), intent(in) :: self Return Value character(len=:),allocatable","tags":"","loc":"interface/as_character_i.html"},{"title":"allocated_components – Assert library","text":"pure function allocated_components(self) Arguments Type Intent Optional Attributes Name type( intrinsic_array_t ), intent(in) :: self Return Value logical,allocatable,(:) Contents None","tags":"","loc":"proc/allocated_components.html"},{"title":"assert – Assert library","text":"interface Calls interface~~assert~~CallsGraph interface~assert assert proc~assert assert interface~assert->proc~assert interface~assert_always assert_always proc~assert->interface~assert_always proc~assert_always assert_always interface~assert_always->proc~assert_always Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by interface~~assert~~CalledByGraph interface~assert assert proc~as_character as_character proc~as_character->interface~assert interface~as_character as_character interface~as_character->proc~as_character Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. public pure module module subroutine assert(assertion, description, diagnostic_data) Implementation → Arguments Type Intent Optional Attributes Name logical, intent(in) :: assertion Most assertions will be expressions such as i>0 character(len=*), intent(in) :: description A brief statement of what is being asserted such as \"i>0\" or \"positive i\" class(*), intent(in), optional :: diagnostic_data Data to include in an error ouptput: may be of an intrinsic type or a type that extends characterizable_t Description If assertion is .false. and enforcement is enabled (e.g. via -DASSERTIONS=1), \nthen error-terminate with a character stop code that contains diagnostic_data if present","tags":"","loc":"interface/assert.html"},{"title":"assert_always – Assert library","text":"interface Calls interface~~assert_always~~CallsGraph interface~assert_always assert_always proc~assert_always assert_always interface~assert_always->proc~assert_always Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by interface~~assert_always~~CalledByGraph interface~assert_always assert_always proc~assert assert proc~assert->interface~assert_always interface~assert assert interface~assert->proc~assert proc~as_character as_character proc~as_character->interface~assert interface~as_character as_character interface~as_character->proc~as_character Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. public pure module module subroutine assert_always(assertion, description, diagnostic_data) Implementation → Arguments Type Intent Optional Attributes Name logical, intent(in) :: assertion character(len=*), intent(in) :: description class(*), intent(in), optional :: diagnostic_data Description Same as above but always enforces the assertion (regardless of 0)","tags":"","loc":"interface/assert_always.html"},{"title":"string – Assert library","text":"public pure function string(number) result(number_as_string) Arguments Type Intent Optional Attributes Name integer, intent(in) :: number Return Value character(len=:),allocatable Contents None","tags":"","loc":"proc/string.html"},{"title":"intrinsic_array_t – Assert library","text":"public interface intrinsic_array_t Called by interface~~intrinsic_array_t~~CalledByGraph interface~intrinsic_array_t intrinsic_array_t proc~as_character as_character proc~as_character->interface~intrinsic_array_t interface~as_character as_character interface~as_character->proc~as_character Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents Functions construct Functions private pure module function construct(array) result(intrinsic_array) Arguments Type Intent Optional Attributes Name class(*), intent(in) :: array (..) Return Value type( intrinsic_array_t )","tags":"","loc":"interface/intrinsic_array_t.html"},{"title":"as_character – Assert library","text":"interface Calls interface~~as_character~~CallsGraph interface~as_character as_character proc~as_character as_character interface~as_character->proc~as_character interface~intrinsic_array_t intrinsic_array_t proc~as_character->interface~intrinsic_array_t interface~assert assert proc~as_character->interface~assert proc~assert assert interface~assert->proc~assert interface~assert_always assert_always proc~assert->interface~assert_always proc~assert_always assert_always interface~assert_always->proc~assert_always Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. private pure module module function as_character(self) result(character_self) Implementation → Arguments Type Intent Optional Attributes Name class( intrinsic_array_t ), intent(in) :: self Return Value character(len=:),allocatable","tags":"","loc":"interface/as_character.html"},{"title":"construct – Assert library","text":"module procedure construct module procedure construct() Arguments None Contents None","tags":"","loc":"proc/construct.html"},{"title":"as_character – Assert library","text":"module procedure as_character pure module module function as_character(self) result(character_self) Interface → Arguments Type Intent Optional Attributes Name class( intrinsic_array_t ), intent(in) :: self Return Value character(len=:),allocatable Calls proc~~as_character~~CallsGraph proc~as_character as_character interface~intrinsic_array_t intrinsic_array_t proc~as_character->interface~intrinsic_array_t interface~assert assert proc~as_character->interface~assert proc~assert assert interface~assert->proc~assert interface~assert_always assert_always proc~assert->interface~assert_always proc~assert_always assert_always interface~assert_always->proc~assert_always Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~as_character~~CalledByGraph proc~as_character as_character interface~as_character as_character interface~as_character->proc~as_character Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/as_character.html"},{"title":"assert – Assert library","text":"module procedure assert pure module module subroutine assert(assertion, description, diagnostic_data) Interface → Arguments Type Intent Optional Attributes Name logical, intent(in) :: assertion Most assertions will be expressions such as i>0 character(len=*), intent(in) :: description A brief statement of what is being asserted such as \"i>0\" or \"positive i\" class(*), intent(in), optional :: diagnostic_data Data to include in an error ouptput: may be of an intrinsic type or a type that extends characterizable_t Calls proc~~assert~~CallsGraph proc~assert assert interface~assert_always assert_always proc~assert->interface~assert_always proc~assert_always assert_always interface~assert_always->proc~assert_always Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~assert~~CalledByGraph proc~assert assert interface~assert assert interface~assert->proc~assert proc~as_character as_character proc~as_character->interface~assert interface~as_character as_character interface~as_character->proc~as_character Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/assert.html"},{"title":"assert_always – Assert library","text":"module procedure assert_always pure module module subroutine assert_always(assertion, description, diagnostic_data) Interface → Uses characterizable_m proc~~assert_always~~UsesGraph proc~assert_always assert_always module~characterizable_m characterizable_m proc~assert_always->module~characterizable_m Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Arguments Type Intent Optional Attributes Name logical, intent(in) :: assertion character(len=*), intent(in) :: description class(*), intent(in), optional :: diagnostic_data Called by proc~~assert_always~~CalledByGraph proc~assert_always assert_always interface~assert_always assert_always interface~assert_always->proc~assert_always proc~assert assert proc~assert->interface~assert_always interface~assert assert interface~assert->proc~assert proc~as_character as_character proc~as_character->interface~assert interface~as_character as_character interface~as_character->proc~as_character Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/assert_always.html"},{"title":"assert_m – Assert library","text":"Uses intrinsic_array_m characterizable_m string_m assert_subroutine_m module~~assert_m~~UsesGraph module~assert_m assert_m module~intrinsic_array_m intrinsic_array_m module~assert_m->module~intrinsic_array_m module~string_m string_m module~assert_m->module~string_m module~characterizable_m characterizable_m module~assert_m->module~characterizable_m module~assert_subroutine_m assert_subroutine_m module~assert_m->module~assert_subroutine_m module~intrinsic_array_m->module~characterizable_m Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Used by module~~assert_m~~UsedByGraph module~assert_m assert_m module~intrinsic_array_s intrinsic_array_s module~intrinsic_array_s->module~assert_m Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents None","tags":"","loc":"module/assert_m.html"},{"title":"characterizable_m – Assert library","text":"Define an abstract class that supports object representation in character form Used by module~~characterizable_m~~UsedByGraph module~characterizable_m characterizable_m proc~assert_always assert_always proc~assert_always->module~characterizable_m module~assert_m assert_m module~assert_m->module~characterizable_m module~intrinsic_array_m intrinsic_array_m module~assert_m->module~intrinsic_array_m module~intrinsic_array_m->module~characterizable_m module~intrinsic_array_s intrinsic_array_s module~intrinsic_array_s->module~assert_m module~intrinsic_array_s->module~intrinsic_array_m Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Abstract Interfaces as_character_i Derived Types characterizable_t Abstract Interfaces abstract interface private pure function as_character_i(self) result(character_self) Arguments Type Intent Optional Attributes Name class( characterizable_t ), intent(in) :: self Return Value character(len=:),allocatable Derived Types type, public, abstract :: characterizable_t Type-Bound Procedures procedure(as_character_i), public :: as_character","tags":"","loc":"module/characterizable_m.html"},{"title":"assert_subroutine_m – Assert library","text":"use assertions_m, only : assert\n call assert( 2 > 1, \"2 > 1\") Assertion enforcement is controlled via the 0 preprocessor macro,\nwhich can be defined to non-zero or zero at compilation time to\nrespectively enable or disable runtime assertion enforcement. When the 0 preprocessor macro is not defined to any value,\nthe default is that assertions are disabled and will not check the condition. Disabling assertion enforcement may eliminate any associated runtime\noverhead by enabling optimizing compilers to ignore the assertion procedure\nbody during a dead-code-removal phase of optimization. To enable assertion enforcement (e.g., for a debug build), define the preprocessor 0 to non-zero.\nThis file's capitalized .F90 extension causes most Fortran compilers to preprocess this file so\nthat building as follows enables assertion enforcement: fpm build --flag \"-DASSERTIONS\" Used by Descendants: assert_subroutine_s module~~assert_subroutine_m~~UsedByGraph module~assert_subroutine_m assert_subroutine_m module~assert_m assert_m module~assert_m->module~assert_subroutine_m module~assert_subroutine_s assert_subroutine_s module~assert_subroutine_s->module~assert_subroutine_m module~intrinsic_array_s intrinsic_array_s module~intrinsic_array_s->module~assert_m Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Variables enforce_assertions Interfaces assert assert_always Variables Type Visibility Attributes Name Initial logical, private, parameter :: enforce_assertions = .false. Interfaces interface public pure module module subroutine assert(assertion, description, diagnostic_data) Implementation → If assertion is .false. and enforcement is enabled (e.g. via -DASSERTIONS=1), \nthen error-terminate with a character stop code that contains diagnostic_data if present Arguments Type Intent Optional Attributes Name logical, intent(in) :: assertion Most assertions will be expressions such as i>0 character(len=*), intent(in) :: description A brief statement of what is being asserted such as \"i>0\" or \"positive i\" class(*), intent(in), optional :: diagnostic_data Data to include in an error ouptput: may be of an intrinsic type or a type that extends characterizable_t interface public pure module module subroutine assert_always(assertion, description, diagnostic_data) Implementation → Same as above but always enforces the assertion (regardless of 0) Arguments Type Intent Optional Attributes Name logical, intent(in) :: assertion character(len=*), intent(in) :: description class(*), intent(in), optional :: diagnostic_data","tags":"","loc":"module/assert_subroutine_m.html"},{"title":"string_m – Assert library","text":"Used by module~~string_m~~UsedByGraph module~string_m string_m module~assert_m assert_m module~assert_m->module~string_m module~intrinsic_array_s intrinsic_array_s module~intrinsic_array_s->module~assert_m Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Functions string Functions public pure function string (number) result(number_as_string) Arguments Type Intent Optional Attributes Name integer, intent(in) :: number Return Value character(len=:),allocatable","tags":"","loc":"module/string_m.html"},{"title":"intrinsic_array_m – Assert library","text":"Define an abstract class that supports object representation in character form Uses characterizable_m module~~intrinsic_array_m~~UsesGraph module~intrinsic_array_m intrinsic_array_m module~characterizable_m characterizable_m module~intrinsic_array_m->module~characterizable_m Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Used by Descendants: intrinsic_array_s module~~intrinsic_array_m~~UsedByGraph module~intrinsic_array_m intrinsic_array_m module~assert_m assert_m module~assert_m->module~intrinsic_array_m module~intrinsic_array_s intrinsic_array_s module~intrinsic_array_s->module~intrinsic_array_m module~intrinsic_array_s->module~assert_m Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Interfaces intrinsic_array_t as_character Derived Types intrinsic_array_t Interfaces public interface intrinsic_array_t private pure module function construct(array) result(intrinsic_array) Arguments Type Intent Optional Attributes Name class(*), intent(in) :: array (..) Return Value type( intrinsic_array_t ) interface private pure module module function as_character(self) result(character_self) Implementation → Arguments Type Intent Optional Attributes Name class( intrinsic_array_t ), intent(in) :: self Return Value character(len=:),allocatable Derived Types type, public, extends( characterizable_t ) :: intrinsic_array_t Components Type Visibility Attributes Name Initial complex, private, allocatable :: complex_1D (:) complex(kind=kind(1.D0)), private, allocatable :: complex_double_1D (:) integer, private, allocatable :: integer_1D (:) logical, private, allocatable :: logical_1D (:) real, private, allocatable :: real_1D (:) double precision, private, allocatable :: double_precision_1D (:) complex, private, allocatable :: complex_2D (:,:) complex(kind=kind(1.D0)), private, allocatable :: complex_double_2D (:,:) integer, private, allocatable :: integer_2D (:,:) logical, private, allocatable :: logical_2D (:,:) real, private, allocatable :: real_2D (:,:) double precision, private, allocatable :: double_precision_2D (:,:) complex, private, allocatable :: complex_3D (:,:,:) complex(kind=kind(1.D0)), private, allocatable :: complex_double_3D (:,:,:) integer, private, allocatable :: integer_3D (:,:,:) logical, private, allocatable :: logical_3D (:,:,:) real, private, allocatable :: real_3D (:,:,:) double precision, private, allocatable :: double_precision_3D (:,:,:) Constructor private pure,module function construct (array) Type-Bound Procedures procedure, public :: as_character","tags":"","loc":"module/intrinsic_array_m.html"},{"title":"intrinsic_array_s – Assert library","text":"Uses assert_m Ancestors: intrinsic_array_m module~~intrinsic_array_s~~UsesGraph module~intrinsic_array_s intrinsic_array_s module~assert_m assert_m module~intrinsic_array_s->module~assert_m module~intrinsic_array_m intrinsic_array_m module~intrinsic_array_s->module~intrinsic_array_m module~assert_m->module~intrinsic_array_m module~string_m string_m module~assert_m->module~string_m module~characterizable_m characterizable_m module~assert_m->module~characterizable_m module~assert_subroutine_m assert_subroutine_m module~assert_m->module~assert_subroutine_m module~intrinsic_array_m->module~characterizable_m Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Functions allocated_components Module Procedures construct as_character Functions pure function allocated_components (self) Arguments Type Intent Optional Attributes Name type( intrinsic_array_t ), intent(in) :: self Return Value logical,allocatable, (:) Module Procedures module procedure construct module procedure construct() Arguments None module procedure as_character pure module module function as_character(self) result(character_self) Interface → Arguments Type Intent Optional Attributes Name class( intrinsic_array_t ), intent(in) :: self Return Value character(len=:),allocatable","tags":"","loc":"module/intrinsic_array_s.html"},{"title":"assert_subroutine_s – Assert library","text":"Uses Ancestors: assert_subroutine_m module~~assert_subroutine_s~~UsesGraph module~assert_subroutine_s assert_subroutine_s module~assert_subroutine_m assert_subroutine_m module~assert_subroutine_s->module~assert_subroutine_m Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Module Procedures assert assert_always Module Procedures module procedure assert pure module module subroutine assert(assertion, description, diagnostic_data) Interface → Arguments Type Intent Optional Attributes Name logical, intent(in) :: assertion Most assertions will be expressions such as i>0 character(len=*), intent(in) :: description A brief statement of what is being asserted such as \"i>0\" or \"positive i\" class(*), intent(in), optional :: diagnostic_data Data to include in an error ouptput: may be of an intrinsic type or a type that extends characterizable_t module procedure assert_always pure module module subroutine assert_always(assertion, description, diagnostic_data) Interface → Arguments Type Intent Optional Attributes Name logical, intent(in) :: assertion character(len=*), intent(in) :: description class(*), intent(in), optional :: diagnostic_data","tags":"","loc":"module/assert_subroutine_s.html"},{"title":"assert_m.f90 – Assert library","text":"This file depends on sourcefile~~assert_m.f90~~EfferentGraph sourcefile~assert_m.f90 assert_m.f90 sourcefile~intrinsic_array_m.f90 intrinsic_array_m.F90 sourcefile~assert_m.f90->sourcefile~intrinsic_array_m.f90 sourcefile~string_m.f90 string_m.f90 sourcefile~assert_m.f90->sourcefile~string_m.f90 sourcefile~assert_subroutine_m.f90 assert_subroutine_m.F90 sourcefile~assert_m.f90->sourcefile~assert_subroutine_m.f90 sourcefile~characterizable_m.f90 characterizable_m.f90 sourcefile~assert_m.f90->sourcefile~characterizable_m.f90 sourcefile~intrinsic_array_m.f90->sourcefile~characterizable_m.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Files dependent on this one sourcefile~~assert_m.f90~~AfferentGraph sourcefile~assert_m.f90 assert_m.f90 sourcefile~intrinsic_array_s.f90 intrinsic_array_s.F90 sourcefile~intrinsic_array_s.f90->sourcefile~assert_m.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules assert_m Source Code assert_m.f90 Source Code module assert_m use intrinsic_array_m use assert_subroutine_m use characterizable_m use string_m , only : string implicit none end module assert_m","tags":"","loc":"sourcefile/assert_m.f90.html"},{"title":"intrinsic_array_s.F90 – Assert library","text":"This file depends on sourcefile~~intrinsic_array_s.f90~~EfferentGraph sourcefile~intrinsic_array_s.f90 intrinsic_array_s.F90 sourcefile~intrinsic_array_m.f90 intrinsic_array_m.F90 sourcefile~intrinsic_array_s.f90->sourcefile~intrinsic_array_m.f90 sourcefile~assert_m.f90 assert_m.f90 sourcefile~intrinsic_array_s.f90->sourcefile~assert_m.f90 sourcefile~characterizable_m.f90 characterizable_m.f90 sourcefile~intrinsic_array_m.f90->sourcefile~characterizable_m.f90 sourcefile~assert_m.f90->sourcefile~intrinsic_array_m.f90 sourcefile~assert_m.f90->sourcefile~characterizable_m.f90 sourcefile~string_m.f90 string_m.f90 sourcefile~assert_m.f90->sourcefile~string_m.f90 sourcefile~assert_subroutine_m.f90 assert_subroutine_m.F90 sourcefile~assert_m.f90->sourcefile~assert_subroutine_m.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Submodules intrinsic_array_s Source Code intrinsic_array_s.F90 Source Code submodule ( intrinsic_array_m ) intrinsic_array_s use assert_m , only : assert implicit none contains #ifndef _CRAYFTN module procedure construct select rank ( array ) rank ( 1 ) select type ( array ) type is ( complex ) allocate ( intrinsic_array % complex_1D , source = array ) type is ( complex ( kind ( 1.D0 ))) allocate ( intrinsic_array % complex_double_1D , source = array ) type is ( integer ) allocate ( intrinsic_array % integer_1D , source = array ) type is ( logical ) allocate ( intrinsic_array % logical_1D , source = array ) type is ( real ) allocate ( intrinsic_array % real_1D , source = array ) type is ( double precision ) intrinsic_array % double_precision_1D = array class default error stop \"intrinsic_array_s(construct): unsupported rank-1 type\" end select rank ( 2 ) select type ( array ) type is ( complex ) allocate ( intrinsic_array % complex_2D , source = array ) type is ( complex ( kind ( 1.D0 ))) allocate ( intrinsic_array % complex_double_2D , source = array ) type is ( integer ) allocate ( intrinsic_array % integer_2D , source = array ) type is ( logical ) allocate ( intrinsic_array % logical_2D , source = array ) type is ( real ) allocate ( intrinsic_array % real_2D , source = array ) type is ( double precision ) allocate ( intrinsic_array % double_precision_2D , source = array ) class default error stop \"intrinsic_array_s(construct): unsupported rank-2 type\" end select rank ( 3 ) select type ( array ) type is ( complex ) allocate ( intrinsic_array % complex_3D , source = array ) type is ( complex ( kind ( 1.D0 ))) allocate ( intrinsic_array % complex_double_3D , source = array ) type is ( integer ) allocate ( intrinsic_array % integer_3D , source = array ) type is ( logical ) allocate ( intrinsic_array % logical_3D , source = array ) type is ( real ) allocate ( intrinsic_array % real_3D , source = array ) type is ( double precision ) allocate ( intrinsic_array % double_precision_3D , source = array ) class default error stop \"intrinsic_array_s(construct): unsupported rank-3 type\" end select rank default error stop \"intrinsic_array_s(construct): unsupported rank\" end select end procedure #else module procedure complex_array select rank ( array ) rank ( 1 ) allocate ( intrinsic_array % complex_1D , source = array ) rank ( 2 ) allocate ( intrinsic_array % complex_2D , source = array ) rank ( 3 ) allocate ( intrinsic_array % complex_3D , source = array ) rank default error stop \"intrinsic_array_s(complex_array): unsupported rank\" end select end procedure module procedure integer_array select rank ( array ) rank ( 1 ) allocate ( intrinsic_array % integer_1D , source = array ) rank ( 2 ) allocate ( intrinsic_array % integer_2D , source = array ) rank ( 3 ) allocate ( intrinsic_array % integer_3D , source = array ) rank default error stop \"intrinsic_array_s(integer_array): unsupported rank\" end select end procedure module procedure logical_array select rank ( array ) rank ( 1 ) allocate ( intrinsic_array % logical_1D , source = array ) rank ( 2 ) allocate ( intrinsic_array % logical_2D , source = array ) rank ( 3 ) allocate ( intrinsic_array % logical_3D , source = array ) rank default error stop \"intrinsic_array_s(logical_array): unsupported rank\" end select end procedure module procedure real_array select rank ( array ) rank ( 1 ) allocate ( intrinsic_array % real_1D , source = array ) rank ( 2 ) allocate ( intrinsic_array % real_2D , source = array ) rank ( 3 ) allocate ( intrinsic_array % real_3D , source = array ) rank default error stop \"intrinsic_array_s(real_array): unsupported rank\" end select end procedure module procedure double_precision_array select rank ( array ) rank ( 1 ) allocate ( intrinsic_array % double_precision_1D , source = array ) rank ( 2 ) allocate ( intrinsic_array % double_precision_2D , source = array ) rank ( 3 ) allocate ( intrinsic_array % double_precision_3D , source = array ) rank default error stop \"intrinsic_array_s(double_precision_array): unsupported rank\" end select end procedure #endif pure function allocated_components ( self ) type ( intrinsic_array_t ), intent ( in ) :: self logical , allocatable :: allocated_components (:) allocated_components = [ & allocated ( self % complex_1D ), allocated ( self % real_1D ), allocated ( self % integer_1D ), allocated ( self % complex_double_1D ) & , allocated ( self % complex_2D ), allocated ( self % real_2D ), allocated ( self % integer_2D ), allocated ( self % complex_double_2D ) & , allocated ( self % complex_3D ), allocated ( self % real_3D ), allocated ( self % integer_3D ), allocated ( self % complex_double_3D ) & , allocated ( self % logical_1D ), allocated ( self % double_precision_1D ) & , allocated ( self % logical_2D ), allocated ( self % double_precision_2D ) & , allocated ( self % logical_3D ), allocated ( self % double_precision_3D ) & ] end function module procedure as_character integer , parameter :: single_number_width = 64 associate ( a => allocated_components ( self )) call assert ( count ( a ) == 1 , \"intrinsic_array_s(as_character): invalid number of allocated components\" , intrinsic_array_t ( a )) end associate if ( allocated ( self % complex_1D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % complex_1D )) write ( character_self , * ) self % complex_1D else if ( allocated ( self % complex_double_1D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % complex_double_1D )) write ( character_self , * ) self % complex_double_1D else if ( allocated ( self % integer_1D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % integer_1D )) write ( character_self , * ) self % integer_1D else if ( allocated ( self % logical_1D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % logical_1D )) write ( character_self , * ) self % logical_1D else if ( allocated ( self % real_1D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % real_1D )) write ( character_self , * ) self % real_1D else if ( allocated ( self % double_precision_1D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % double_precision_1D )) write ( character_self , * ) self % double_precision_1D else if ( allocated ( self % complex_2D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % complex_2D )) write ( character_self , * ) self % complex_2D else if ( allocated ( self % complex_double_2D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % complex_double_2D )) write ( character_self , * ) self % complex_double_2D else if ( allocated ( self % integer_2D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % integer_2D )) write ( character_self , * ) self % integer_2D else if ( allocated ( self % logical_2D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % logical_2D )) write ( character_self , * ) self % logical_2D else if ( allocated ( self % real_2D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % real_2D )) write ( character_self , * ) self % real_2D else if ( allocated ( self % double_precision_2D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % double_precision_2D )) write ( character_self , * ) self % double_precision_2D else if ( allocated ( self % complex_3D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % complex_3D )) write ( character_self , * ) self % complex_3D else if ( allocated ( self % complex_double_3D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % complex_double_3D )) write ( character_self , * ) self % complex_double_3D else if ( allocated ( self % integer_3D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % integer_3D )) write ( character_self , * ) self % integer_3D else if ( allocated ( self % logical_3D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % logical_3D )) write ( character_self , * ) self % logical_3D else if ( allocated ( self % real_3D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % real_3D )) write ( character_self , * ) self % real_3D else if ( allocated ( self % double_precision_3D )) then character_self = repeat ( \" \" , ncopies = single_number_width * size ( self % double_precision_3D )) write ( character_self , * ) self % double_precision_3D end if character_self = trim ( adjustl ( character_self )) end procedure end submodule intrinsic_array_s","tags":"","loc":"sourcefile/intrinsic_array_s.f90.html"},{"title":"characterizable_m.f90 – Assert library","text":"Files dependent on this one sourcefile~~characterizable_m.f90~~AfferentGraph sourcefile~characterizable_m.f90 characterizable_m.f90 sourcefile~intrinsic_array_m.f90 intrinsic_array_m.F90 sourcefile~intrinsic_array_m.f90->sourcefile~characterizable_m.f90 sourcefile~assert_m.f90 assert_m.f90 sourcefile~assert_m.f90->sourcefile~characterizable_m.f90 sourcefile~assert_m.f90->sourcefile~intrinsic_array_m.f90 sourcefile~assert_subroutine_s.f90 assert_subroutine_s.F90 sourcefile~assert_subroutine_s.f90->sourcefile~characterizable_m.f90 sourcefile~intrinsic_array_s.f90 intrinsic_array_s.F90 sourcefile~intrinsic_array_s.f90->sourcefile~intrinsic_array_m.f90 sourcefile~intrinsic_array_s.f90->sourcefile~assert_m.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules characterizable_m Source Code characterizable_m.f90 Source Code module characterizable_m !! Define an abstract class that supports object representation in character form implicit none private public :: characterizable_t type , abstract :: characterizable_t contains procedure ( as_character_i ), deferred :: as_character end type abstract interface pure function as_character_i ( self ) result ( character_self ) import characterizable_t implicit none class ( characterizable_t ), intent ( in ) :: self character ( len = :), allocatable :: character_self end function end interface end module characterizable_m","tags":"","loc":"sourcefile/characterizable_m.f90.html"},{"title":"assert_subroutine_m.F90 – Assert library","text":"Files dependent on this one sourcefile~~assert_subroutine_m.f90~~AfferentGraph sourcefile~assert_subroutine_m.f90 assert_subroutine_m.F90 sourcefile~assert_m.f90 assert_m.f90 sourcefile~assert_m.f90->sourcefile~assert_subroutine_m.f90 sourcefile~assert_subroutine_s.f90 assert_subroutine_s.F90 sourcefile~assert_subroutine_s.f90->sourcefile~assert_subroutine_m.f90 sourcefile~intrinsic_array_s.f90 intrinsic_array_s.F90 sourcefile~intrinsic_array_s.f90->sourcefile~assert_m.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules assert_subroutine_m Source Code assert_subroutine_m.F90 Source Code ! (c) 2024 UC Regents, see LICENSE file for detailed terms. ! ! (c) 2019-2020 Guide Star Engineering, LLC ! This Software was developed for the US Nuclear Regulatory Commission (US NRC) under contract ! \"Multi-Dimensional Physics Implementation into Fuel Analysis under Steady-state and Transients (FAST)\", ! contract # NRC-HQ-60-17-C-0007 ! #include \"assert_macros.h\" module assert_subroutine_m !! summary: Utility for runtime enforcement of logical assertions. !! usage: error-terminate if the assertion fails: !! !! use assertions_m, only : assert !! call assert( 2 > 1, \"2 > 1\") !! !! Assertion enforcement is controlled via the `ASSERTIONS` preprocessor macro, !! which can be defined to non-zero or zero at compilation time to !! respectively enable or disable runtime assertion enforcement. !! !! When the `ASSERTIONS` preprocessor macro is not defined to any value, !! the default is that assertions are *disabled* and will not check the condition. !! !! Disabling assertion enforcement may eliminate any associated runtime !! overhead by enabling optimizing compilers to ignore the assertion procedure !! body during a dead-code-removal phase of optimization. !! !! To enable assertion enforcement (e.g., for a debug build), define the preprocessor ASSERTIONS to non-zero. !! This file's capitalized .F90 extension causes most Fortran compilers to preprocess this file so !! that building as follows enables assertion enforcement: !! !! fpm build --flag \"-DASSERTIONS\" !! implicit none private public :: assert , assert_always #ifndef USE_ASSERTIONS # if ASSERTIONS # define USE_ASSERTIONS .true. # else # define USE_ASSERTIONS .false. # endif #endif logical , parameter :: enforce_assertions = USE_ASSERTIONS interface pure module subroutine assert ( assertion , description , diagnostic_data ) !! If assertion is .false. and enforcement is enabled (e.g. via -DASSERTIONS=1), !! then error-terminate with a character stop code that contains diagnostic_data if present implicit none logical , intent ( in ) :: assertion !! Most assertions will be expressions such as i>0 character ( len =* ), intent ( in ) :: description !! A brief statement of what is being asserted such as \"i>0\" or \"positive i\" class ( * ), intent ( in ), optional :: diagnostic_data !! Data to include in an error ouptput: may be of an intrinsic type or a type that extends characterizable_t end subroutine pure module subroutine assert_always ( assertion , description , diagnostic_data ) !! Same as above but always enforces the assertion (regardless of ASSERTIONS) implicit none logical , intent ( in ) :: assertion character ( len =* ), intent ( in ) :: description class ( * ), intent ( in ), optional :: diagnostic_data end subroutine end interface end module assert_subroutine_m","tags":"","loc":"sourcefile/assert_subroutine_m.f90.html"},{"title":"string_m.f90 – Assert library","text":"Files dependent on this one sourcefile~~string_m.f90~~AfferentGraph sourcefile~string_m.f90 string_m.f90 sourcefile~assert_m.f90 assert_m.f90 sourcefile~assert_m.f90->sourcefile~string_m.f90 sourcefile~intrinsic_array_s.f90 intrinsic_array_s.F90 sourcefile~intrinsic_array_s.f90->sourcefile~assert_m.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules string_m Source Code string_m.f90 Source Code module string_m implicit none contains pure function string ( number ) result ( number_as_string ) integer , intent ( in ) :: number integer , parameter :: max_len = 128 character ( len = max_len ) :: untrimmed_string character ( len = :), allocatable :: number_as_string write ( untrimmed_string , * ) number number_as_string = trim ( adjustl ( untrimmed_string )) end function end module string_m","tags":"","loc":"sourcefile/string_m.f90.html"},{"title":"intrinsic_array_m.F90 – Assert library","text":"This file depends on sourcefile~~intrinsic_array_m.f90~~EfferentGraph sourcefile~intrinsic_array_m.f90 intrinsic_array_m.F90 sourcefile~characterizable_m.f90 characterizable_m.f90 sourcefile~intrinsic_array_m.f90->sourcefile~characterizable_m.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Files dependent on this one sourcefile~~intrinsic_array_m.f90~~AfferentGraph sourcefile~intrinsic_array_m.f90 intrinsic_array_m.F90 sourcefile~assert_m.f90 assert_m.f90 sourcefile~assert_m.f90->sourcefile~intrinsic_array_m.f90 sourcefile~intrinsic_array_s.f90 intrinsic_array_s.F90 sourcefile~intrinsic_array_s.f90->sourcefile~intrinsic_array_m.f90 sourcefile~intrinsic_array_s.f90->sourcefile~assert_m.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules intrinsic_array_m Source Code intrinsic_array_m.F90 Source Code module intrinsic_array_m !! Define an abstract class that supports object representation in character form use characterizable_m , only : characterizable_t implicit none private public :: intrinsic_array_t type , extends ( characterizable_t ) :: intrinsic_array_t complex , allocatable :: complex_1D (:) complex ( kind ( 1.D0 )), allocatable :: complex_double_1D (:) integer , allocatable :: integer_1D (:) logical , allocatable :: logical_1D (:) real , allocatable :: real_1D (:) double precision , allocatable :: double_precision_1D (:) complex , allocatable :: complex_2D (:,:) complex ( kind ( 1.D0 )), allocatable :: complex_double_2D (:,:) integer , allocatable :: integer_2D (:,:) logical , allocatable :: logical_2D (:,:) real , allocatable :: real_2D (:,:) double precision , allocatable :: double_precision_2D (:,:) complex , allocatable :: complex_3D (:,:,:) complex ( kind ( 1.D0 )), allocatable :: complex_double_3D (:,:,:) integer , allocatable :: integer_3D (:,:,:) logical , allocatable :: logical_3D (:,:,:) real , allocatable :: real_3D (:,:,:) double precision , allocatable :: double_precision_3D (:,:,:) contains procedure :: as_character end type interface intrinsic_array_t #ifndef _CRAYFTN pure module function construct ( array ) result ( intrinsic_array ) implicit none class ( * ), intent ( in ) :: array (..) type ( intrinsic_array_t ) intrinsic_array end function #else pure module function complex_array ( array ) result ( intrinsic_array ) implicit none complex , intent ( in ) :: array (..) type ( intrinsic_array_t ) intrinsic_array end function pure module function integer_array ( array ) result ( intrinsic_array ) implicit none integer , intent ( in ) :: array (..) type ( intrinsic_array_t ) intrinsic_array end function pure module function logical_array ( array ) result ( intrinsic_array ) implicit none logical , intent ( in ) :: array (..) type ( intrinsic_array_t ) intrinsic_array end function pure module function real_array ( array ) result ( intrinsic_array ) implicit none real , intent ( in ) :: array (..) type ( intrinsic_array_t ) intrinsic_array end function pure module function double_precision_array ( array ) result ( intrinsic_array ) implicit none double precision , intent ( in ) :: array (..) type ( intrinsic_array_t ) intrinsic_array end function #endif end interface interface pure module function as_character ( self ) result ( character_self ) implicit none class ( intrinsic_array_t ), intent ( in ) :: self character ( len = :), allocatable :: character_self end function end interface end module intrinsic_array_m","tags":"","loc":"sourcefile/intrinsic_array_m.f90.html"},{"title":"assert_subroutine_s.F90 – Assert library","text":"This file depends on sourcefile~~assert_subroutine_s.f90~~EfferentGraph sourcefile~assert_subroutine_s.f90 assert_subroutine_s.F90 sourcefile~assert_subroutine_m.f90 assert_subroutine_m.F90 sourcefile~assert_subroutine_s.f90->sourcefile~assert_subroutine_m.f90 sourcefile~characterizable_m.f90 characterizable_m.f90 sourcefile~assert_subroutine_s.f90->sourcefile~characterizable_m.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Submodules assert_subroutine_s Source Code assert_subroutine_s.F90 Source Code ! ! (c) 2019-2020 Guide Star Engineering, LLC ! This Software was developed for the US Nuclear Regulatory Commission (US NRC) under contract ! \"Multi-Dimensional Physics Implementation into Fuel Analysis under Steady-state and Transients (FAST)\", ! contract # NRC-HQ-60-17-C-0007 ! submodule ( assert_subroutine_m ) assert_subroutine_s implicit none contains module procedure assert toggle_assertions : & if ( enforce_assertions ) then call assert_always ( assertion , description , diagnostic_data ) end if toggle_assertions end procedure module procedure assert_always use characterizable_m , only : characterizable_t character ( len = :), allocatable :: header , trailer check_assertion : & if (. not . assertion ) then #ifndef __flang__ associate ( me => this_image ()) ! work around gfortran bug header = 'Assertion \"' // description // '\" failed on image ' // string ( me ) end associate #else header = 'Assertion \"' // description // '\" failed.' #endif represent_diagnostics_as_string : & if (. not . present ( diagnostic_data )) then trailer = \"\" else select type ( diagnostic_data ) type is ( character ( len =* )) trailer = diagnostic_data type is ( complex ) trailer = string ( diagnostic_data ) type is ( integer ) trailer = string ( diagnostic_data ) type is ( logical ) trailer = string ( diagnostic_data ) type is ( real ) trailer = string ( diagnostic_data ) class is ( characterizable_t ) trailer = diagnostic_data % as_character () class default trailer = \"of unsupported type.\" end select trailer = ' with diagnostic data \"' // trailer // '\"' end if represent_diagnostics_as_string error stop header // trailer end if check_assertion contains pure function string ( numeric ) result ( number_as_string ) !! Result is a string represention of the numeric argument class ( * ), intent ( in ) :: numeric integer , parameter :: max_len = 128 character ( len = max_len ) :: untrimmed_string character ( len = :), allocatable :: number_as_string select type ( numeric ) type is ( complex ) write ( untrimmed_string , * ) numeric type is ( integer ) write ( untrimmed_string , * ) numeric type is ( logical ) write ( untrimmed_string , * ) numeric type is ( real ) write ( untrimmed_string , * ) numeric class default error stop \"Internal error in subroutine 'assert': unsupported type in function 'string'.\" end select number_as_string = trim ( adjustl ( untrimmed_string )) end function string end procedure end submodule assert_subroutine_s","tags":"","loc":"sourcefile/assert_subroutine_s.f90.html"}]} \ No newline at end of file