0.6.2-dev0
FORCES
FORtran lib for Comp. Env. Sys.
Loading...
Searching...
No Matches
mo_sentinel Module Reference

Module to handle sentinels. More...

Data Types

interface  check_sentinel
 Check given variable to be equal to the sentinel value. More...
 
interface  get_sentinel
 Get sentinel values of the given kind. More...
 
interface  set_sentinel
 Set variable to sentinel value. More...
 

Functions/Subroutines

pure character function, public sentinel_char ()
 Default sentinel value (Null character) for characters.
 
pure integer(i1) function, public sentinel_i1 ()
 Default sentinel value (-huge()-1) for i1.
 
pure integer(i2) function, public sentinel_i2 ()
 Default sentinel value (-huge()-1) for i2.
 
pure integer(i4) function, public sentinel_i4 ()
 Default sentinel value (-huge()-1) for i4.
 
pure integer(i8) function, public sentinel_i8 ()
 Default sentinel value (-huge()-1) for i8.
 
pure real(sp) function, public sentinel_sp ()
 Default sentinel value (NaN) for sp.
 
pure real(dp) function, public sentinel_dp ()
 Default sentinel value (NaN) for dp.
 
pure complex(spc) function, public sentinel_spc ()
 Default sentinel value (NaN) for spc.
 
pure complex(dpc) function, public sentinel_dpc ()
 Default sentinel value (NaN) for dpc.
 
elemental subroutine set_sentinel_i1 (value)
 Set sentinel value for i1.
 
elemental subroutine set_sentinel_i2 (value)
 Set sentinel value for i2.
 
elemental subroutine set_sentinel_i4 (value)
 Set sentinel value for i4.
 
elemental subroutine set_sentinel_i8 (value)
 Set sentinel value for i8.
 
elemental subroutine set_sentinel_sp (value)
 Set sentinel value for sp.
 
elemental subroutine set_sentinel_dp (value)
 Set sentinel value for dp.
 
elemental subroutine set_sentinel_spc (value)
 Set sentinel value for spc.
 
elemental subroutine set_sentinel_dpc (value)
 Set sentinel value for dpc.
 
elemental subroutine set_sentinel_char (value)
 Set sentinel value for char.
 
elemental character function get_sentinel_char (value)
 Get sentinel value for char.
 
elemental integer(i1) function get_sentinel_i1 (value)
 Get sentinel value for i1.
 
elemental integer(i2) function get_sentinel_i2 (value)
 Get sentinel value for i2.
 
elemental integer(i4) function get_sentinel_i4 (value)
 Get sentinel value for i4.
 
elemental integer(i8) function get_sentinel_i8 (value)
 Get sentinel value for i8.
 
elemental real(sp) function get_sentinel_sp (value)
 Get sentinel value for sp.
 
elemental real(dp) function get_sentinel_dp (value)
 Get sentinel value for dp.
 
elemental complex(spc) function get_sentinel_spc (value)
 Get sentinel value for spc.
 
elemental complex(dpc) function get_sentinel_dpc (value)
 Get sentinel value for dpc.
 
elemental logical function check_sentinel_char (value)
 Check for sentinel value for string.
 
elemental logical function check_sentinel_i1 (value)
 Check for sentinel value for i1.
 
elemental logical function check_sentinel_i2 (value)
 Check for sentinel value for i2.
 
elemental logical function check_sentinel_i4 (value)
 Check for sentinel value for i4.
 
elemental logical function check_sentinel_i8 (value)
 Check for sentinel value for i8.
 
elemental logical function check_sentinel_sp (value)
 Check for sentinel value for sp.
 
elemental logical function check_sentinel_dp (value)
 Check for sentinel value for dp.
 
elemental logical function check_sentinel_spc (value)
 Check for sentinel value for spc.
 
elemental logical function check_sentinel_dpc (value)
 Check for sentinel value for dpc.
 

Variables

integer(i1), dimension(0), parameter empty_i1 = 0_i1
 
integer(i2), dimension(0), parameter empty_i2 = 0_i2
 
integer(i4), dimension(0), parameter empty_i4 = 0_i4
 
integer(i8), dimension(0), parameter empty_i8 = 0_i8
 
character, parameter sent_char = achar(0)
 

Detailed Description

Module to handle sentinels.

This module provides standard sentinels for all used types as well as set, get and check routines. Sentinels are used to mark variables in order to check if they were accessed by an algorithm. A common use case is to check if variables were set by reading a fortran namelist.

Version
0.1
Authors
Sebastian Mueller
Date
Sep 2022

Function/Subroutine Documentation

◆ check_sentinel_char()

elemental logical function mo_sentinel::check_sentinel_char ( character(*), intent(in)  value)
private

Check for sentinel value for string.

Parameters
[in]valuevalue to determine sentinel

Definition at line 266 of file mo_sentinel.f90.

Referenced by mo_sentinel::check_sentinel::check_sentinel_char().

Here is the caller graph for this function:

◆ check_sentinel_dp()

elemental logical function mo_sentinel::check_sentinel_dp ( real(dp), intent(in)  value)
private

Check for sentinel value for dp.

Parameters
[in]valuevalue to determine sentinel

Definition at line 315 of file mo_sentinel.f90.

Referenced by mo_sentinel::check_sentinel::check_sentinel_dp().

Here is the caller graph for this function:

◆ check_sentinel_dpc()

elemental logical function mo_sentinel::check_sentinel_dpc ( complex(dpc), intent(in)  value)
private

Check for sentinel value for dpc.

Parameters
[in]valuevalue to determine sentinel

Definition at line 327 of file mo_sentinel.f90.

Referenced by mo_sentinel::check_sentinel::check_sentinel_dpc().

Here is the caller graph for this function:

◆ check_sentinel_i1()

elemental logical function mo_sentinel::check_sentinel_i1 ( integer(i1), intent(in)  value)
private

Check for sentinel value for i1.

Parameters
[in]valuevalue to determine sentinel

Definition at line 277 of file mo_sentinel.f90.

Referenced by mo_sentinel::check_sentinel::check_sentinel_i1().

Here is the caller graph for this function:

◆ check_sentinel_i2()

elemental logical function mo_sentinel::check_sentinel_i2 ( integer(i2), intent(in)  value)
private

Check for sentinel value for i2.

Parameters
[in]valuevalue to determine sentinel

Definition at line 285 of file mo_sentinel.f90.

Referenced by mo_sentinel::check_sentinel::check_sentinel_i2().

Here is the caller graph for this function:

◆ check_sentinel_i4()

elemental logical function mo_sentinel::check_sentinel_i4 ( integer(i4), intent(in)  value)
private

Check for sentinel value for i4.

Parameters
[in]valuevalue to determine sentinel

Definition at line 293 of file mo_sentinel.f90.

Referenced by mo_sentinel::check_sentinel::check_sentinel_i4().

Here is the caller graph for this function:

◆ check_sentinel_i8()

elemental logical function mo_sentinel::check_sentinel_i8 ( integer(i8), intent(in)  value)
private

Check for sentinel value for i8.

Parameters
[in]valuevalue to determine sentinel

Definition at line 301 of file mo_sentinel.f90.

Referenced by mo_sentinel::check_sentinel::check_sentinel_i8().

Here is the caller graph for this function:

◆ check_sentinel_sp()

elemental logical function mo_sentinel::check_sentinel_sp ( real(sp), intent(in)  value)
private

Check for sentinel value for sp.

Parameters
[in]valuevalue to determine sentinel

Definition at line 309 of file mo_sentinel.f90.

Referenced by mo_sentinel::check_sentinel::check_sentinel_sp().

Here is the caller graph for this function:

◆ check_sentinel_spc()

elemental logical function mo_sentinel::check_sentinel_spc ( complex(spc), intent(in)  value)
private

