Loading...
Searching...
No Matches
dc_types.f90
Go to the documentation of this file.
1!-----------------------------------------------------------------------
2! Copyright (c) 2000-2019 Gtool Development Group. All rights reserved.
3!-----------------------------------------------------------------------
4!>
5!> @author Youhei SASAKI, Yasuhiro MORIKAWA, Eizi TOYODA
6!> @copyright Copyright (C) GFD Dennou Club, 2000-2017. All rights reserved. <br/>
7!> License is BSD-2-Clause. see [COPYRIGHT](@ref COPYRIGHT) in detail
8!> @en
9!> @brief Provides kind type parameter values.
10!> @details
11!> This module using F2003 feature, especially `ISO_C_BINDING, ISO_FORTRAN_ENV`.
12!>
13!> dc_types | intrinsic modules | types
14!> ---------|------------------ |---------------
15!> `SP` | ISO_C_BINDING | `C_FLOAT`
16!> `DP` | ISO_C_BINDING | `C_DOUBLE`
17!> `STDIN` | ISO_FORTRAN_ENV | `INPUT_UNIT`
18!> `STDOUT` | ISO_FORTRAN_ENV | `OUTPUT_UNIT`
19!> `STRERR` | ISO_FORTRAN_ENV | `ERROR_UNIT`
20!>
21!> @warning If you want to try mixed-language programing
22!> (e.g., Fortran calling C function),
23!> Please check type of variables before use this module.
24!> @enden
25!>
26!> @ja
27!> @brief 種別型パラメタを提供します。
28!> @details
29!>
30!> このモジュールは Fortran 2003 の機能, 具体的には `ISO_C_BINDING` と
31!> `ISO_FORTRAN_ENV` と同じ型を提供します.
32!>
33!> dc_types | intrinsic modules | types
34!> ---------|------------------ |---------------
35!> `SP` | ISO_C_BINDING | `C_FLOAT`
36!> `DP` | ISO_C_BINDING | `C_DOUBLE`
37!> `STDIN` | ISO_FORTRAN_ENV | `INPUT_UNIT`
38!> `STDOUT` | ISO_FORTRAN_ENV | `OUTPUT_UNIT`
39!> `STRERR` | ISO_FORTRAN_ENV | `ERROR_UNIT`
40!>
41!> などです.
42!> @warning 言語混在プログラミング(例えば Fortran から C の関数を呼ぶなど)
43!> を行ないたい場合には本モジュールの使用前に,
44!> 変数の型を確認して下さい.
45!>
46!> @endja
47!>
48
50 use, intrinsic :: iso_c_binding, &
51 & only: c_int, &
52 & c_float, &
53 & c_double
54 use, intrinsic :: iso_fortran_env, &
55 & only: input_unit, &
56 & output_unit, &
57 & error_unit
58 implicit none
59 private
60 public :: sp
61 public :: sp_eps
62 public :: dp
63 public :: dp_eps
64 public :: token
65 public :: string
66 public :: stdin
67 public :: stdout
68 public :: stderr
69
70 !> @var SP
71 !> @en Single Precision Real number. @enden
72 !> @ja 単精度実数型変数 @endja
73 integer, parameter :: sp = c_float
74
75 !> @var SP_EPS
76 !> @en Machine epsilon for single precision real number. @enden
77 !> @ja 単精度実数型変数のマシンイプシロン. @endja
78 real(sp), parameter :: sp_eps = epsilon(0.0e0)
79
80 !> @var DP
81 !> @en Double Precision Real number @enden
82 !> @ja 倍精度実数型変数 @endja
83 integer, parameter :: dp = c_double
84
85 !> @var DP_EPS
86 !> @en Machine epsilon for dobule precision real number. @enden
87 !> @ja 倍精度実数型変数のマシンイプシロン. @endja
88 real(dp), parameter :: dp_eps = epsilon(0.0d0)
89
90 !> @var STDIN
91 !> @en Unit number for Standard INPUT @enden
92 !> @ja 標準入力の装置番号 @endja
93 integer, parameter :: stdin = input_unit
94
95 !> @var STDOUT
96 !> @en Unit number for Standard OUTPUT @enden
97 !> @ja 標準出力の装置番号 @endja
98 integer, parameter :: stdout = output_unit
99
100 !> @var STDERR
101 !> @en Unit number for Standard ERROR @enden
102 !> @ja 標準エラー出力の装置番号 @endja
103 integer, parameter :: stderr = error_unit
104
105
106 !> @var TOKEN
107 !> @en Character length for word, token @enden
108 !> @ja 単語やキーワードを保持する文字型変数の種別型パラメタ @endja
109 integer, parameter :: token = 32
110
111 !> @var STRING
112 !> @en Character length for string @enden
113 !> @ja 文字列を保持する 文字型変数の種別型パラメタ
114 !> @note 256 という値に深い理由はありません.
115 !> 必要ならばより大きな値を設定しても構いません.
116 !> ただし 8 バイト境界となるよう, 8 の倍数となっていることを推奨します.
117 !> @endja
118 integer, parameter :: string = 256
119
120 !> @namespace dc_types
121end module dc_types
Provides kind type parameter values.
Definition dc_types.f90:49
integer, parameter, public token
Character length for word, token
Definition dc_types.f90:109
integer, parameter, public string
Character length for string
Definition dc_types.f90:118
real(dp), parameter, public dp_eps
Machine epsilon for dobule precision real number.
Definition dc_types.f90:88
real(sp), parameter, public sp_eps
Machine epsilon for single precision real number.
Definition dc_types.f90:78
integer, parameter, public stdout
Unit number for Standard OUTPUT
Definition dc_types.f90:98
integer, parameter, public stdin
Unit number for Standard INPUT
Definition dc_types.f90:93
integer, parameter, public dp
Double Precision Real number
Definition dc_types.f90:83
integer, parameter, public sp
Single Precision Real number.
Definition dc_types.f90:73
integer, parameter, public stderr
Unit number for Standard ERROR
Definition dc_types.f90:103