Fortran-내장 함수
내장 함수는 Fortran 언어의 일부로 제공되는 몇 가지 공통적이고 중요한 함수입니다. 배열, 문자 및 문자열 장에서 이러한 함수 중 일부에 대해 이미 논의했습니다.
내장 함수는 다음과 같이 분류 할 수 있습니다.
- 숫자 함수
- 수학 함수
- 숫자 조회 기능
- 부동 소수점 조작 함수
- 비트 조작 기능
- 캐릭터 기능
- 종류 기능
- 논리 함수
- 배열 함수.
배열 장에서 배열 함수에 대해 논의했습니다. 다음 섹션에서는 다른 범주의 모든 기능에 대한 간략한 설명을 제공합니다.
함수 이름 열에서
- A는 모든 유형의 숫자 변수를 나타냅니다.
- R은 실수 또는 정수 변수를 나타냅니다.
- X와 Y는 실제 변수를 나타냅니다.
- Z는 복잡한 변수를 나타냅니다.
- W는 실수 또는 복합 변수를 나타냅니다.
숫자 함수
Sr. 아니요 | 기능 및 설명 |
---|---|
1 | ABS (A) A의 절대 값을 반환합니다. |
2 | AIMAG (Z) 복소수 Z의 허수 부를 반환합니다. |
삼 | AINT (A [, KIND]) A의 소수 부분을 0으로 자르고 실수 정수를 반환합니다. |
4 | ANINT (A [, KIND]) 실제 값, 가장 가까운 정수 또는 정수를 반환합니다. |
5 | CEILING (A [, KIND]) 숫자 A보다 크거나 같은 최소 정수를 반환합니다. |
6 | CMPLX (X [, Y, KIND]) 실제 변수 X와 Y를 복소수 X + iY로 변환합니다. Y가 없으면 0이 사용됩니다. |
7 | CONJG (Z) 복소수 Z의 켤레 복소수를 반환합니다. |
8 | DBLE (A) A를 배정 밀도 실수로 변환합니다. |
9 | DIM (X, Y) X와 Y의 양의 차이를 반환합니다. |
10 | DPROD (X, Y) X와 Y의 배정 밀도 실수 곱을 반환합니다. |
11 | FLOOR (A [, KIND]) 숫자 A보다 작거나 같은 가장 큰 정수를 제공합니다. |
12 | INT (A [, KIND]) 숫자 (실수 또는 정수)를 정수로 변환하여 실수 부분을 0으로 자릅니다. |
13 | MAX (A1, A2 [, A3,...]) 인수의 최대 값을 반환하며 모두 동일한 유형입니다. |
14 | MIN (A1, A2 [, A3,...]) 인수의 최소값을 반환하며 모두 동일한 유형입니다. |
15 | MOD (A, P) P로 나누면 A의 나머지를 반환하며 두 인수는 모두 동일한 유형 (A-INT (A / P) * P)입니다. |
16 | MODULO (A, P) A 모듈로 P를 반환합니다. (A-FLOOR (A / P) * P) |
17 | NINT (A [, KIND]) 숫자 A의 가장 가까운 정수를 반환합니다. |
18 | REAL (A [, KIND]) 실제 유형으로 변환 |
19 | SIGN (A, B) A의 절대 값에 P의 부호를 곱한 값을 반환합니다. 기본적으로 B의 부호를 A로 전달합니다. |
예
program numericFunctions
implicit none
! define constants
! define variables
real :: a, b
complex :: z
! values for a, b
a = 15.2345
b = -20.7689
write(*,*) 'abs(a): ',abs(a),' abs(b): ',abs(b)
write(*,*) 'aint(a): ',aint(a),' aint(b): ',aint(b)
write(*,*) 'ceiling(a): ',ceiling(a),' ceiling(b): ',ceiling(b)
write(*,*) 'floor(a): ',floor(a),' floor(b): ',floor(b)
z = cmplx(a, b)
write(*,*) 'z: ',z
end program numericFunctions
위의 프로그램을 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다.
abs(a): 15.2344999 abs(b): 20.7688999
aint(a): 15.0000000 aint(b): -20.0000000
ceiling(a): 16 ceiling(b): -20
floor(a): 15 floor(b): -21
z: (15.2344999, -20.7688999)
수학 함수
Sr. 아니요 | 기능 및 설명 |
---|---|
1 | ACOS (X) 범위 (0, π)의 역 코사인을 라디안으로 반환합니다. |
2 | ASIN (X) 범위 (-π / 2, π / 2)의 역 사인을 라디안으로 반환합니다. |
삼 | ATAN (X) 범위 (-π / 2, π / 2)의 역 탄젠트를 라디안으로 반환합니다. |
4 | ATAN2 (Y, X) 범위 (-π, π)의 역 탄젠트를 라디안으로 반환합니다. |
5 | COS (X) 인수의 코사인을 라디안으로 반환합니다. |
6 | COSH (X) 라디안 단위의 쌍곡선 코사인 인수를 반환합니다. |
7 | EXP (X) X의 지수 값을 반환합니다. |
8 | LOG (X) X의 자연 로그 값을 반환합니다. |
9 | LOG10 (X) X의 공통 로그 (밑수 10) 값을 반환합니다. |
10 | SIN (X) 인수의 사인을 라디안으로 반환합니다. |
11 | SINH (X) 인수의 쌍곡 사인을 라디안으로 반환합니다. |
12 | SQRT (X) X의 제곱근을 반환합니다. |
13 | TAN (X) 인수의 탄젠트를 라디안으로 반환합니다. |
14 | TANH (X) 라디안 단위의 쌍곡선 탄젠트 인수를 반환합니다. |
예
다음 프로그램은 시간 t 이후에 발사체의 수평 및 수직 위치 x와 y를 각각 계산합니다.
여기서 x = ut cos a 및 y = ut sin a-g t2 / 2
program projectileMotion
implicit none
! define constants
real, parameter :: g = 9.8
real, parameter :: pi = 3.1415927
!define variables
real :: a, t, u, x, y
!values for a, t, and u
a = 45.0
t = 20.0
u = 10.0
! convert angle to radians
a = a * pi / 180.0
x = u * cos(a) * t
y = u * sin(a) * t - 0.5 * g * t * t
write(*,*) 'x: ',x,' y: ',y
end program projectileMotion
위의 프로그램을 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다.
x: 141.421356 y: -1818.57861
숫자 조회 기능
이러한 함수는 정수 및 부동 소수점 산술의 특정 모델에서 작동합니다. 이 함수는 변수 X와 같은 종류의 숫자 속성을 반환하며, 이는 실수 일 수 있고 경우에 따라 정수일 수 있습니다.
Sr. 아니요 | 기능 및 설명 |
---|---|
1 | DIGITS (X) 모델의 유효 자릿수를 반환합니다. |
2 | EPSILON (X) 1에 비해 거의 무시할 수있는 숫자를 반환합니다. 즉, REAL (1.0, KIND (X)) + EPSILON (X)이 REAL (1.0, KIND (X))와 같지 않은 가장 작은 값을 반환합니다. |
삼 | HUGE (X) 모델의 가장 큰 수를 반환합니다. |
4 | MAXEXPONENT (X) 모델의 최대 지수를 반환합니다. |
5 | MINEXPONENT (X) 모델의 최소 지수를 반환합니다. |
6 | PRECISION (X) 소수 정밀도를 반환합니다. |
7 | RADIX (X) 모델의 기본을 반환합니다. |
8 | RANGE (X) 십진수 지수 범위를 반환합니다. |
9 | TINY (X) 모델의 가장 작은 양수를 반환합니다. |
부동 소수점 조작 함수
Sr. 아니요 | 기능 및 설명 |
---|---|
1 | EXPONENT (X) 모델 번호의 지수 부분을 반환합니다. |
2 | FRACTION (X) 숫자의 소수 부분을 반환합니다. |
삼 | NEAREST (X, S) 주어진 방향에서 가장 가까운 다른 프로세서 번호를 반환합니다. |
4 | RRSPACING (X) 주어진 숫자에 가까운 모델 번호의 상대적 간격의 역수를 반환합니다. |
5 | SCALE (X, I) 실수에 밑수를 정수 거듭 제곱으로 곱합니다. |
6 | SET_EXPONENT (X, I) 숫자의 지수 부분을 반환합니다. |
7 | SPACING (X) 주어진 숫자에 가까운 모델 번호의 절대 간격을 반환합니다. |
비트 조작 기능
Sr. 아니요 | 기능 및 설명 |
---|---|
1 | BIT_SIZE (I) 모델의 비트 수를 반환합니다. |
2 | BTEST (I, POS) 비트 테스트 |
삼 | IAND (I, J) 논리적 AND |
4 | IBCLR (I, POS) 클리어 비트 |
5 | IBITS (I, POS, LEN) 비트 추출 |
6 | IBSET (I, POS) 비트 설정 |
7 | IEOR (I, J) 독점 OR |
8 | IOR (I, J) 포함 OR |
9 | ISHFT (I, SHIFT) 논리적 이동 |
10 | ISHFTC (I, SHIFT [, SIZE]) 순환 이동 |
11 | NOT (I) 논리적 보완 |
캐릭터 기능
Sr. 아니요 | 기능 및 설명 |
---|---|
1 | ACHAR (I) ASCII 배열 순서로 Ith 문자를 반환합니다. |
2 | ADJUSTL (STRING) 선행 공백을 제거하고 후행 공백을 삽입하여 왼쪽 문자열을 조정합니다. |
삼 | ADJUSTR (STRING) 후행 공백을 제거하고 선행 공백을 삽입하여 문자열을 오른쪽으로 조정합니다. |
4 | CHAR (I [, KIND]) 기계 별 배열 순서에서 I 번째 문자를 반환합니다. |
5 | IACHAR (C) ASCII 배열 순서에서 문자의 위치를 반환합니다. |
6 | ICHAR (C) 기계 (프로세서) 특정 조합 순서에서 문자의 위치를 리턴합니다. |
7 | INDEX (STRING, SUBSTRING [, BACK]) STRING 내에서 SUBSTRING의 가장 왼쪽 (BACK이 .TRUE이면 가장 오른쪽) 시작 위치를 반환합니다. |
8 | LEN (STRING) 문자열의 길이를 반환합니다. |
9 | LEN_TRIM (STRING) 후행 공백 문자없이 문자열의 길이를 반환합니다. |
10 | LGE (STRING_A, STRING_B) 어휘 적으로 크거나 같음 |
11 | LGT (STRING_A, STRING_B) 어휘 적으로 큼 |
12 | LLE (STRING_A, STRING_B) 어휘 적으로 작거나 같음 |
13 | LLT (STRING_A, STRING_B) 어휘 적으로 이하 |
14 | REPEAT (STRING, NCOPIES) 반복 된 연결 |
15 | SCAN (STRING, SET [, BACK]) SET에 속하는 STRING의 가장 왼쪽 (BACK이 .TRUE 인 경우 가장 오른쪽) 문자의 인덱스를 반환하고, 속한 것이 없으면 0을 반환합니다. |
16 | TRIM (STRING) 후행 공백 문자를 제거합니다. |
17 | VERIFY (STRING, SET [, BACK]) 문자열의 문자 집합을 확인합니다. |
종류 기능
Sr. 아니요 | 기능 및 설명 |
---|---|
1 | KIND (X) 종류 유형 매개 변수 값을 반환합니다. |
2 | SELECTED_INT_KIND (R) 지정된 지수 범위에 대한 유형 매개 변수의 종류를 반환합니다. |
삼 | SELECTED_REAL_KIND ([P, R]) 정밀도 및 범위가 지정된 실제 종류 매개 변수 값 |
논리적 기능
Sr. 아니요 | 기능 및 설명 |
---|---|
1 | LOGICAL (L [, KIND]) 종류 유형 매개 변수가 다른 논리적 유형의 객체 간 변환 |