Check for sentinel value for spc.

Parameters
[in]valuevalue to determine sentinel

Definition at line 321 of file mo_sentinel.f90.

Referenced by mo_sentinel::check_sentinel::check_sentinel_spc().

Here is the caller graph for this function:

◆ get_sentinel_char()

elemental character function mo_sentinel::get_sentinel_char ( character(*), intent(in)  value)
private

Get sentinel value for char.

Parameters
[in]valuevalue to determine sentinel

Definition at line 211 of file mo_sentinel.f90.

Referenced by mo_sentinel::get_sentinel::get_sentinel_char().

Here is the caller graph for this function:

◆ get_sentinel_dp()

elemental real(dp) function mo_sentinel::get_sentinel_dp ( real(dp), intent(in)  value)
private

Get sentinel value for dp.

Parameters
[in]valuevalue to determine sentinel

Definition at line 247 of file mo_sentinel.f90.

Referenced by mo_sentinel::get_sentinel::get_sentinel_dp().

Here is the caller graph for this function:

◆ get_sentinel_dpc()

elemental complex(dpc) function mo_sentinel::get_sentinel_dpc ( complex(dpc), intent(in)  value)
private

Get sentinel value for dpc.

Parameters
[in]valuevalue to determine sentinel

Definition at line 259 of file mo_sentinel.f90.

Referenced by mo_sentinel::get_sentinel::get_sentinel_dpc().

Here is the caller graph for this function:

◆ get_sentinel_i1()

elemental integer(i1) function mo_sentinel::get_sentinel_i1 ( integer(i1), intent(in)  value)
private

Get sentinel value for i1.

Parameters
[in]valuevalue to determine sentinel

Definition at line 217 of file mo_sentinel.f90.

Referenced by mo_sentinel::get_sentinel::get_sentinel_i1().

Here is the caller graph for this function:

◆ get_sentinel_i2()

elemental integer(i2) function mo_sentinel::get_sentinel_i2 ( integer(i2), intent(in)  value)
private

Get sentinel value for i2.

Parameters
[in]valuevalue to determine sentinel

Definition at line 223 of file mo_sentinel.f90.

Referenced by mo_sentinel::get_sentinel::get_sentinel_i2().

Here is the caller graph for this function:

◆ get_sentinel_i4()

elemental integer(i4) function mo_sentinel::get_sentinel_i4 ( integer(i4), intent(in)  value)
private

Get sentinel value for i4.

Parameters
[in]valuevalue to determine sentinel

Definition at line 229 of file mo_sentinel.f90.

Referenced by mo_sentinel::get_sentinel::get_sentinel_i4().

Here is the caller graph for this function:

◆ get_sentinel_i8()

elemental integer(i8) function mo_sentinel::get_sentinel_i8 ( integer(i8), intent(in)  value)
private

Get sentinel value for i8.

Parameters
[in]valuevalue to determine sentinel

Definition at line 235 of file mo_sentinel.f90.

Referenced by mo_sentinel::get_sentinel::get_sentinel_i8().

Here is the caller graph for this function:

◆ get_sentinel_sp()

elemental real(sp) function mo_sentinel::get_sentinel_sp ( real(sp), intent(in)  value)
private

Get sentinel value for sp.

Parameters
[in]valuevalue to determine sentinel

Definition at line 241 of file mo_sentinel.f90.

Referenced by mo_sentinel::get_sentinel::get_sentinel_sp().

Here is the caller graph for this function:

◆ get_sentinel_spc()

elemental complex(spc) function mo_sentinel::get_sentinel_spc ( complex(spc), intent(in)  value)
private

Get sentinel value for spc.

Parameters
[in]valuevalue to determine sentinel

Definition at line 253 of file mo_sentinel.f90.

Referenced by mo_sentinel::get_sentinel::get_sentinel_spc().

Here is the caller graph for this function:

◆ sentinel_char()

