Fortran
본질적인 절차
수색…
비고
사용 가능한 많은 내장 프로 시저에는 인수 유형이 공통적으로 있습니다. 예 :
- 처리 될 입력 배열의 요소를 선택하는 논리 인수
MASK - 함수 결과의
KIND를 결정하는 정수 스칼라 인수KIND - 축소가 수행되는 차원을 제어하는 축소 함수에 대한 정수 인수
DIM
팩을 사용하여 조건을 충족하는 요소 선택
intrinsic pack 함수는 배열을 벡터로 pack 하여 주어진 마스크를 기반으로 요소를 선택합니다. 이 함수에는 두 가지 형식이 있습니다.
PACK(array, mask)
PACK(array, mask, vector)
(즉, vector 인수는 선택 사항입니다).
두 경우 모두 array 는 배열이고 논리적 유형의 mask 이며 array (스칼라 또는 같은 모양의 배열)에 부합합니다.
첫 번째 경우에, 결과의 종류와 유형 파라미터 등급 1 배열 array 마스크의 진정한 요소 수 인 원소의 수.
integer, allocatable :: positive_values(:)
integer :: values(5) = [2, -1, 3, -2, 5]
positive_values = PACK(values, values>0)
positive_values 는 배열 [2, 3, 5] 됩니다.
vector rank-1 인수가 제시되면 결과는 vector 의 크기가됩니다 (적어도 mask true 값보다 많은 요소가 있어야합니다).
효과와 vector 의 마스크 요소에 의해 덮어 그 배열의 초기 요소를 그 배열을 반환하는 array . 예를 들어
integer, allocatable :: positive_values(:)
integer :: values(5) = [2, -1, 3, -2, 5]
positive_values = PACK(values, values>0, [10,20,30,40,50])
positive_values 는 배열 [2,3,5,40,50] 됩니다.
인수 array 의 모양에 관계없이 결과는 항상 순위 1 배열입니다.
마스킹 조건을 충족하는 배열 요소를 선택하는 것 외에도 마스킹 조건이 충족되는 지표를 결정하는 것이 유용한 경우가 많습니다. 이 공통 관용구는 다음과 같이 표현 될 수있다.
integer, allocatable :: indices(:)
integer i
indices = PACK([(i, i=1,5)], [2, -1, 3, -2, 5]>0)
indices 는 배열 [1,3,5] 됩니다.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow