Fortran-data-types
Fortran-データ型
Fortranには5つの組み込みデータ型がありますが、独自のデータ型も派生できます。 5つの組み込み型は-
- 整数型
- リアルタイプ
- 複合型
- 論理型 *キャラクタータイプ
整数型
整数型は整数値のみを保持できます。 次の例では、通常の4バイト整数に保持できる最大値を抽出します-
program testingInt
implicit none
integer :: largeval
print* , huge(largeval)
end program testingInt
上記のプログラムをコンパイルして実行すると、次の結果が生成されます-
2147483647
- huge()関数は、特定の整数データ型が保持できる最大数を与えることに注意してください。 *kind 指定子を使用してバイト数を指定することもできます。 次の例はこれを示しています-
program testingInt
implicit none
!two byte integer
integer(kind = 2) :: shortval
!four byte integer
integer(kind = 4) :: longval
!eight byte integer
integer(kind = 8) :: verylongval
!sixteen byte integer
integer(kind = 16) :: veryverylongval
!default integer
integer :: defval
print *, huge(shortval)
print *, huge(longval)
print *, huge(verylongval)
print *, huge(veryverylongval)
print *, huge(defval)
end program testingInt
上記のプログラムをコンパイルして実行すると、次の結果が生成されます-
32767
2147483647
9223372036854775807
170141183460469231731687303715884105727
2147483647
リアルタイプ
2.0、3.1415、-100.876などの浮動小数点数を格納します。
伝統的に、デフォルトの real 型と double precision 型の2つの異なる実数型があります。
ただし、Fortran 90/95では、 kind 指定子を使用して実数および整数データ型の精度をより詳細に制御できます。これについては、数値の章で説明します。
次の例は、実際のデータ型の使用を示しています-
program division
implicit none
! Define real variables
real :: p, q, realRes
! Define integer variables
integer :: i, j, intRes
! Assigning values
p = 2.0
q = 3.0
i = 2
j = 3
! floating point division
realRes = p/q
intRes = i/j
print *, realRes
print *, intRes
end program division
上記のプログラムをコンパイルして実行すると、次の結果が生成されます-
0.666666687
0
複合型
これは、複素数を格納するために使用されます。 複素数には、実数部と虚数部の2つの部分があります。 2つの連続した数値ストレージユニットは、これら2つの部分を格納します。
たとえば、複素数(3.0、-5.0)は3.0 – 5.0iに等しい
数値の章で、複合型について詳しく説明します。
論理型
論理値は2つのみです:* .true。および .false。*
キャラクタータイプ
文字タイプには、文字と文字列が格納されます。 文字列の長さは、len指定子で指定できます。 長さを指定しない場合、1です。
例えば、
character (len = 40) :: name
name = “Zara Ali”
式* name(1:4)*は、サブストリング「Zara」を提供します。
暗黙的な入力
Fortranの古いバージョンでは、暗黙的な型指定と呼ばれる機能が許可されていました。つまり、使用する前に変数を宣言する必要はありません。 変数が宣言されていない場合、その名前の最初の文字がその型を決定します。
i、j、k、l、m、またはnで始まる変数名は整数変数であると見なされ、その他は実変数です。 ただし、すべての変数を宣言する必要があります。これは適切なプログラミング方法です。 そのためには、ステートメントでプログラムを開始します-
implicit none
このステートメントは、暗黙的な入力をオフにします。