pure character function, public mo_sentinel::sentinel_char

Default sentinel value (Null character) for characters.

Returns
Default sentinel value (Null character) for characters.

Definition at line 98 of file mo_sentinel.f90.

References sentinel_char().

Referenced by mo_sentinel::get_sentinel::get_sentinel_char(), sentinel_char(), and mo_sentinel::set_sentinel::set_sentinel_char().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sentinel_dp()

pure real(dp) function, public mo_sentinel::sentinel_dp

Default sentinel value (NaN) for dp.

Returns
Default sentinel value (NaN) for dp.

Definition at line 134 of file mo_sentinel.f90.

References sentinel_dp().

Referenced by mo_sentinel::get_sentinel::get_sentinel_dp(), sentinel_dp(), sentinel_dpc(), and mo_sentinel::set_sentinel::set_sentinel_dp().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sentinel_dpc()

pure complex(dpc) function, public mo_sentinel::sentinel_dpc

Default sentinel value (NaN) for dpc.

Returns
Default sentinel value (NaN) for dpc.

Definition at line 148 of file mo_sentinel.f90.

References mo_kind::dpc, sentinel_dp(), and sentinel_dpc().

Referenced by mo_sentinel::get_sentinel::get_sentinel_dpc(), sentinel_dpc(), and mo_sentinel::set_sentinel::set_sentinel_dpc().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sentinel_i1()

pure integer(i1) function, public mo_sentinel::sentinel_i1

Default sentinel value (-huge()-1) for i1.

Returns
Default sentinel value (-huge()-1) for i1.

Definition at line 104 of file mo_sentinel.f90.

References sentinel_i1().

Referenced by mo_sentinel::check_sentinel::check_sentinel_i1(), mo_sentinel::get_sentinel::get_sentinel_i1(), sentinel_i1(), and mo_sentinel::set_sentinel::set_sentinel_i1().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sentinel_i2()

pure integer(i2) function, public mo_sentinel::sentinel_i2

Default sentinel value (-huge()-1) for i2.

Returns
Default sentinel value (-huge()-1) for i2.

Definition at line 110 of file mo_sentinel.f90.

References sentinel_i2().

Referenced by mo_sentinel::check_sentinel::check_sentinel_i2(), mo_sentinel::get_sentinel::get_sentinel_i2(), sentinel_i2(), and mo_sentinel::set_sentinel::set_sentinel_i2().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sentinel_i4()

pure integer(i4) function, public mo_sentinel::sentinel_i4

Default sentinel value (-huge()-1) for i4.

Returns
Default sentinel value (-huge()-1) for i4.

Definition at line 116 of file mo_sentinel.f90.

References sentinel_i4().

Referenced by mo_sentinel::check_sentinel::check_sentinel_i4(), mo_sentinel::get_sentinel::get_sentinel_i4(), sentinel_i4(), and mo_sentinel::set_sentinel::set_sentinel_i4().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sentinel_i8()

pure integer(i8) function, public mo_sentinel::sentinel_i8

Default sentinel value (-huge()-1) for i8.

Returns
Default sentinel value (-huge()-1) for i8.

Definition at line 122 of file mo_sentinel.f90.

References sentinel_i8().

Referenced by mo_sentinel::check_sentinel::check_sentinel_i8(), mo_sentinel::get_sentinel::get_sentinel_i8(), sentinel_i8(), and mo_sentinel::set_sentinel::set_sentinel_i8().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sentinel_sp()

pure real(sp) function, public mo_sentinel::sentinel_sp

Default sentinel value (NaN) for sp.

Returns
Default sentinel value (NaN) for sp.

Definition at line 128 of file mo_sentinel.f90.

References sentinel_sp().

Referenced by mo_sentinel::get_sentinel::get_sentinel_sp(), sentinel_sp(), sentinel_spc(), and mo_sentinel::set_sentinel::set_sentinel_sp().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sentinel_spc()

pure complex(spc) function, public mo_sentinel::sentinel_spc

Default sentinel value (NaN) for spc.

Returns
Default sentinel value (NaN) for spc.

Definition at line 140 of file mo_sentinel.f90.

References sentinel_sp(), sentinel_spc(), and mo_kind::spc.

Referenced by mo_sentinel::get_sentinel::get_sentinel_spc(), sentinel_spc(), and mo_sentinel::set_sentinel::set_sentinel_spc().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_sentinel_char()

elemental subroutine mo_sentinel::set_sentinel_char ( character(len=*), intent(inout)  value)
private

Set sentinel value for char.

Parameters
[in,out]valuevalue to be set to sentinel

Definition at line 204 of file mo_sentinel.f90.

◆ set_sentinel_dp()

elemental subroutine mo_sentinel::set_sentinel_dp ( real(dp), intent(inout)  value)
private

Set sentinel value for dp.

Parameters
[in,out]valuevalue to be set to sentinel

Definition at line 186 of file mo_sentinel.f90.

◆ set_sentinel_dpc()

elemental subroutine mo_sentinel::set_sentinel_dpc ( complex(dpc), intent(inout)  value)
private

Set sentinel value for dpc.

Parameters
[in,out]valuevalue to be set to sentinel

Definition at line 198 of file mo_sentinel.f90.

◆ set_sentinel_i1()

elemental subroutine mo_sentinel::set_sentinel_i1 ( integer(i1), intent(inout)  value)
private

Set sentinel value for i1.

Parameters
[in,out]valuevalue to be set to sentinel

Definition at line 156 of file mo_sentinel.f90.

◆ set_sentinel_i2()

elemental subroutine mo_sentinel::set_sentinel_i2 ( integer(i2), intent(inout)  value)
private

Set sentinel value for i2.

Parameters
[in,out]valuevalue to be set to sentinel

Definition at line 162 of file mo_sentinel.f90.

◆ set_sentinel_i4()

elemental subroutine mo_sentinel::set_sentinel_i4 ( integer(i4), intent(inout)  value)
private

Set sentinel value for i4.

Parameters
[in,out]valuevalue to be set to sentinel

Definition at line 168 of file mo_sentinel.f90.

◆ set_sentinel_i8()

elemental subroutine mo_sentinel::set_sentinel_i8 ( integer(i8), intent(inout)  value)
private

Set sentinel value for i8.

Parameters
[in,out]valuevalue to be set to sentinel

Definition at line 174 of file mo_sentinel.f90.

◆ set_sentinel_sp()

elemental subroutine mo_sentinel::set_sentinel_sp ( real(sp), intent(inout)  value)
private

Set sentinel value for sp.

Parameters
[in,out]valuevalue to be set to sentinel

Definition at line 180 of file mo_sentinel.f90.

◆ set_sentinel_spc()

elemental subroutine mo_sentinel::set_sentinel_spc ( complex(spc), intent(inout)  value)
private

Set sentinel value for spc.

Parameters
[in,out]valuevalue to be set to sentinel

Definition at line 192 of file mo_sentinel.f90.

Variable Documentation

◆ empty_i1

integer(i1), dimension(0), parameter mo_sentinel::empty_i1 = 0_i1
private

Definition at line 88 of file mo_sentinel.f90.

◆ empty_i2

integer(i2), dimension(0), parameter mo_sentinel::empty_i2 = 0_i2
private

Definition at line 89 of file mo_sentinel.f90.

◆ empty_i4

integer(i4), dimension(0), parameter mo_sentinel::empty_i4 = 0_i4
private

Definition at line 90 of file mo_sentinel.f90.

◆ empty_i8

integer(i8), dimension(0), parameter mo_sentinel::empty_i8 = 0_i8
private

Definition at line 91 of file mo_sentinel.f90.

◆ sent_char

character, parameter mo_sentinel::sent_char = achar(0)
private

Definition at line 92 of file mo_sentinel.f90.