ftnchek - 클라우드에서의 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 공급자에서 실행할 수 있는 ftnchek 명령입니다.

프로그램:

이름


ftnchek - Fortran 77 프로그램 검사기

개요


ftnchek [ -인수[=명부] ] [ -정렬[=명부] ]
[ -[아니]간결한 ] [ -콜트리[=명부] ] [ -[아니]검사 ]
[ -열[=NUM] ] [ -흔한[=명부] ]
[ -[아니]상호참조[=명부] ] [ -[아니]알리다 ]
[ -[아니]분할 ] [ -오류[=NUM] ] [ -[아니]외부 ]
[ -[아니]f77[=명부] ] [ -[아니]f90[=명부] ]
[ -[아니]f95[=명부] ] [ -[아니]도움 ]
[ -[아니]식별자 문자[=명부] ] [ -포함=하위 버전 ]
[ -본질적[=명부] ] [ -[아니]도서관 ] [ -[아니]명부 ]
[ -madecls[=명부] ] [ -mkhtml[=명부] ]
[ -[아니]초심자 ] [ -출력=하위 버전 ]
[ - 포인터 크기[=NUM] ] [ -[아니]이식성[=명부] ]
[ -[아니]예쁜[=명부] ] [ -계획[=명부] ]
[ -[아니]순수한 ] [ -[아니]조용한 ] [ -[아니]참고 ]
[ -[아니]자원 ] [ -[아니]XNUMX자 ] [ -[아니]종류 ]
[ -source[=명부] ] [ 스타일[=명부] ] [ -[아니]심탭 ]
[ -[아니]잘림[=명부] ] [ -용법[=명부] ]
[ -[아니]가상현실 ] [ -[아니]버전 ] [ -[아니]휘발성의 ]
[ -단어 크기[=NUM] ] [ -싸다[=NUM] ] [ 파일 ... ]

기술


ftnchek (Fortran checker의 약어)는 Fortran의 특정 오류를 감지하도록 설계되었습니다.
컴파일러는 일반적으로 하지 않는 프로그램입니다. ftnchek 주로 탐지하기 위한 것이 아닙니다.
구문 오류. 그 목적은 사용자가 의미 오류를 찾는 데 도움을 주는 것입니다. 의미론적
오류는 Fortran 언어에서 합법적이지만 낭비적이거나 잘못된 오류를 유발할 수 있습니다.
작업. 예를 들어, 전혀 사용되지 않는 변수는
프로그램; 초기화되지 않은 변수에는 잘못된 결과를 초래할 수 있는 쓰레기가 포함되어 있습니다.
계획된; 선언되지 않은 변수는 의도한 유형을 갖지 않을 수 있습니다. ftnchek
사용자의 Fortran 프로그램 디버깅을 돕기 위한 것입니다. 의도한 바는 아니다
모든 구문 오류를 포착합니다. 이것이 컴파일러의 기능입니다. 사용하기 전에
ftnchek, 사용자는 프로그램이 올바르게 컴파일되는지 확인해야 합니다.

이 문서는 먼저 호출하는 방법을 요약합니다. ftnchek. 그 부분은 전에 읽어야 합니다.
사용하기 시작 ftnchek. 이후 섹션에서 설명합니다. ftnchek의 옵션에 대해 더 자세히 설명하세요.
사용법을 예시하고 출력을 해석하는 방법을 설명합니다. 마지막 섹션
제한사항과 알려진 버그를 언급합니다. ftnchek.

불러내기 FTNCHEK


ftnchek 다음 형식의 명령을 통해 호출됩니다.

$ ftnchek [-옵션 -옵션 ...] 파일 이름 [파일 이름 ...]

괄호는 선택 사항을 나타냅니다. 괄호 자체는 그렇지 않습니다.
실제로 입력했습니다. 여기서 옵션은 다음을 제어하는 ​​명령줄 스위치 또는 설정입니다.
프로그램의 작동과 인쇄될 정보의 양. 아니오인 경우
옵션이 지정되면 기본 작업은 오류 메시지, 경고 및
정보 메시지(프로그램 목록이나 기호 테이블은 제외)

각 옵션은 '-' 문자로 시작됩니다. (VAX/VMS 또는 MS-DOS 시스템에서는 다음을 사용할 수 있습니다.
'/' 또는 '-' 중 하나입니다.) 점점 더 일반화되는 규칙을 준수하기 위해
옵션은 '--'으로 시작할 수도 있습니다. 옵션은 다음에서 더 자세히 설명됩니다.
안내

ftnchek 옵션은 두 가지 범주, 즉 true 또는 false인 스위치와
숫자 또는 문자열 값을 갖는 설정입니다. 스위치 이름 앞에는 'no'가 붙습니다.
또는 'no-'로 끄려면 다음과 같이 합니다. 예: -순수하지 않다 불순한 기능에 대한 경고를 해제합니다.
'no' 접두사는 숫자 설정과 함께 사용하여 끄는 효과도 있습니다.
해당 경고. 경고 목록을 제어하는 ​​설정에는 특별한 구문이 있습니다.
아래에서 논의됩니다. 옵션 이름의 처음 3자만('-'는 제외)
제공되어야 합니다. 숫자나 문자열의 경우 등호 대신 콜론을 사용할 수 있습니다.
할당 설정; 그러나 아래에는 등호 형식만 표시됩니다.

스위치와 설정 ftnchek 현재 인식하는 항목은 다음과 같습니다. 각각
옵션의 경우 기본값은 옵션을 명시적으로 지정하지 않은 경우 사용되는 값입니다.
켜기(turn-on)는 값을 할당하지 않고 옵션이 제공되는 경우 사용되는 값입니다.

-인수=명부
하위 프로그램 유형 및 인수 불일치에 대한 경고를 제어합니다. 기본값 = 켜기
= 모두.

-배열=명부
하위 프로그램의 배열 인수를 확인할 때 경고를 제어합니다. 기본값 = 켜기 =
모든.

-짧은 일부 오류 메시지에는 더 짧은 형식을 사용하십시오. 기본값 = 아니요.

-콜트리=명부
3가지 형식 중 하나로 하위 프로그램 호출 계층 생성: 텍스트 호출 트리, 누가 호출-
누구와 VCG. 기본값 = 없음, 켜기 = 트리, 정리, 정렬.

경우 -mkhtml 옵션이 호출됩니다 tree는 적용된 콜트리 옵션, 즉 파일입니다.
CallTree.html이라는 이름의 파일이 HTML 형식으로 트리를 묘사하여 생성됩니다.

-검사 점검을 수행합니다. 기본값 = 예.

-열=NUM
최대 줄 길이를 다음으로 설정하세요. NUM 열. (이 이상은 무시됩니다.) Turn-on = max =
132. 기본값 = 72.

-공통=명부
COMMON 블록 검사의 엄격함 정도를 설정합니다. 기본값 = 켜기 = 모두.

-교차참조=명부
하위 프로그램 호출, 레이블 사용 및/또는 COMMON 블록의 상호 참조 목록 인쇄
사용. 기본값 = 없음.

-선언하다
데이터 유형이 명시적으로 선언되지 않은 모든 식별자 목록을 인쇄합니다. 기본
= 아니요.

-분할
나누기가 수행되는 곳마다 경고합니다(상수로 나누는 경우 제외). 기본값 = 아니요.

-오류=NUM
캐스케이드당 최대 오류 메시지 수를 설정합니다. 기본값 = 켜기 = 3.

-통근자
호출된 외부 서브프로그램이 정의되지 않은 경우 경고합니다. 기본값 = 예.

-f77=명부
Fortran 77 표준에 대해 지원되는 확장에 대한 특정 경고를 제어합니다.
기본값 = 없음, 켜기 = 모두.

-f90=명부
Fortran 77 표준에 대해 지원되는 확장에 대한 특정 경고를 제어합니다.
Fortran 90 표준의 일부로 채택되지 않았습니다. 기본값 = 없음, 켜기
= 모두.

-f95=명부
다음에서 삭제된 표준 Fortran 77 기능에 대한 특정 경고를 제어합니다.
포트란 95 표준. 기본값 = 없음, 켜기 = 모두.

-도움 명령 요약을 인쇄합니다. 기본값 = 아니요.

-식별자-문자=명부
식별자에 사용할 수 있는 영숫자가 아닌 문자를 정의합니다. 기본값 =
켜기 = 달러 기호 및 밑줄.

-포함=통로
시스템 전체에서 검색하기 전에 INCLUDE 파일을 검색할 디렉터리를 정의합니다.
예배 규칙서. 누적. 기본값 = 켜기 = 없음.

-내재적=명부
비표준 내장 함수의 처리를 제어합니다. 기본값 = 다음을 제외한 모두 VM을 for
Unix 버전을 제외한 모든 버전 유닉스 VMS 버전의 경우 다음을 제외한 모든 버전 유닉스VM을 기타
버전. 켜기 = 모두.

-도서관
라이브러리 모드 시작: 정의된 파일의 하위 프로그램에 대해 경고하지 않지만
사용하지 않았습니다. 기본값 = 아니요.

-명부 프로그램의 소스 목록을 인쇄합니다. 기본값 = 아니요.

-madecls=명부
선언문 파일을 준비합니다. 그만큼 명부 이 형식에 대한 옵션을 지정합니다.
파일. 기본값 = 없음, 켜기 = 선언.

-mkhtml=명부
ftnchek 분석 및 코드 주석에서 개별 HTML 문서 파일을 생성합니다.
일반적으로 다음을 지정하고 싶을 수도 있습니다. -콜=트리 루트 HTML 파일을 생성하려면
CallTree.html. 기본값 = 없음, 켜기 = 문서.

-초심자
초보 사용자에게 적합한 출력을 제공합니다. 기본값 = 예.

-출력=파일 이름
지정된 파일로 출력을 보냅니다. 기본값 및 켜짐은 출력을 화면으로 보냅니다.
(기본 파일 이름 확장자는 .lis).

-포인터 크기=NUM
``Cray 포인터'' 변수의 크기를 다음과 같이 설정합니다. NUM 바이트. 최소 = 1, 최대 = 16.
기본값 = 켜기 = 4

-이식성=명부
이식할 수 없는 사용법에 대해 경고합니다. 기본값 = 없음, 켜기 = 모두.

-예쁘다=명부
오해의 소지가 있는 소스 코드 모양에 대해 경고합니다. 기본값 = 회전-
에 = 모두.

-프로젝트=명부
프로젝트 파일을 생성합니다(아래 설명 참조). 기본값 = 아니요.

-순수한 함수는 순수하다고, 즉 부작용이 없다고 가정합니다. 기본값 = 예.

-조용한 덜 자세한 출력을 생성합니다. 기본값 = 아니요.

-참고
각 하위 프로그램이 참조하는 하위 프로그램 테이블을 인쇄합니다. 기본값 = 아니요.

-자원
프로그램 분석에 사용된 리소스의 양을 출력합니다. 기본값 = 아니요.

-여섯자
6자 길이에서 충돌하는 변수 이름을 나열합니다. 기본값 = 아니요.

-종류 필수 순서로 정렬된 하위 프로그램 목록을 인쇄합니다. 기본값 = 아니요.

-소스=명부
소스 형식 옵션 선택: 고정 또는 자유 형식, DEC Fortran 탭 형식
행, VMS 스타일 INCLUDE 문, UNIX 스타일 백슬래시 이스케이프 시퀀스 및
매개변수의 암시적 유형 지정. 기본값 = 없음, 켜기 = 모두.

-스타일=명부
노후화되거나 구식인 프로그래밍에 대해 매우 까다로운 경고를 생성합니다.
건축. 기본값 = 없음, 켜기 = 모두.

-심탭
각 서브프로그램에 대한 기호 테이블과 라벨 테이블을 인쇄합니다. 기본값 = 아니요.

-잘림=명부
잘림으로 인해 정확도가 손실될 수 있는지 확인하세요. 기본값 = 켜기 = 모두.

-사용=명부
사용되지 않거나 초기화되지 않은 변수, 공통 블록 등에 대한 경고를 제어합니다.
기본값 = 켜기 = 모두.

-vcg 호출 그래프의 VCG 형식을 생성합니다.

-번역
버전 번호를 인쇄하세요. 기본값 = 아니요.

-휘발성 물질
COMMON 블록이 활성화 사이에 정의를 잃는다고 가정합니다. 기본값 = 아니요. (구식입니다.
-공통=휘발성 대신.)

-단어 크기=NUM
숫자 수량의 기본 단어 크기를 다음으로 설정합니다. NUM 바이트. 기본값 = 켜기 =
4 바이트.

-줄바꿈=NUM
긴 오류 메시지와 경고를 다음으로 줄 바꿈할 출력 열을 설정합니다.
선. 0으로 설정하면 줄 바꿈을 끕니다. 기본값 = 켜기 = 79.

두 개 이상의 옵션을 사용할 경우에는 공백으로 구분해야 합니다.
옵션이 슬래시( / )로 시작하는 VMS와 같은 시스템. 공백은 넣을 수 없습니다.
설정에서 등호( = ) 주위에 있습니다. ftnchek "?" 명령 요약을 생성합니다
모든 옵션과 설정을 나열합니다.

키워드 목록을 취하는 설정의 경우 -인수, -정렬, -콜트리, -흔한,
-교차 참조, -f77, -f90, -f95, -본질적, -madecls, -mkhtml, -이식성, -예쁜,
-계획, -source, 스타일, -잘림-용법, 목록은 키워드로 구성됩니다.
쉼표나 콜론으로 구분됩니다. 키워드 목록을 생략하면 효과는 다음과 같습니다.
켜기 값에 대한 옵션(대부분의 경우 ``all''과 동일). 또한 목록의 경우
생략하면 설정 이름 앞에 다음을 붙일 수 있습니다. 아니 or 아니 - 모든 옵션을 끄려면
통제 수단. 예를 들어, -f77 비표준 구조에 대한 모든 경고를 켜는 반면
-nof77 모두 끕니다. 세 가지 특수 키워드는 다음과 같습니다.

도움 설정에 의해 제어되는 모든 옵션 키워드를 간단한 설명과 함께 인쇄합니다.
그 의미에 대한 설명. 이 키워드는 다른 키워드와 함께 목록에 제공될 수 없습니다.
키워드.

모든 모든 옵션을 설정합니다. 그러면 설정으로 제어되는 모든 옵션이 켜집니다.

없음 모든 옵션을 지웁니다. 그러면 설정으로 제어되는 모든 옵션이 꺼집니다.

이 세 가지 특수 키워드를 모두 입력해야 합니다. 다른 모든 키워드의 경우
명확하게 식별하는 데 필요한 키워드 문자를 제공해야 합니다.
와일드카드 패턴을 사용할 수 있습니다. 목록에 키워드를 포함시키면 해당하는
옵션 켜짐. 예를 들어, -f77=내재적 사용에 대한 경고만 켜집니다.
비표준 내장 함수. 키워드 접두사 아니 - 옵션을 끕니다. 을 위한
예, -예쁘다=줄이 길지 않다 72개 열을 초과하는 줄에 대한 경고를 끕니다.
오해의 소지가 있는 모양에 대한 다른 모든 경고는 그대로 두고 길이를 유지합니다. 만약
설정에는 기본값이 있습니다 없음, 다음을 사용하여 하나 또는 두 개를 제외한 모든 옵션을 켤 수 있습니다. 모든
첫 번째. 예를 들어, -f77=모두, 포함하지 않음 모든 비표준 확장에 대한 경고를 활성화합니다.
INCLUDE 문을 제외하고. 설정에 기본값이 있는 경우 모든, 모든 경고를 끌 수 있습니다
사용하여 하나 또는 두 개를 제외하고 없음 첫 번째. 예를 들어, -잘림=없음,강등 변할 것이다
강등을 제외한 모든 정밀도 관련 경고를 해제합니다. 와일드카드 패턴에는
별표는 임의의 문자열을 나타냅니다. 와일드카드 패턴을 사용하는 경우 모든
일치하는 경고가 영향을 받습니다. 만약에 아니 - 패턴 앞에 접두사가 붙어 있으며, 일치하는 모든 항목은
경고는 꺼지고 그렇지 않으면 모두 켜집니다. 모호하지 않은 최소 길이
와일드카드 일치에는 규칙이 적용되지 않습니다. 예를 들어 -사용법=아니오-*var* 끄다
변수 사용(로컬 및 공통 모두)과 관련된 모든 경고. (Unix 사용자는 다음을 수행해야 할 수도 있습니다.
쉘이 시도하는 것을 방지하기 위해 와일드카드를 포함하는 모든 옵션을 인용하십시오.
확장하세요.) 와일드카드는 경고 키워드 목록에서만 인식되며 상단에는 인식되지 않습니다.
레벨 옵션 자체.

인셀덤 공식 판매점인 ftnchek 시작하면 환경 변수와 기본 설정도 찾습니다.
파일. 환경이나 기본 설정 파일에 정의된 모든 옵션은 다음과 같이 사용됩니다.
내장된 기본값 대신 기본값이 사용됩니다. 모든 명령줄에 의해 재정의됩니다.
옵션. 환경에 대한 자세한 내용은 기본값 변경 섹션을 참조하세요.
옵션 및 기본 설정 파일.

입력 파일의 이름을 지정할 때 확장자는 선택 사항입니다. 연장이 주어지지 않는 경우,
ftnchek 먼저 확장명이 있는 프로젝트 파일을 찾습니다. .prj, 그리고 만약 그렇다면 그것을 사용할 것입니다
존재합니다. 그렇지 않다면, ftnchek 확장자를 가진 Fortran 소스 파일을 찾습니다. .을위한
VMS 시스템의 경우, .f 유닉스 시스템용. 둘 이상의 파일 이름을 다음에 지정할 수 있습니다. ftnchek,
그리고 모든 파일의 모듈을 마치 단일 파일에 있는 것처럼 처리합니다.

VMS 명령줄의 파일 이름 지정에 와일드카드가 허용됩니다.
그리고 MS-DOS 버전은 물론 UNIX와 이를 수행하는 다른 시스템에서도 마찬가지입니다.
명령 프로세서의 와일드카드 확장.

파일 이름이 지정되지 않은 경우, ftnchek 표준 입력에서 입력을 읽습니다.

옵션


이 섹션에서는 다음에 대한 자세한 설명을 제공합니다. ftnchek 명령줄 옵션. 옵션
파일 이름은 명령줄에 배치될 수 있습니다. 대부분의 옵션은 위치에 따라 다릅니다.
옵션은 해당 옵션이 발생한 시점부터 다른 옵션에 의해 재정의될 때까지 유효합니다.
나중에 변경합니다. 따라서 예를 들어 일부 파일에 대해서는 목록이 표시되지 않을 수 있습니다.
다른 사람. 예외는 다음과 같습니다. -본질적, - 포인터 크기-단어 크기 설정, 이는
입력 파일 처리가 시작된 후에는 변경할 수 없습니다. 그만큼 -인수, -정렬,
-콜트리, -흔한, -교차 참조, -통근자, -참고, -자원, -종류, -vcg-휘발성 물질
옵션, 여기서 작업은 처리 후 옵션 값에만 의존합니다.
입력 파일이 완료되었습니다. 그리고 -포함 누적되는 설정입니다.

다음 목록의 옵션 이름은 알파벳 순서로 되어 있습니다.

-인수=명부
실제 하위 프로그램 인수와 더미 하위 프로그램 인수 간의 불일치에 대한 경고를 제어합니다.
또한 예상된 하위 프로그램 유형과 실제 하위 프로그램 유형 간의 불일치에 대해서도 설명합니다. (실제
인수는 호출자가 서브프로그램에 전달한 인수입니다. 더미 주장은
서브 프로그램에서 수신한 인수입니다.) 기본적으로 모든 경고는 켜져 있습니다.

XNUMXD덴탈의 명부 쉼표나 콜론으로 구분된 키워드로 구성됩니다. 이 모든 것부터
경고는 기본적으로 켜져 있습니다. 접두사가 붙은 키워드를 포함합니다. 아니 - 끄다
특별한 경고. 세 가지 특별한 키워드가 있습니다: 모든 모든 것을 켜려면
인수에 대한 경고, 없음 모두 끄고 도움 목록을 인쇄하려면
각 키워드에 대한 간략한 설명과 함께 모든 키워드를 확인하세요. 만약에 명부 생략하고, -인수
에 해당하는 -인수=모두-인수 없음 에 해당하는 -인수=없음.
경고 키워드와 그 의미는 다음과 같습니다.

배열성:
배열인 인수의 일관되지 않은 사용에 대해 경고합니다. 이러한 경고는
에 의해 추가로 통제됩니다. -정렬 옵션을 선택합니다.

유형:
실제 인수와 다른 데이터 유형의 더미 인수에 대해 경고합니다.

기능 유형:
호출에서 함수의 반환 값이 다른 유형이라고 가정하면 경고합니다.
실제보다. 또한 함수가 서브루틴으로 호출되는 경우에도 경고합니다.
반대의 경우도 마찬가지입니다.

번호:
인수 개수가 다른 하위 프로그램을 호출하는 것에 대해 경고합니다.
하위 프로그램이 기대합니다.

이전 버전과의 호환성을 위해 ftnchek, 이것의 숫자 형식
설정도 허용됩니다. 명부 는 0부터 3까지의 숫자로 대체됩니다.
0은 모든 경고를 끄고, 1은 경고만 켭니다. 번호, 2개는 다음을 제외하고 모두 켜짐 번호,
3은 모든 경고를 켭니다.

이 설정은 내장 함수 호출 확인에는 적용되지 않습니다.
에 의해서만 끌 수 있는 명령문 기능 - 체크 없음 옵션을 선택합니다.

참조 : -정렬, -도서관, -용법.

-배열=명부
실제와 더미 사이의 일치 여부 확인의 엄격함 정도를 제어합니다.
배열인 서브프로그램 인수. 이 설정으로 제어되는 경고는 다음과 같습니다.
지식이 풍부한 프로그래머가 합법적으로 사용할 수 있는 구성의 경우,
그러나 이는 종종 프로그래밍 오류를 나타냅니다. 기본적으로 모든 경고는 켜져 있습니다.
에.

XNUMXD덴탈의 명부 쉼표나 콜론으로 구분된 키워드로 구성됩니다. 이 모든 것부터
경고는 기본적으로 켜져 있습니다. 접두사가 붙은 키워드를 포함합니다. 아니 - 끄다
특별한 경고. 세 가지 특별한 키워드가 있습니다: 모든 모든 것을 켜려면
배열 인수에 대한 경고, 없음 모두 끄고 도움 인쇄하다
각 키워드에 대한 간략한 설명과 함께 모든 키워드 목록. 만약에 명부 생략하고,
-정렬 에 해당하는 -배열=모두-noarray 에 해당하는 -배열=없음. 그만큼
경고 키워드와 그 의미는 다음과 같습니다.

치수:
인수의 차원 수가 다르거나 실제 인수가 다른 경우 경고합니다.
인수는 배열 요소이고 더미 인수는 전체 배열입니다.

크기:
두 인수가 모두 배열이지만 요소 수가 다른 경우 경고합니다.

이전 버전과의 호환성을 위해 ftnchek, 이것의 숫자 형식
설정도 허용됩니다. 명부 는 0부터 3까지의 숫자로 대체됩니다.
0은 모든 경고를 끄고, 1은 경고만 켭니다. 치수, 2개만 켜짐 크기
3 모든 경고를 켭니다.

참고: 실제 인수가 다음과 같은 경우 이 설정에 관계없이 항상 경고가 표시됩니다.
더미 인수가 스칼라 변수인 경우 배열이거나 실제 인수인 경우
인수는 스칼라 변수 또는 표현식이고 더미 인수는 배열입니다.
이러한 경우는 의도적인 경우가 거의 없습니다. (이 경고를 끄려면 다음을 사용하십시오.
-인수=배열 없음.) 실제 인수가 다음과 같은 경우에는 경고가 제공되지 않습니다.
더미 인수가 스칼라 변수인 동안 배열 요소입니다. 가변차원
배열 및 1 또는 별표로 차원화된 배열은 임의 개수의 배열과 일치합니다.
강요. 다차원 배열의 크기가 일치하는지 확인하지 않습니다.
각 차원을 별도로 지정합니다.

참조 : -인수, -도서관, -용법.

-짧은
일부 경고 메시지에 대해 더 짧은 형식을 선택합니다. 현재 유일한 경고
이 플래그에 의해 제어되는 것은 각 처리가 끝날 때 인쇄되는 것입니다.
하위 프로그램. 여기에는 설정되었지만 사용되지 않은 변수에 대한 경고가 포함됩니다.
설정 전에 사용됨, Fortran 77 표준을 따르지 않는 변수 이름,
(이러한 경고는 다음과 같은 다른 플래그에 따라 완전히 표시되지 않을 수 있습니다.
전에, -용법 or -f77 플래그.) 기본 형식에서 각 변수는
변수가 선언, 설정 또는 설정되는 줄 번호와 함께 별도의 줄
경고의 성격에 따라 사용됩니다. 더 간단한 형식은 단순히 모든 항목을 나열합니다.
경고가 적용되는 변수(한 줄에 최대 4개의 변수 포함)

참조 : -조용한.

-콜트리=명부
활동 ftnchek 전체 프로그램의 호출 구조를 인쇄합니다.

XNUMXD덴탈의 명부 쉼표나 콜론으로 구분된 키워드로 구성됩니다. 특별하게 두가지가 있어요
키워드 : 없음 모든 옵션을 끄고 도움 모든 목록을 인쇄하려면
각 키워드에 대한 간략한 설명이 포함된 키워드입니다. (키워드는 모든 모든 것을 켠다
옵션이지만 하나의 형식만 사용해야 하므로 일반적으로 사용해서는 안 됩니다.
지정됩니다.) 만약 명부 생략하고, -콜트리 에 해당하는 -콜트리=트리
-노콜트리 에 해당하는 -콜트리=없음. 기본적으로 호출 그래프는 인쇄되지 않습니다.

-mkhtml 옵션이 호출된 경우 tree는 적용된 콜트리 옵션, 즉 파일입니다.
CallTree.html이라는 이름의 파일도 HTML 형식으로 트리를 묘사하여 생성됩니다. 이것
파일은 각 설명을 설명하는 HTML 파일을 탐색하기 위한 시작점으로 유용합니다.
프로그램의 구성 요소.

사용되는 형식을 제어하는 ​​키워드는 다음과 같습니다.

나무:
호출 그래프를 트리 형식으로 생성합니다.

참고:
누가-전화-누구 형식으로 호출 그래프를 생성합니다(와 동일). -참고 스위치).

가상현실:
VCG 형식으로 호출 그래프를 생성합니다( -vcg 스위치).

형식 중 하나만 나무, 참고가상현실 지정될 수 있습니다.

다음 키워드는 출력에 영향을 미치는 옵션을 제어합니다.

치다:
반복되는 하위 트리 잘라내기(다음에만 적용 가능) 나무). 이것이 기본값입니다.

종류:
각 루틴의 하위 항목을 알파벳 순서로 정렬합니다. 이것이 기본값입니다.

의 토론을 참조하세요. -참고-vcg 이에 대한 자세한 내용은 플래그를 참조하세요.
형식.

럭셔리 나무 형식, 콜 그래프는 메인 프로그램부터 인쇄됩니다.
이는 왼쪽 여백의 첫 번째 줄에 나열됩니다. 그런 다음 다음 줄에서
주 프로그램에 의해 호출되는 각 루틴이 나열되고 몇 개의 공백이 들여쓰기되고 그 뒤에
해당 루틴에서 시작하는 하위 트리를 기준으로 합니다.

기본 모드에서 루틴이 둘 이상의 다른 루틴에 의해 호출되면 해당 루틴은
호출 하위 트리는 처음 발생할 때만 인쇄됩니다. 나중에 호출은 제공만 제공합니다.
루틴 이름과 "(위 참조)"라는 알림. 하위 트리를 인쇄하려면
루틴이 발생할 때마다 옵션을 사용하십시오. 가지치기 안함.

입력 파일 중 프로젝트 파일이 있으면 호출 트리가 불완전해집니다.
에서 생성된 둘 이상의 모듈을 포함하는 파일 -도서관 방법. 참조
아래 프로젝트 파일에 대한 토론.

기술적 포인트: 주어진 루틴에 의해 호출되는 각 루틴 목록은 다음과 같이 인쇄됩니다.
제외하고 알파벳순으로 무정렬 옵션이 주어집니다. 주요 프로그램이 여러 개인 경우
발견되면 각각의 호출 트리가 별도로 인쇄됩니다. 메인 프로그램이 없다면
발견되면 해당 결과에 대한 보고서가 인쇄되고 모든 최상위 레벨의 호출 트리가 인쇄됩니다.
라이브러리가 아닌 루틴이 인쇄됩니다. 이 플래그는 호출 인쇄만 제어합니다.
나무: ftnchek 결정하는 데 사용되기 때문에 어떤 경우에도 호출 트리를 구성합니다.
어떤 라이브러리 모듈을 교차 검사할 것인지. 의 토론을 참조하세요. -도서관
깃발.

이전 버전과의 호환성을 위해 ftnchek, 이것의 숫자 형식
설정도 허용됩니다. 명부 0부터 15까지의 숫자로 대체됩니다.
숫자는 1부터 형성됩니다. 나무 형식, 2개 참고 형식, 또는 3 가상현실
형식에 4를 더한 값 가지치기 안함, 8 for 무정렬.

참조 : -교차 참조, -도서관, -참고, -종류, -심탭, -vcg.

-검사
이 스위치는 다음과 같은 경우 오류 및 경고 메시지를 끌 수 있도록 제공됩니다.
ftnchek 선언 등 버그 찾기 이외의 목적으로 사용됩니다.
또는 호출 트리를 인쇄합니다. 위치 지정이므로 모든 체크를 해제한 후,
선택한 검사를 다시 켤 수 있습니다. 의 효과 - 체크 없음 모두 넣는 것입니다
스위치, 숫자 설정 및 경고 목록을 제어하는 ​​설정
끄기 값은 모두 -no 접두사로 지정된 것처럼 보입니다. 스위치
제어가 아닌 옵션 및 작동 모드를 지정하는 설정
경고는 영향을 받지 않습니다. 이것들은 -열, -교차 참조, -포함, -본질적,
-도서관, -명부, -madecls, -초심자, -산출, - 포인터 크기, -계획, -조용한,
-참고, -자원, -종류, -source, -심탭, -vcg, -번역, -단어 크기
-싸다. 기본값 = 예.

구문 분석 오류(인식할 수 없거나 형식이 잘못된 명령문으로 인한 구문 오류)는
다음과 같은 경우 결과가 올바르지 않을 수 있으므로 이 스위치에 의해 억제됩니다. ftnchek ~하지 않았다.
프로그램을 올바르게 구문 분석했습니다.

에 의해 제어되지 않는 기타 오류 및 경고 메시지가 있습니다.
다른 스위치는 없으므로 이 스위치로만 끌 수 있습니다. 다음을 사용하여
-검사 수행원 - 체크 없음 이러한 특별 경고를 설정하는 효과만 있습니다.
다시 켜고 끈 모든 검사를 복원하지는 않습니다. 이러한 경고는 다음과 같습니다.

o 모듈에는 실행 가능한 명령문이 없습니다.

o 자유 소스 형식에서는 공간이 필요한 곳에 공간이 누락되었습니다(예:
키워드 및 식별자) 또는 아무것도 허용되지 않는 공간(예:
식별자).

o 다음 형식의 데이터 유형 선언에서 XNUMX 또는 음수 길이 지정
유형*len.

o 표현식에 잘못된 피연산자가 있습니다.

o 스칼라에 할당된 배열.

o DO 인덱스와 경계 사이의 유형 불일치.

o SAVE 문에 선언된 정의되지 않은 공통 블록.

o 호환되지 않는 유형으로 명시적으로 선언된 내장 함수.

o INTLINSIC 문에 명시적으로 선언된 알 수 없는 내장 함수입니다.

o 하위 프로그램 인수로 전달된 내장 함수는
INTRINSIC 문.

o 내장 함수 또는 명령문 함수가 잘못 호출되었습니다.

o 함수는 RETURN 문 이전에 반환 값을 설정하지 않습니다.

o 매개변수 상수 값이 평가되지 않습니다(이것은 ftnchek의 잘못이고 그것은 단지
사실을 알려드립니다.)

o 하위 프로그램의 진입점은 나중에 다른 하위 프로그램의 이름으로 사용됩니다.

o I/O 문에 사용된 알 수 없는 키워드입니다.

o 잘못된 레이블 참조(예: GOTO는 실행할 수 없는 명령문을 나타냅니다. I/O
문은 비형식 문을 나타냅니다.)

참조 : -오류.

-열=NUM
최대 명령문 길이를 다음으로 설정하십시오. NUM 열. (이 이상은 무시됩니다.)
Fortran을 위반할 수 있는 프로그램을 검사할 수 있도록 설정이 제공됩니다.
명령문 길이에 대한 표준 제한은 72열입니다. 에 따르면
표준에서는 72열 이후의 모든 문자가 무시됩니다. 이 설정을 사용할 경우
전에, -f77=긴 줄 옵션이 적용되면 다음의 모든 행에 대해 경고가 표시됩니다.
72열 이후의 문자가 처리됩니다. 켜기 = 최대 = 132. 기본값 = 72.

이 설정은 다음 문자의 존재에 대한 경고를 억제하지 않습니다.
열 72. 열 72를 넘어서 의미 있는 프로그램 텍스트가 있는 코드를 처리하려면 다음을 사용하십시오.
설정하고 확인하세요. -f77 긴 선 옵션이 꺼져 있습니다. 코드를 처리하려면
73~80열의 순서 번호, 열 설정을 기본값으로 둡니다.
가치를 부여하고 사용 -예쁘다=줄이 길지 않다 깃발.

참조 : -f77, -예쁜.

-공통=명부
이 설정은 COMMON 블록 검사의 엄격함을 제어합니다. 기본적으로 모든
제외하고 경고 휘발성의 켜져 있습니다.

XNUMXD덴탈의 명부 쉼표나 콜론으로 구분된 키워드로 구성됩니다. 이들 대부분 이후로
경고는 기본적으로 켜져 있습니다. 접두사가 붙은 키워드를 포함합니다. 아니 - 끄다
특별한 경고. 세 가지 특별한 키워드가 있습니다: 모든 모든 것을 켜려면
경고, 없음 모두 끄고 도움 모든 키워드 목록을 인쇄하려면
각각에 대한 간단한 설명과 함께. 만약에 명부 생략하고, -흔한 에 해당하는
-common=치수, 정확함, 길이, 유형- 흔하지 않은 에 해당하는 -공통=없음.
경고 키워드와 그 의미는 다음과 같습니다.

치수:
블록의 각 선언에 있는 해당 배열은 크기와 크기가 일치해야 합니다.
차원의 수. 이 옵션은 다음과 함께 사용하는 경우에만 효과가 있습니다.
정확한.

정확한:
두 블록의 비교는 단순히 수행되는 것이 아니라 변수별로 수행됩니다.
해당 저장 위치 간의 합의가 필요합니다. 모든 경우에 이것을 사용하십시오.
주어진 COMMON 블록의 선언은 동일해야 합니다.
좋은 프로그래밍 연습.

길이:
동일한 블록의 서로 다른 선언의 전체 길이가 동일하지 않으면 경고합니다.
Fortran 77 표준에는 명명된 각 공통 블록이 필요하지만 공백 공통 블록은 필요하지 않습니다.
프로그램의 모든 모듈에서 동일한 길이가 되도록 합니다.

유형:
주어진 COMMON 블록의 각 선언에서 해당 메모리 위치
(단어 또는 바이트)의 데이터 유형이 일치해야 합니다. 와 함께 사용하는 경우 정확한
해당 변수가 데이터 유형에 동의해야 합니다.

휘발성의:
COMMON 블록은 휘발성이라고 가정합니다.

많은 Fortran 프로그래머는 로컬이든 COMMON이든 변수가 다음과 같다고 가정합니다.
정적입니다. 즉, 일단 값이 할당되면 해당 값은 다음 때까지 영구적으로 유지됩니다.
프로그램에 의해 다른 값이 할당되었습니다. 그러나 실제로 Fortran 77은
표준에서는 이것이 사실일 것을 요구하지 않습니다. 지역 변수는 다음과 같을 수 있습니다.
선언된 모듈의 활성화 사이에는 정의되지 않았습니다. 비슷하게,
COMMON 블록이 선언된 모듈이 없으면 정의되지 않을 수 있습니다.
활동적인. (이러한 동작을 하는 엔터티에 대한 기술 용어는 '자동'이지만
ftnchek 비전문가가 보기에 더 명확하기 때문에 ``휘발성''이라는 단어를 사용합니다.)
SAVE 문에서 선언되거나 기본 프로그램 또는
블록 데이터 서브프로그램은 프로그램이 실행되는 동안 정의된 상태로 유지됩니다. 변수
특정 시점에서 정의되지 않을 수 있는 COMMON 블록을 휘발성이라고 합니다.

경우 -공통=휘발성 플래그가 켜져 있고, ftnchek 발견하면 경고합니다.
휘발성 COMMON 블록. 만약, 동시에, -사용법=com-블록-휘발성 선택권
켜져 있습니다(기본값). ftnchek 그런 블록이 있는지 확인하려고 노력할 것입니다
모듈 활성화 사이에 정의된 상태가 손실될 수 있습니다.
선언했다. ftnchek 이 작업을 잘 수행하지 못합니다. 사용된 규칙은 다음을 확인하는 것입니다.
블록이 호출 트리의 두 개의 분리된 하위 트리에서 선언되었는지 여부입니다. 을 위한
예를 들어, 두 개의 모듈이 모두 메인 프로그램에서 호출되는 경우가 해당됩니다.
휘발성 COMMON 블록을 공유했습니다. 블록은 두 사이에서 정의되지 않을 수도 있습니다.
동일한 하위 프로그램을 연속적으로 호출하지만 ftnchek 말할 만큼 똑똑하지 않다
서브프로그램을 두 번 이상 호출할 수 있는지 여부이므로 이 경우는 확인되지 않습니다.

XNUMXD덴탈의 -공통=휘발성 깃발은 방법에 영향을 미치지 않습니다 ftnchek 로컬 사용량 확인
변수.

이전 버전과의 호환성을 위해 ftnchek, 이것의 숫자 형식
설정도 허용됩니다. 명부 는 0부터 3까지의 숫자로 대체됩니다.
0은 모든 경고를 끄고, 1 이상은 켜집니다. 유형, 2개 이상 켜짐
길이, 3개가 켜집니다. 치수정확한 또한. 숫자 양식을 켤 수 없습니다
전에, 휘발성의 옵션을 선택합니다.

참조 : -도서관, -용법.

-교차참조=명부
상호 참조 테이블을 인쇄합니다. 기본값 = 없음.

XNUMXD덴탈의 명부 쉼표나 콜론으로 구분된 키워드로 구성됩니다. 키워드는
그 의미는 다음과 같습니다.

통화:
표에는 각 하위 프로그램과 이를 호출하는 루틴 목록이 나열되어 있습니다.
이 목록에는 기본 호출 트리에 없는 라이브러리 모듈이 생략되어 있습니다.
프로그램. 목록은 알파벳순으로 되어 있습니다.

공통의:
테이블에는 각 COMMON 블록과 액세스하는 루틴 목록이 나열되어 있습니다.
그것. 이러한 나열된 루틴은 COMMON의 일부 변수가 포함된 루틴입니다.
블록을 선언하는 루틴뿐만 아니라 블록에도 액세스됩니다. (에게
어떤 루틴이 COMMON 블록을 선언하지만 사용하지 않는지 알아보십시오.
-용법 깃발.)

라벨:
표에는 각 라벨과 이에 대한 모든 참조 목록이 나열되어 있습니다. 라벨
참조는 참조의 줄 번호와 문 유형으로 표시됩니다.
성명. 라벨 목록은 순차적입니다. 참고자료는
프로그램에서 만나는 순서대로 나열됩니다.

참조 : -콜트리, -참고, -종류, -심탭, -vcg.

-선언하다
이 플래그가 설정되면 각 모듈에서 데이터 유형이 선언되지 않은 모든 식별자
나열됩니다. 이 플래그는 철자가 틀린 변수 이름을 찾는 데 유용합니다.
등. 모듈에 IMPLICIT NONE이 포함되어 있으면 동일한 목록이 제공됩니다.
성명. 기본값 = 아니요.

참조 : -여섯자, -용법.

-분할
이 스위치는 사용자가 잠재적인 XNUMX으로 나누기 문제를 발견하는 데 도움을 주기 위해 제공됩니다. 만약에
이 스위치를 선택하면 상수를 제외한 모든 구분에 플래그가 지정됩니다. (그것
사용자가 상수로 나누지 않을 만큼 충분히 지능적이라고 가정합니다.
XNUMX과 같습니다!) 기본값 = no.

참조 : -이식성, -잘림.

-오류=NUM
'계단식''의 최대 오류 메시지 수를 설정합니다. 확인하는 동안
서브 프로그램 인수의 동의, 공통 블록 선언 등
때로는 단일 사례로 인해 긴 경고 문자열이 생성되는 경우도 있습니다. 종종 이것은 단순히
실제 항목별 불일치가 아닌 다른 원인을 나타냅니다.
예를 들어 하나의 목록에서 변수가 누락되었습니다. 그래서 그런 경우에는 ftnchek 인쇄를 중지합니다
계단식 한계에 도달한 후 경고가 표시되고 예고편 "etc..."는
인쇄되지 않은 오류가 더 있음을 나타내기 위해 인쇄되었습니다. 당신이 생각한다면
이러한 경고는 진짜일 가능성이 높습니다. 더 많은 경고를 보려면 이 설정을 사용하세요.
켜기 = 기본값 = 3, 최대 = 999. 값이 0이면 제한이 없음을 의미합니다.

이 설정은 인쇄되는 오류 메시지 수에 대한 전체 제한을 설정하지 않습니다.
한 계단식 배열에서는 숫자만 인쇄됩니다. 대부분의 경고 및 오류 유형
메시지는 계단식 효과의 영향을 받지 않으므로 이 영향을 받지 않습니다.
환경. 일반적으로 경고를 끄려면 개별 경고 컨트롤을 사용하세요.
옵션 또는 - 체크 없음 옵션을 선택합니다.

참조 : -검사.

-통근자
활동 ftnchek 프로그램에 의해 호출된 하위 프로그램이 호출되지 않았는지 여부를 보고합니다.
한정된. 일반적으로 다음과 같은 경우 ftnchek 완전한 프로그램으로 실행되고 있으며, 각
내장 함수 이외의 하위 프로그램은 어딘가에 정의되어야 합니다. 회전하다
파일의 일부를 구성하는 파일의 하위 집합만 확인하려면 이 스위치를 끄세요.
더 큰 완전한 프로그램. 하위 프로그램 인수는 계속 확인됩니다.
단정. 기본값 = 예.

XNUMXD덴탈의 -통근자 이제 플래그는 다음으로 대체됩니다. -사용=확장-정의되지 않음 옵션. 에 대한
편의상, -통근자 플래그가 유지되므로 -noextern 동등하다
-usage=no-ext-미정의 선택권. 그만큼 -통근자 스위치는 결국 폐기될 수 있습니다.

참조 : -도서관.

-f77=명부
Fortran 77을 위반하는 언어 확장을 찾으려면 이 설정을 사용하십시오.
기준. 이러한 확장으로 인해 프로그램을 이식할 수 없게 될 수 있습니다. 예
변수 이름에 밑줄 사용을 포함합니다. XNUMX보다 긴 변수 이름
캐릭터; 72자를 초과하는 명령문 행; 비표준 진술
DO ... ENDDO 구조와 같은 것입니다. ftnchek 사용에 대해서는 보고하지 않습니다.
소문자. 기본적으로 모든 경고는 꺼져 있습니다.

이 설정은 지원되는 확장에 대한 경고를 세부적으로 제어합니다.
Fortran 77 표준으로. (확장 자체에 대한 자세한 내용은
아래 확장 섹션에 나와 있습니다.) 명부 구분된 키워드로 구성
쉼표나 콜론으로. 세 가지 특별한 키워드가 있습니다: 모든 모든 것을 켜려면
비표준 확장에 대한 경고, 없음 모두 끄고 도움 인쇄
각 키워드에 대한 간략한 설명이 포함된 모든 키워드 목록입니다. 만약에 명부 생략하고,
-f77 에 해당하는 -f77=모두-nof77 에 해당하는 -f77=없음. 경고
그 의미를 지닌 키워드는 다음과 같습니다.

수락형:
ACCEPT 및 TYPE I/O 문.

배열 경계:
배열 요소 또는 함수를 포함하는 배열 경계를 정의하는 표현식
참조.

할당-stmt:
배열과 관련된 할당문입니다. Fortran 90에서는 배열이 가능합니다.
호환되는 모양의 다른 배열에 할당하거나 스칼라를 할당할 수 있습니다.
배열. Fortran 77에서는 이러한 할당이 허용되지 않습니다.

배열이 스칼라에 할당되면 관련 경고가 발생합니다. 이 이후로
Fortran 90에서도 불법입니다.
-f77 설정(모든 확인이 해제되지 않은 경우 - 체크 없음 깃발).

속성 기반 Decl:
새로운 Fortran 90 속성 기반 스타일로 선언을 입력하세요. 이 스타일의
선언 사이에 이중 콜론(::)을 사용하여 구별됩니다.
속성 목록과 선언된 변수 목록입니다. 이 옵션도
형식에서 Fortran 90 길이 또는 종류 지정자 사용에 대한 경고를 제어합니다.
선언. (이러한 지정자는 비속성 기반에서 사용될 수 있지만
선언의 확산을 방지하기 위해 이 옵션으로 제어됩니다.
-f77 옵션.)

자동 배열:
가변 크기를 갖는 로컬(더미 아님) 어레이. 이들은 다음에 해당합니다.
런타임에 스토리지를 동적으로 할당해야 하는 배열.

백 슬래시:
Unix 백슬래시는 문자열로 이스케이프됩니다. 이 경고는 다음과 같은 경우에만 제공됩니다.
-source=unix-백슬래시 이스케이프를 유발하도록 설정이 지정되었습니다.
백슬래시 해석..

바이트: BYTE 데이터 유형 선언.

사례 구성:
SELECT CASE 구문.

문자:
문자 데이터에 관한 Fortran 77 표준의 확장입니다. 현재,
이는 XNUMX 또는 XNUMX으로 선언된 문자 변수에 대한 경고만 제어합니다.
음수 길이. Fortran 77에서 모든 문자 변수는 양수여야 합니다.
길이. Fortran 90에서는 길이가 XNUMX일 수 있으며 다음과 같이 선언합니다.
음수 길이 지정이 허용되며 선언된 경우 XNUMX으로 전환됩니다.
길이. 참고: 음수 길이 지정자는 프로그래밍을 나타낼 수 있기 때문입니다.
오류가 발생하면 이 옵션이 꺼져 있어도 이에 대한 경고가 표시됩니다.
에 의해서만 억제됩니다. - 체크 없음 깃발.

공통 하위 프로그램 이름:
이름이 같은 공통 블록과 서브프로그램입니다.

구성 이름:
구문 이름을 사용하여 제어문에 레이블을 지정합니다.

계속:
19개 이상의 연속 연속 라인.

CPP: 소스 코드의 Unix C 전처리기 지시문.

크레이 포인터:
``크레이 포인터'' 구문.

사이클 종료:
CYCLE 및 EXIT 문.

d-코멘트:
소스 코드에서 D로 시작하는 디버깅 주석입니다.

XNUMX월 탭:
DEC Fortran 스타일의 탭 형식 소스 코드. 이 경고는
경우 -소스=dec-탭 탭을 해석하도록 설정이 지정되었습니다.
이 스타일로.

끝내다:
DO 루프 확장: 터미널 명령문 레이블 생략, END DO 및 WHILE.

이중 복합체:
배정밀도 복합 데이터 유형.

형식-달러 기호:
FORMAT 문의 달러 기호 제어 코드입니다.

형식 편집 설명:
FORMAT 문의 비표준 편집 설명자.

기능노파렌:
괄호 없이 함수 정의.

암시적 없음:
IMPLICIT NONE 문.

포함:
INCLUDE 문.

인라인 주석:
느낌표로 시작하는 인라인 주석입니다.

내부 목록 io:
내부 파일과의 목록 지향 I/O입니다.

본래 갖추어 진:
비표준 내장 함수.

io-키워드
I/O 문에 사용되는 비표준 키워드입니다. 이들은 세 그룹으로 나뉩니다.
첫 번째 그룹에는 Fortran 90에서 허용되는 키워드가 포함됩니다.

액션 패드 읽기 쓰기
어드밴스 포지션 크기
삭제 읽기 쓰기
EOR
두 번째 그룹은 다음 VMS Fortran 키워드로 구성됩니다.

블록 크기 확장 읽기 전용
버퍼카운트 초기화 크기 기록 크기
Carriagecontrol MAXREC 레코드 유형
기본 파일 이름(열린 상태) 공유됨
DISP NOSPAN블록 유형
조직 처분
(키워드 NAME은 INQUIRE 문에서만 표준입니다.) 세 번째
그룹은 다음 IBM/MVS 키워드로 구성됩니다.

NUM
이 플래그는 또한 ACCESS='APPEND' 사용에 대한 경고를 제어합니다.
일부 컴파일러에서는 허용됩니다. 'APPEND' 값은 모든 I/O에 유효하지 않습니다.
표준 Fortran 77에서는 지정자를 사용해야 하며 Fortran 90에서는 'APPEND'를 사용해야 합니다.
ACCESS가 아닌 POSITION 지정자의 값으로 사용됩니다.

긴 선:
72개 열을 넘는 의미 있는 코드가 포함된 명령문입니다. 이 경고는 오직
경우 -열 명세서 필드 너비를 늘리기 위해 설정이 사용되었습니다.

긴 이름:
6자를 초과하는 식별자입니다.

혼합 공통:
COMMON 블록에 문자 데이터와 문자가 아닌 데이터가 혼합되어 있습니다.

혼합 표현:
표현식의 비표준 유형 조합(예: DOUBLE PRECISION)
COMPLEX를 사용하면 홀러리스를 정수에 할당하고 정수에 대한 논리 연산을 수행합니다.

이름-달러 기호:
식별자의 문자로 사용되는 달러 기호입니다.

이름 밑줄:
식별자에서 문자로 사용되는 밑줄.

명부:
NAMELIST 문입니다.

매개변수 암시적 유형:
할당된 값의 데이터 유형에 따라 매개변수를 암시적으로 입력합니다. 이것
경고는 암시적 매개변수 유형 지정이 활성화된 경우에만 발생할 수 있습니다.
-source=param-암시적 유형 옵션이거나 PARAMETER 문이
괄호가 없는 비표준 형식입니다. 이 옵션이 켜져 있으면 모든
암시적 매개변수 입력이 발생하는 인스턴스에 대해 경고가 표시됩니다. 만약에
암시적 데이터 유형이 있는 경우에만 경고를 받고 싶습니다.
기본 유형과 다르면 사용하세요. -이식성=param-암시적 유형 대신.
Fortran 77 표준에 따르면 매개변수의 데이터 유형이 지정됩니다.
변수와 동일한 규칙을 따르며, 필요한 경우 유형 변환은 다음과 같습니다.
값이 할당되면 완료됩니다.

매개변수 내장:
값을 정의하는 데 사용되는 실수에 의한 내재 함수 또는 지수
매개변수 정의.

파라노파렌:
괄호가 없는 PARAMETER 문입니다. 사용자는 다음 사항을 인지해야 합니다.
이 형태의 진술의 의미는 표준의 의미와 다릅니다.
형식: 이 형식에서 매개변수는 값에서 데이터 유형을 가져옵니다.
첫 번째 문자를 기반으로 하는 기본 데이터 유형을 갖는 대신 할당됩니다.
매개변수 이름의 (이 형식의 PARAMETER 문이 도입되었습니다.
Fortran 77 표준이 정의되기 전에 DEC에 의해 작성되었으며 피해야 합니다.)

포인터:
POINTER, TARGET 및
ALLOCATABLE 유형 선언, ALLOCATE, DEALLOCATE 및 NULLIFY 문,
=>를 사용하여 포인터를 할당합니다.

쿼드 상수:
쿼드 정밀도 실수 상수(예: 1.23Q4 형식).

따옴표:
아포스트로피가 아닌 따옴표로 구분된 문자열입니다.

재회하다:
구두점으로 구성된 관계(비교) 연산자, 즉 < <= == /=
> >=.

세미콜론:
명령문 구분자로 사용되는 세미콜론입니다.

명세서 순서:
표준에서 요구하는 순서를 벗어난 진술. 허용된
시퀀스는 출력 해석 섹션의 표 1에 설명되어 있습니다.

유형이 없는 상수:
유형이 없는 상수(예: Z'19AF')

유형 크기:
REAL*8과 같이 크기를 지정하는 유형 선언입니다.

가변 형식:
FORMAT의 가변 반복 사양 또는 필드 크기. 이들은 다음과 같은 형태입니다.
< 특급 >.

vms-io:
더 이상 사용되지 않습니다. 이제 다음과 같은 의미를 갖습니다. io-키워드 예어.

참조 : -f90, -f95, -이식성, -예쁜, 스타일, -단어 크기.

-f90=명부
이 설정은 지원되는 확장에 대한 경고를 세부적으로 제어합니다.
Fortran 77의 일부로 채택되지 않은 Fortran 90 표준
기준. 참고하세요 ftnchek 전체 Fortran 90 언어를 지원하지 않습니다.
그러나 널리 사용되는 Fortran 77에 대한 몇 가지 일반적인 확장을 지원합니다.
Fortran 90이 정의되기 전. 이러한 확장 중 일부는 Fortran의 일부가 되었습니다.
90 Standard이지만 다른 사람들은 그렇지 않았습니다. 그만큼 -f90 설정은 후자에 대해서만 경고합니다.
즉, 이 플래그는 합법적인 Fortran 77도 아니고 합법적이지 않은 것들을 다룹니다.
Fortran 90. 따라서 이 플래그에 의해 제어되는 경고는 기본적으로 하위 집합입니다.
에 의해 제어되는 경고 중 -f77. 아래에 설명된 몇 가지 사례가 있습니다.
경고가 주어지는 상황은 두 사람에게 약간 다릅니다.
플래그.

XNUMXD덴탈의 명부 쉼표나 콜론으로 구분된 키워드로 구성됩니다. 세 가지가 있습니다
특별한 키워드: 모든 비표준 확장에 대한 모든 경고를 켜려면
없음 모두 끄고 도움 모든 키워드 목록을 인쇄하려면
각각에 대한 간단한 설명. 만약에 명부 생략하고, -f90 에 해당하는 -f90=모두
-nof90 에 해당하는 -f90=없음.

다음 키워드는 다음과 같은 의미를 갖습니다. -f90 에 관해서 -f77. 독자는
아래 설명 참조 -f77.

수락형 이중 복합체 파라노파렌
백 슬래시 형식-달러 기호 크레이 포인터
바이트 형식 편집 설명 쿼드 상수
CPP 기능노파렌 유형 크기
d-코멘트 이름-달러 기호 가변 형식
XNUMX월 탭 매개변수 암시적 유형 vms-io

해당 키워드와 다소 다른 키워드 -f77 키워드는 다음과 같습니다
다음과 같습니다.

계속:
고정 소스의 명령문에 대한 연속 행 수 제한
형식은 Fortran 19과 Fortran 90에서 77로 동일합니다. 무료 소스의 경우
한도는 39개의 연속 라인이며, 연속을 포함하는 라인은
mark는 비어 있거나 주석만 포함할 수 없습니다.

본래 갖추어 진:
이는 다음과 같습니다. -f77 에 정의된 내장 함수를 제외하고
MIL-STD 1753, Fortran 90에 모두 포함되어 있으므로 경고하지 않음
에 대한. (보다 -본질적 목록을 보려면.)

io-키워드:
이는 다음과 같습니다. -f77 단, I/O에 대한 경고는 제공되지 않습니다.
Fortran 90의 표준 키워드입니다.

긴 선:
Fortran 90 Standard에서는 72자보다 긴 줄을 허용하지만
자유 소스 형식이지만 이 제한은 고정 소스 형식에도 여전히 적용됩니다. ~ 안에
무료 소스 형식의 줄 길이 제한은 132자이며 고정된 것과는 다릅니다.
형태, ftnchek 이 제한을 늘리는 것을 허용하지 않습니다.

혼합 표현:
이는 다음과 같습니다. -f77 확장 정밀도를 혼합한 표현식 제외
Fortran 90에서 허용되는 복잡한 데이터 유형의 실수입니다.

명세서 순서:
이는 해당하는 것과 유사합니다. -f77 경고하지만 다소 적용됩니다.
Fortran 90 Standard의 명령문 순서에 대한 제한이 완화되었습니다. ~ 안에
특히 Fortran 90에서는 DATA 문과 문 기능을 허용합니다.
사양 설명과 혼합되는 정의.

유형이 없는 상수:
Fortran 90에서는 B'ddd' 형식의 XNUMX진수, XNUMX진수, XNUMX진수 상수,
O'ddd' 및 Z'ddd'는 각각 허용됩니다. 여기서 'ddd'는
숫자 문자열. ftnchek 이러한 형식과 변형을 인식합니다.
XNUMX진수 상수의 경우 X'ddd' 형식 및 기타 변형
기본 표시기 B, O, Z 또는 X는 숫자 문자열을 따릅니다. 이러한 변종은
Fortran 90에서는 채택되지 않았으므로 이 플래그가 사용될 때만 경고를 받습니다.
켜져있다.

참조 : -f77, -f95, -이식성, -예쁜, 스타일, -단어 크기.

-f95=명부
이 설정은 표준 Fortran 77에 대한 경고를 세부적으로 제어합니다.
Fortran 95 Standard에서 삭제된 기능입니다. 와 달리 -f77-f90
설정에 따라 이러한 경고는 Fortran 77에 적합한 구문에 적용됩니다. 그러나 이후
이러한 기능은 표준에서 삭제되었으므로 프로그램이
이를 포함하는 것은 일부 최신 컴파일러에서는 허용되지 않습니다.

XNUMXD덴탈의 명부 쉼표나 콜론으로 구분된 키워드로 구성됩니다. 세 가지가 있습니다
특별한 키워드: 모든 비표준 확장에 대한 모든 경고를 켜려면
없음 모두 끄고 도움 모든 키워드 목록을 인쇄하려면
각각에 대한 간단한 설명. 만약에 명부 생략하고, -f95 에 해당하는 -f95=모두
-nof95 에 해당하는 -f95=없음. 의미가 있는 경고 키워드는 다음과 같습니다.
다음과 같습니다.

실제:
실수형의 DO 변수.

중지:
PAUSE 문.

할당:
ASSIGN 문, 지정된 GOTO 또는 지정된 형식입니다.

h-편집:
형식의 H 편집 설명자입니다.

Fortran 77에서 삭제된 또 다른 Fortran 95 구문 기능이 하나 있습니다.
IF 블록 외부에서 ENDIF로 분기합니다. 하지만, ftnchek 할 수 없다
프로그램 흐름을 분석하므로 이에 대한 경고를 제공하지 않습니다.

참조 : -f77, -f90, -이식성, -예쁜, 스타일, -단어 크기.

-도움
각 명령줄 옵션에 대한 간단한 설명과 함께 모든 명령줄 옵션 목록을 인쇄합니다.
기본값과 함께. 이 명령은 기능면에서 동일합니다. ``?''
주장이며, 질문이 있는 시스템의 편의를 위해 제공됩니다.
표시는 명령 해석기에서 특별한 의미를 갖습니다. 기본값 = 아니요.

도움말 목록에는 버전 번호와 패치 수준도 인쇄됩니다. ftnchek
저작권 고지.

참고: 도움말 목록에서 대괄호 안에 인쇄된 ``기본값'' 값은,
엄밀히 말하면 내장된 기본값이 아니라 이후의 현재 값입니다.
환경 옵션 및 앞에 나오는 모든 명령줄 옵션 -도움 옵션이 있습니다
처리되었습니다.

참조 : -초심자, -번역도움 목록을 가져오는 모든 설정의 옵션
키워드.

-식별자-문자=명부
식별자에 사용할 수 있는 영숫자가 아닌 문자를 정의합니다. 기본적으로,
ftnchek 달러 기호와 밑줄은 영숫자가 아닌 문자로만 허용됩니다.
식별자 이름에. 에 등장하는 캐릭터들 명부 허용되는 세트를 대체하십시오.
이전에는 영숫자가 아닌 문자가 적용되었습니다. 따라서 달러 기호 또는
밑줄이 목록에 포함되지 않으면 허용 가능한 상태를 잃습니다.
자.

이 옵션은 활성화하기 위해 제공됩니다. ftnchek 비-포함된 소스 파일을 처리하기 위해
예를 들어 특정 항목에 액세스하는 데 필요할 수 있는 표준 식별자 이름
운영 체제 서비스. 제한사항 및 확장에 대한 섹션을 참조하세요.
암시적 유형 지정에서 이러한 문자를 포함하는 식별자를 처리합니다.

사용 -noidentifer-chars 영숫자가 아닌 문자의 허용을 끕니다.
전적으로.

참조 : -source.

-포함=통로
INCLUDE 문으로 지정된 파일을 검색할 디렉터리를 지정합니다.
다른 명령줄 옵션과 달리 이 설정은 누적됩니다. 즉 만약 그렇다면
명령줄에 두 번 이상 주어지면 그렇게 지정된 모든 디렉터리는 다음과 같습니다.
주어진 순서대로 검색되는 목록에 배치됩니다. 그만큼
그 순서 ftnchek 포함할 파일 검색: 현재
예배 규칙서; 환경 변수 FTNCHEK_INCLUDE에 의해 지정된 디렉토리가 있는 경우;
임의의 디렉토리 -포함 옵션; 다음에 의해 지정된 디렉토리
환경변수 INCLUDE; 마지막으로 표준 시스템 전체 디렉토리에 있습니다.
(/ usr / include UNIX의 경우, VMS의 경우 SYS$LIBRARY, MSDOS의 경우 \include).

참조 : -f77, -source.

-내재적=명부
여부를 제어합니다. ftnchek 특정 비표준 고유 기능을 다음과 같이 인식합니다.
본질적인. 그만큼 명부 쉼표나 콜론으로 구분된 키워드로 구성됩니다. 일부
키워드는 특정 기능 그룹을 인식할지 여부를 제어하고,
키워드는 일부 비표준 내장 함수를 호출하기 위해 예상되는 구문을 제어합니다.
해당 내장 함수 집합의 인식을 켜는 키워드를 포함하거나
해당 구문을 허용합니다. 접두사가 붙은 키워드를 포함하세요. 아니 - 끄다
그 인식.

세 가지 특별한 키워드가 있습니다: 모든 모든 비표준 인식을 활성화합니다.
내장 함수(아래 나열)를 사용하며 변형이 있는 구문에 대해 둘 중 하나의 구문을 허용합니다.
없음 언급된 항목을 제외한 모든 비표준 내장 항목에 대한 인식을 해제합니다.
아래에. 사용 도움 에 대한 간략한 설명과 함께 모든 키워드 목록을 인쇄하려면
각. 만약에 명부 생략하고, -본질적 에 해당하는 -본질적=모두
-비본질적 에 해당하는 -본질적=없음.

비표준 확장을 지원하는 데 필요한 비표준 내장 함수
정밀도 데이터 유형(이중 복소수 및 쿼드 정밀도)은 항상 인식됩니다.
이중 복합 데이터 유형의 내장 기능은 다음과 같습니다.

CDABS CDSQRT DREAL ZLOG
CDCOS DCMPLX 이미지 ZSIN
CDEXP DCONJG ZABS ZSQRT
CDLOG DIMAG ZEXP ZCOS
CDSIN
쿼드 정밀도 및 쿼드 복합 유형의 내장 함수는 다음과 같습니다.

CQABS QARCOS QEXT QNINT
CQCOS QARSIN QEXTD QPROD
CQEXP 카탄 QFLOAT QREAL
CQLOG QATAN2 QIMAG QSIGN
CQSIN QCMPLX QINT QSIN
CQSQRT QCONJG QLOG QSINH
DBLEQ QCOS QLOG10 QSQRT
IQINT QCOSH QMAX1 QTAN
IQNINT QDIM QMIN1 QTANH
QABS QEXP QMOD SNGLQ
다른 비표준 내장 함수의 인식을 제어하는 ​​키워드는 다음과 같습니다.
다음과 같이 :

여분의:
다음과 같은 일반적으로 사용 가능한 비표준 내장 함수를 인식합니다(다음을 제외하고 모두
EXIT 및 LOC는 MIL-STD 1753에 정의되어 있습니다.

BTEST IBCLR IEOR ISHFTC
IBITS IOR LOC 종료
IAND IBSET ISHFT NOT

유닉스: 다음과 같은 일반적인 Unix 관련 내장 함수를 인식합니다.

GMTIME LTIME SRAND 중단
그리고 IARGC 또는 시스템
Getarg 아일랜드 랜드 시간
GETENV LSHIFT RSHIFT XOR

VM을: 다음과 같은 일반적인 VMS 관련 고유 기능을 인식합니다.

날짜 ID 날짜 초 시간

오류가 발생했습니다. 크기가 다음과 같습니다.

iargc-인수 없음:
IARGC가 인수 없이 호출될 수 있음을 지정합니다.

iargc-XNUMX인수:
IARGC가 하나의 인수로 호출될 수 있음을 지정합니다.

인수 없는 랜드:
RAND 및 IRAND가 인수 없이 호출될 수 있음을 지정합니다.

랜드원 인수:
RAND 및 IRAND가 하나의 인수로 호출될 수 있도록 지정합니다.

XNUMXD덴탈의 논쟁의 여지가 없는단일 인수 키워드는 다음과 같이 작동합니다. 옵션을 켜면
원인 ftnchek 함수 호출에 해당하는 구문을 수락하려면,
대체 구문의 가능성을 배제하지 않고. 옵션을 켜는 중
off를 사용하면 해당 구문이 허용되지 않습니다. 두 옵션이 모두 켜져 있는 경우
on at Once(기본값)이면 두 구문 중 하나가 허용됩니다. 두 옵션 모두 끄기
일단 의미가 없을 것입니다. 이러한 옵션은 다음을 인식하는 경우 아무런 효과가 없습니다.
Unix 내장 기능이 꺼졌습니다.

이 설정은 비표준 경고가 발행되는지 여부를 제어하지 않습니다.
이러한 기능에 대해. 기능이 가정되는지 여부를 제어합니다.
본질적인지 아닌지에 따라 사용법을 확인하는 방법이 결정됩니다. 기능을 수행할 때
이러한 세트 중 하나가 포함되어 있으면 해당 호출은 다음에 따라 확인됩니다.
고유 기능에 대한 규칙; 그렇지 않으면 정상적으로 확인됩니다(사용자-
작성) 외부 기능. 비표준 경고는 다음에 의해 제어됩니다.
-f77=내재적 옵션을 선택합니다.

이 설정의 기본값은 다음과 같습니다. -본질적=모두 다음
-본질적=no-vms 유닉스 버전의 경우, -intrinsic=유닉스 없음 VMS 버전의 경우
-intrinsic=no-unix,no-vms 다른 버전의 경우.

참고: 다음 버전에서는 ftnchek 2.10 이전에는 -본질적 깃발에 숫자가 걸렸다
옵션 목록 대신 인수. 글을 쓴 사용자를 위해
스크립트 호출 ftnchek 이런 방식으로 숫자 형식이 여전히 허용됩니다. 그만큼
설정의 숫자 형식은 세 자리로 구성됩니다. 일의 숫자는 다음을 선택합니다.
지원되는 내장 함수 세트입니다. 숫자 0은 Fortran 77만 선택합니다.
표준 내장 함수와 비표준 확장 정밀도를 지원하는 데 필요한 내장 함수
데이터 유형. 숫자 1은 다음과 같습니다. 여분의, 2는 다음과 같습니다. 엑스트라,유닉스
3는 추가,vms. 이 설정의 XNUMX자리 숫자는 구문을 제어합니다.
RAND 내장 함수의 백 자리 숫자는 다음의 구문을 제어합니다.
IARGC 기능. 이러한 숫자에 대해 0을 지정하면 호출이 필요하지 않습니다.
인수, 1개는 하나의 인수를 요구하고 2개는 두 가지 형식을 모두 허용합니다.

참조 : -f77.

-도서관
이 스위치는 파일에 여러 개의 하위 프로그램이 포함되어 있을 때 사용됩니다.
이들 모두는 응용 프로그램에서 사용됩니다. 보통, ftnchek 있는 경우 경고합니다.
하위 프로그램이 정의되었지만 사용되지는 않습니다. 이 스위치는 이러한 경고를 억제합니다.
기본값 = 아니요.

이 스위치는 또한 어떤 서브프로그램 호출과 COMMON 블록 선언이 수행되는지 제어합니다.
확인했습니다. 파일을 다음과 같이 읽는 경우 -도서관 플래그가 적용되면 서브프로그램이 호출합니다.
해당 파일의 루틴에 포함된 COMMON 선언은 다음 경우에만 확인됩니다.
해당 루틴은 기본 프로그램의 호출 트리에 있습니다. 반면에,
-도서관 스위치가 꺼진 다음 ftnchek 모든 루틴의 호출을 확인합니다.
다른 모든 루틴(해당 루틴이 실제로 실행될 수 있는지 여부에 관계 없음)
런타임 시 호출되며 마찬가지로 모든 COMMON 블록 선언도 비교됩니다.
협정.

이 스위치와 스위치의 차이점은 -usage=no-ext-미사용 에 대한 옵션
하위 프로그램은 후자가 루틴이 실행되고 있다는 경고만 억제한다는 것입니다.
선언했지만 사용되지 않았습니다. 그만큼 -도서관 스위치는 더 나아가 사용되지 않은 항목을 제외합니다.
모든 인수 교차 검사가 적용되는 동안 처리되는 루틴
COMMON 블록 선언도 마찬가지입니다.

(만약 파일 세트 어디에도 메인 프로그램이 없다면 ftnchek 읽었다, 그래서
그러면 호출 트리가 없다는 것입니다. ftnchek 라이브러리가 아닌 루틴을 찾습니다.
다른 루틴에 의해 호출되지 않으며 이를 기본 루틴의 대체물로 사용합니다.
호출 트리를 구성하고 무엇을 확인할지 결정하는 프로그램입니다. 그런 탑이 없다면-
수준의 비라이브러리 루틴이 발견된 다음 모든 모듈 간 호출 및 모든 COMMON
선언이 확인됩니다.)

참조 : -인수, -콜트리, -흔한, -통근자, -용법.

-명부
Fortran 프로그램 목록이 다음 줄로 인쇄되도록 지정합니다.
숫자. 만약에 ftnchek 오류를 감지하면 오류 메시지가 프로그램 라인을 따릅니다.
오류 위치를 지정하는 캐럿( ^ )을 사용합니다. 소스 목록이 없는 경우
요청, ftnchek 오류가 포함된 줄은 계속 인쇄됩니다.
사용자는 오류가 발생한 위치를 확인합니다. 기본값 = 아니요.

참조 : -산출, \fB-심탭, fB-조용함.

-madecls=명부
변수 선언, 공통 블록 및 선언이 포함된 깔끔한 형식의 파일을 준비합니다.
소스 코드에 병합할 수 있는 namelist 목록입니다. 선언은 다음과 같습니다
소스 코드와 동일한 이름의 파일에 저장되지만 확장자는 다음과 같습니다.
로 변경 .dcl. 파일에 선언이 기록되지 않으면 삭제됩니다.
빈 파일의 혼란을 줄입니다.

입력이 명명된 파일 대신 표준 입력에서 오는 경우 선언은 다음과 같습니다.
표준 출력으로 작성되었습니다.

변수는 각 선언 클래스 내에서 알파벳 순서로 선언되며,
나중에 배열에서 사용할 수 있으므로 정수 변수를 먼저 사용하는 유형
치수.

PARAMETER 문은 알파벳 순서 규칙의 예외입니다.
Fortran 77 Standard에서는 매개변수 값을 정의하는 표현식이 다음을 참조해야 합니다.
상수 및 이미 정의된 매개변수 이름에만 해당됩니다. 이는 원본을 강제로
선언 파일에 보존될 해당 명령문의 소스 파일 순서.

명시적 선언 모든 변수는 좋은 현대 프로그래밍으로 간주됩니다.
관행. 선언되지 않은 변수, 철자가 틀린 변수를 거부하기 위해 컴파일러 옵션을 사용함으로써
변수 이름(또는 열 72를 지나 확장되는 이름)은 컴파일 타임에 포착될 수 있습니다.
명시적 선언은 부동 소수점 정밀도 변경을 크게 촉진합니다.
와 같은 필터로 dtoq(1L), dtos(1L), fd2s(1L), fs2d(1L), qtod(1L) 및
멈췄다(1L). 이 프로그램은 명시적 부동 소수점 유형을 변경할 수 있습니다.
유형 선언, 내장 함수 및 상수가 있지만 그렇지 않기 때문에
Fortran 소스 코드에 대한 엄격한 어휘 및 문법 분석을 수행합니다.
선언되지 않은 변수에 대해 수정된 유형 선언을 제공할 수 없습니다. 기본
설정 = 0, 켜기 = 1.

선언 파일 형식에 대한 다양한 옵션은 다음에 의해 제어됩니다. 명부,
쉼표나 콜론으로 구분된 키워드로 구성됩니다. 스페셜 XNUMX가지가 있어요
키워드 : 모든 모든 옵션을 켜려면 없음 모두 끄고 도움
각 키워드에 대한 간략한 설명과 함께 모든 키워드 목록을 인쇄합니다. 만약에 명부 is
생략, -madecls 에 해당하는 -makedcls=선언 (즉,
기본 옵션을 사용하는 선언 파일) 및 -nomadecls 에 해당하는
-makedcls=없음.

이전 버전과의 호환성을 위해 ftnchek, 이 설정의 숫자 형식
또한 허용됩니다: 명부 숫자의 합인 숫자로 대체됩니다.
다음 목록의 키워드 옆 괄호 안에 표시됩니다. 경고 키워드
그 의미는 다음과 같습니다.

선언 (1) :
선언 파일을 작성합니다. (이는 다른 옵션에 의해 암시되며,
다른 옵션이 있으면 생략 가능합니다.)

선언되지 않은 전용 (2) :
기본적으로 모든 변수는 선언 파일에 포함됩니다. 이것으로
옵션, 포함만 선언되지 않은 변수. 이 설정은 다음과 같은 경우에 유용합니다.
Fortran 소스 파일이 모두 포함되어 있으므로 선언되지 않은 변수를 확인하고 싶습니다.
올바르게 선언된 변수는 다음과 같은 결과를 가져오지 않습니다. .dcl 파일. 이것으로
옵션을 선택하면 공통 블록 및 이름 목록 목록이 포함되지 않습니다.
선언 파일은 그 특성상 선언을 취소할 수 없기 때문입니다.

팩트 (4) :
선언은 일반적으로 공통적으로 깔끔하게 정렬되도록 예쁘게 인쇄됩니다.
Extended PFORT Verifier가 출력한 선언 파일에서와 같이 열,
포트(1L). 이 옵션 값은 대신 열 없이 압축된 출력을 선택합니다.
조정.

사용 계속 라인 (8) :
허용되는 경우 연속 행이 사용됩니다. 기본값은
각 줄에서 새로운 선언을 시작합니다. 이 옵션은 사용하기에 적합합니다
와 함께 팩트.

키워드-소문자 (16) :
기본 대문자 대신 소문자로 Fortran 키워드를 출력합니다.

변수 및 상수 소문자 (32) :
기본값 대신 소문자로 변수와 상수를 출력합니다.
대문자. 문자열 상수는 이 옵션의 영향을 받지 않습니다.

제외-sftran3 (64) :
SFTRAN3에서 생성된 내부 정수 변수의 선언을 생략합니다.
전처리기, xsf3(1L), 구조화된 Fortran 번역의 일부로
일반 포트란에 대한 진술. 이러한 변수에는 다음과 같은 XNUMX자리 이름이 있습니다.
형태 NPRddd, NXdddd, N2ddddN3dddd어디로 d 십진수입니다.
SFTRAN3 소스 코드에서는 보이지 않으며 다음과 같은 경우 변경됩니다.
SFTRAN3 코드가 수정되었으므로 이러한 변수를 명시적으로 선언해서는 안 됩니다.
대신 기본 Fortran INTEGER 데이터 유형 기반을 가정해야 합니다.
그들의 첫 편지에, N.

별표 주석 (128) :
주석 문자로 별표를 사용하십시오. 그렇지 않으면 기본값은 'C'입니다.

주석 문자 소문자 (256) :
주석 문자로 'C' 또는 '*' 대신 'c'를 사용하십시오.

배열 차원 억제 (512) :
생성된 선언에서 배열의 크기 측정을 억제합니다. 이 옵션
유형 선언이 없는 코드와 함께 사용하여 선언을 허용합니다.
코드에 변경 없이 파일을 삽입할 수 있습니다. 코드에는
차원 문은 이미 유형의 배열 변수에 대한 차원을 지정합니다.
선언 파일의 설명이 중복됩니다. 이 옵션을 사용해야 합니다
옵션 2와 결합해서만 = 선언되지 않은 전용
유형 설명에서 차원이 지정된 배열은 해당 배열을 잃게 됩니다.
치수 측정.

자유 형식 (1024) :
무료 소스 형식으로 선언을 생성합니다. 이 모드는 다음과 같은 경우 자동으로 사용됩니다.
입력 소스는 자유 형식입니다. 선언을 생성하려면 이 옵션을 사용하십시오.
입력이 고정된 형식인 경우에도 자유 형식입니다. 자유 형식 선언은
2열 대신 6열만 들여쓰기한 경우 느낌표를 주석으로 사용하세요.
문자를 입력하고 끝 부분에 앰퍼샌드로 연속 행을 표시합니다.
계속되는 라인.

선언 파일에는 시작과 끝을 표시하는 고유한 주석이 포함되어 있습니다.
텍스트 편집기 매크로 사용을 용이하게 하기 위해 각 프로그램 단위에 대한 선언
선언을 소스 코드에 다시 병합합니다.

XNUMXD덴탈의 ftnchek 배포에는 프로그램이 포함됩니다. dcl2inc, 선언을 처리합니다.
모든 COMMON 블록의 선언을 포함하는 파일을 형식으로 생성하는 파일
INCLUDE 파일로 사용하기에 적합합니다. 참조 dcl2inc(1L) 자세한 내용은 매뉴얼 페이지
그것의 사용.

참조 : -mkhtml.

-mkhtml=명부
소스에서 HTML 문서를 생성합니다. ftnchek에서 개별 HTML 파일을 생성합니다.
분석 및 코드 주석. 바로 앞과 뒤의 모든 댓글
함수 또는 서브루틴 정의는 HTML 파일에 캡처됩니다. 다시 포맷하지 않음
소스 주석은 FORTRAN 주석 문자 제거 외에 수행됩니다.
또한 HTML 파일에는 선언된 지역 변수, 공통 블록이 나열되어 있습니다.
사용된 변수, 호출된 함수 및 서브루틴, I/O 장치 사용 및 기타
각 하위 프로그램에 대한 정보입니다. 일반적으로 다음을 지정하고 싶을 수도 있습니다.
-콜=트리 루트 HTML 파일 CallTree.html을 생성합니다. (아마도 이 파일은
index.html로 이름 지정)

HTML 파일 형식에 대한 다양한 옵션은 명부, 그
쉼표나 콜론으로 구분된 키워드로 구성됩니다. 스페셜 XNUMX가지가 있어요
키워드 : 모든 모든 옵션을 켜려면 없음 모두 끄고 도움
각 키워드에 대한 간략한 설명과 함께 모든 키워드 목록을 인쇄합니다. 만약에 명부 is
생략, -mkhtml 에 해당하는 -mkhtml=문서 (즉, HTML 문서를 생성합니다.
기본 옵션을 사용하는 파일) 및 -nomkhtmls 에 해당하는 -mkhtml=없음.

단순화를 위해 옵션은 -mkhtml 에 대한 것과 동일합니다
-madecls 해당되지 않는 경우를 제외하고. 마찬가지로 숫자 형태의
이 설정은 괄호 안에 있는 숫자의 합으로 구성되어 사용될 수 있습니다.
아래 목록. 경고 키워드와 그 의미는 다음과 같습니다.

서류 (1) :
HTML 문서를 만듭니다. (이는 다른 옵션에 의해 암시되며,
다른 옵션이 있으면 생략 가능합니다.)

팩트 (4) :
선언은 일반적으로 공통적으로 깔끔하게 정렬되도록 예쁘게 인쇄됩니다.
열. 이 옵션 값은 대신 열 없이 압축된 출력을 선택합니다.
조정.

사용 계속 라인 (8) :
새 선언을 시작하는 대신 연속 줄이 사용됩니다.
각 라인에. 이 옵션은 함께 사용하기에 적합합니다. 팩트.

키워드-소문자 (16) :
기본 대문자 대신 소문자로 Fortran 키워드를 출력합니다.

변수 및 상수 소문자 (32) :
기본값 대신 소문자로 변수와 상수를 출력합니다.
대문자. 문자열 상수는 이 옵션의 영향을 받지 않습니다.

제외-sftran3 (64) :
SFTRAN3에서 생성된 내부 정수 변수의 선언을 생략합니다.
전처리기, xsf3(1L). (보다 -madecls 토론을 위해.)

배열 차원 억제 (512) :
생성된 선언에서 배열의 크기 측정을 억제합니다. 이것은
일반적으로 바람직하지 않지만 어떤 이유로든 원하지 않는 경우 사용할 수 있습니다.
HTML에 표시할 배열 크기입니다.

자유 형식 (1024) :
무료 소스 형식으로 변수 선언을 생성합니다. 이 모드는
입력 소스가 자유 형식인 경우 자동으로 사용됩니다. 이는 주로 다음에 영향을 미칩니다.
사용되는 경우 연속선의 형태입니다.

참조 : -콜트리, -madecls.

-초심자
이 플래그는 초보자에게 더 유용한 출력을 제공하기 위한 것입니다. 그것은 두 가지가 있습니다
효과 :

(a) 사용되었지만 사용되지 않은 기능에 대한 추가 메시지를 제공합니다.
어디에나 정의된 배열은 사용자가 선언하는 것을 잊어버린 배열일 수 있습니다.
DIMENSION 문(배열 참조의 구문은
함수 참조).

(b) 오류 메시지 및 경고의 형식을 수정합니다. 깃발이 뒤집힌 경우
떨어져 -비초심자, 이러한 메시지는 UNIX와 더 유사한 스타일로 인쇄됩니다.
보풀.

기본값 = 예.

-출력=파일 이름
이 설정은 쉽게 허용하지 않는 시스템에서 편의를 위해 제공됩니다.
프로그램의 출력 리디렉션. 이 설정이 주어지면 출력은
일반적으로 화면에 나타나는 메시지가 명명된 파일로 대신 전송됩니다. 메모,
그러나 그 운영상의 오류는 ftnchek 자체(예: 공간이 부족하거나 사용할 수 없음)
열린 파일)은 여전히 ​​화면으로 전송됩니다. 파일 이름의 확장자는
선택사항이며, 확장자가 지정되지 않은 경우 확장자는 .lis 사용하게 될 것이다.

-포인터 크기=NUM
``크레이 포인터'' 변수의 크기를 지정합니다. NUM 바이트. 기본값 = 회전-
on = 4바이트.

포인터 크기는 포인터와 관련된 정밀도 불일치 경고를 알리는 데 사용됩니다.
변수, 예를 들어 할당에서 포인터에 값이 할당된 경우
루틴이거나 서브프로그램 매개변수로 전달됩니다.

참조 : -f77, -이식성, -잘림, -단어 크기.

-이식성=명부
ftnchek 휴대용이 아닌 다양한 용도에 대해 경고를 표시합니다. 예를 들면 다음과 같습니다
주석이나 문자열 내부를 제외한 탭 사용, Hollerith 사용
상수, 다양한 데이터 유형의 변수 동등성. 이 옵션
Fortran 77 표준에 대해 지원되는 확장에 대한 경고를 생성하지 않습니다.
또한 이식성 문제를 일으킬 수 있습니다. 그것들을 잡으려면 -f77 환경.
기본적으로 모든 경고는 꺼져 있습니다.

이 설정은 이식 가능성에 대한 경고를 세부적으로 제어합니다.
문제. 그만큼 명부 쉼표나 콜론으로 구분된 키워드로 구성됩니다. 있다
세 가지 특별한 키워드: 모든 이식할 수 없는 사용법에 대한 모든 경고를 켜려면
없음 모두 끄고 도움 모든 키워드 목록을 인쇄하려면
각각에 대한 간단한 설명. 만약에 명부 생략하고, -이식성 에 해당하는
-이동성=모두-이식성 없음 에 해당하는 -이식성=없음. 그만큼
경고 키워드와 그 의미는 다음과 같습니다.

백 슬래시:
문자열의 백슬래시 문자입니다. 일부 컴파일러는 백슬래시를 다음과 같이 처리하므로
이스케이프 문자가 있으면 사용하더라도 문제가 발생할 수 있습니다.
표준에 맞는 방식으로.

공통 정렬:
COMMON 블록 변수는 저장 크기의 내림차순이 아닙니다. 일부
컴파일러에는 저장소 정렬 요구 사항 때문에 이 순서가 필요합니다.

홀러리스:
Hollerith 상수(FORMAT 사양 외). 홀러리스
데이터 유형은 Fortran 77에서 삭제된 Fortran IV의 기능입니다.
기준. 이는 문자 데이터 유형으로 대체됩니다. 홀러리스 저장
숫자 또는 논리 데이터 유형의 변수에 있는 데이터는 다음과 같은 이유로 이식할 수 없습니다.
단어 크기가 다릅니다.

긴 문자열:
255자를 초과하는 문자열 상수, 변수 또는 표현식입니다.

혼합 등가:
서로 다른 데이터 유형의 변수가 동일합니다.

혼합 크기:
명시적으로 제공된 변수와 함께 사용되는 기본 정밀도로 선언된 변수
정밀도, 표현식, 할당 또는 인수로. 예를 들어,
REAL*8로 선언된 변수는 DOUBLE PRECISION과 동일하게 처리됩니다.

실제:
정수가 아닌 DO 루프 인덱스 및 경계. 이로 인해 프로그램 결과가 다음과 같이 나타날 수 있습니다.
사용되는 특정 컴퓨터의 하드웨어 특성에 따라 다릅니다.

매개변수 암시적 유형:
할당된 값의 데이터 유형에 따라 매개변수를 암시적으로 입력하는 경우
기본 유형과 다릅니다. 이 경고는 암시적인 경우에만 발생할 수 있습니다.
에 의해 매개변수 입력이 켜졌습니다. -source=param-암시적 유형
옵션이 없거나 PARAMETER 문이 비표준 형식인 경우
괄호. 이 옵션이 켜져 있으면 암시적인 모든 인스턴스가
매개변수 유형 지정이 발생하고 암시적 유형이 매개변수 유형과 다른 경우
매개변수 이름의 첫 글자를 기준으로 기본 유형에 대해 경고합니다.
에 대한. 암시적 매개변수 유형은 명령문의 의미 체계를 변경할 수 있습니다.
매개변수가 사용되는 경우 이식성 문제가 발생합니다.

: 소스 코드의 탭. 탭은 서로 다르게 해석됩니다.
컴파일러. 이 경고는 파일 끝에서 한 번만 제공됩니다.

참조 : -f77, -f90, -f95, -예쁜, 스타일, -단어 크기.

-예쁘다=명부
소스 코드의 모양과 관련된 특정 메시지를 제어합니다. 이들은 경고한다
프로그램을 읽기 어렵게 만들거나 독자를 속일 수 있는 것들에 대해.
기본적으로 모든 경고는 켜져 있습니다.

이 설정은 모양에 대한 경고에 대한 자세한 제어를 제공합니다. 그만큼
명부 쉼표나 콜론으로 구분된 키워드로 구성됩니다. 모든 경고가 켜져 있으므로
기본적으로 다음과 같은 접두사가 붙은 키워드를 포함합니다. 아니 - 특정 경고를 해제합니다.
세 가지 특별한 키워드가 있습니다: 모든 오도에 대한 모든 경고를 켜려면
형세, 없음 모두 끄고 도움 모든 목록을 인쇄하려면
각 키워드에 대한 간략한 설명이 포함된 키워드입니다. 만약에 명부 생략하고, -예쁜 is
에 해당 -예쁘다=모두-아니예쁘다 에 해당하는 -예쁘다=없음. 그만큼
경고 키워드와 그 의미는 다음과 같습니다.

대체 반환:
RETURN 문에는 다음과 같은 대체 반환 지점을 지정하는 상수가 있습니다.
0과 레이블인 더미 인수 수 사이에 있지 않습니다. 이것은
합법적이며 대체 반환이 없는 RETURN과 동일한 효과가 있습니다.
표현식이지만 프로그래머가 대체 표현식을 사용하려고 했음을 나타냅니다.
제공되지 않은 반품 라벨입니다.

임베디드 공간:
변수 이름이나 **와 같은 다중 문자 연산자에 공백이 포함됩니다.

계속:
주석 줄 다음의 연속 표시입니다.

긴 선:
너비가 72열 이상인 행(주석 제외)(일반적으로 72열 이상은
컴파일러에서 무시됨).

누락된 공간:
변수와 선행 키워드 사이에 공백이 부족합니다.

다중공통:
여러 문에서 선언된 COMMON 블록입니다. 다음과 같은 경우에는 경고가 제공되지 않습니다.
명령문은 주석 행을 제외하고 연속적입니다.

다중 이름 목록:
여러 문에서 NAMELIST가 선언되었습니다. 다음과 같은 경우에는 경고가 제공되지 않습니다.
명령문은 주석 행을 제외하고 연속적입니다.

괄호:
변수 자체를 괄호로 묶습니다. 하위 프로그램 인수로서 다음은
인수를 하위 프로그램에서 수정할 수 없는 표현식으로 만듭니다.

무료 소스 형식에서는 추가 공간과 누락된 공간이 금지됩니다.
Fortran 90 Standard는 단순한 스타일 위반이 아닙니다. 이 경우 경고
구문 오류 메시지로 대체되며 다음을 사용해야만 끌 수 있습니다.
- 체크 없음.

참조 : -f77, -이식성, 스타일.

-프로젝트=명부
ftnchek 이 동안 입력되는 각 소스 파일에서 프로젝트 파일을 생성합니다.
옵션이 켜져 있습니다. 프로젝트 파일에는 입력과 동일한 이름이 지정됩니다.
파일이지만 확장자는 .f or .을위한 ~로 교체되다 .prj. (입력이 다음에서 온 경우
표준 입력, 프로젝트 파일의 이름은 ftnchek.prj.) 기본값 = 없음.

XNUMXD덴탈의 명부 쉼표나 콜론으로 구분된 키워드로 구성됩니다. 세 가지가 있습니다
특별한 키워드: 모든 모든 옵션을 켜려면 없음 모두 끄고
도움 각 키워드에 대한 간략한 설명과 함께 모든 키워드 목록을 인쇄합니다. 만약에
명부 생략하고, -계획 에 해당하는 -프로젝트=모두-프로젝트 없음 is
에 해당 -프로젝트=없음. 그 의미를 지닌 키워드는 다음과 같습니다.

만들:
프로젝트 파일을 생성합니다. 기본값은 프로젝트 파일을 생성하지 않는 것입니다. 만약에
이 옵션이 켜져 있지 않으면 다른 옵션은 적용되지 않습니다.

트림 콜:
서브프로그램에 관해 프로젝트 파일에 저장된 정보의 양을 다듬습니다.
선언과 호출. 이것이 기본값입니다. 이 옵션은 다음에서만 해제하세요.
드문 상황. (아래 설명 참조) 트리밍의 양은 다양합니다.
에 따라 -도서관 깃발. 해당 플래그가 다음과 같은 경우 추가 정보가 잘립니다.
켜져있다.

트림 공통:
프로젝트 파일에 저장된 공통 블록 선언 수를 자릅니다.
이것이 기본값입니다. 드문 경우에만 이 옵션을 끄십시오. (보다
아래에서 설명합니다.) 이 옵션은 다음과 같은 경우에는 효과가 없습니다. -도서관 깃발이 바뀌었다
끄기: 라이브러리 모드가 아닌 경우 공통 블록 선언을 자르지 않습니다.
이 옵션에 관계없이 수행됩니다.

프로젝트 파일에는 소스 파일의 정보 요약이 포함되어 있습니다.
다른 파일의 FUNCTION, SUBROUTINE 및 COMMON 사용법 간의 일치 여부를 확인합니다.
이는 증분 검사를 허용하므로 대규모 세트가 있을 때마다 시간을 절약할 수 있습니다.
공유 서브루틴을 포함하는 파일로, 대부분은 거의 변경되지 않습니다. 당신은 실행할 수 있습니다
ftnchek 각 파일에 한 번씩 -계획 플래그가 설정되어 프로젝트 파일이 생성됩니다.
일반적으로 다음도 설정합니다. -도서관-noextern 현재 플래그는 다음과 같습니다.
다른 파일과의 일관성과 관련된 메시지를 억제합니다. 오류 메시지만
이때 각 파일에 관련된 내용만 인쇄됩니다. 그 후 실행
ftnchek 일관성을 확인하기 위해 모든 프로젝트 파일에 이러한 플래그를 함께 사용하지 않음
다른 파일들 사이에서. 개별 파일 내부의 모든 메시지는 이제
생략한다. 파일이 변경된 경우에만 새 프로젝트 파일을 만들어야 합니다.
그것을 위해.

당연히, -계획 옵션이 켜져 있고, ftnchek 프로젝트를 읽지 않습니다
파일을 입력으로 사용합니다.

일반적으로 프로젝트를 생성하려는 경우 트림 옵션을 켜두어야 합니다.
향후 입력을 위한 파일 ftnchek. 트리밍은 기본적으로 켜져 있기 때문에 이는
그것은 단순히 명령을 내리는 것뿐이다. -계획 옵션 목록이 없는 것이 권장됩니다.
방법. 트림 옵션은 원하시는 분들의 편의를 위해서만 제공됩니다.
프로그램 확인 이외의 목적으로 프로젝트 파일을 사용하는 행위
ftnchek. 의도한 목적으로 프로젝트 파일을 사용하려면 트림 옵션을 설정해야 합니다.
꺼지지 마세요.

프로젝트 파일에는 파일 간의 일치 여부를 확인하는 데 필요한 정보만 포함됩니다.
이는 전체 프로그램의 모든 모듈이 프로젝트 파일에 사용되지 않는다는 의미입니다.
단일 파일에 포함되어 있습니다.

더 자세한 내용은 프로젝트 파일 사용 섹션에서 설명합니다.

-순수한
함수가 "순수"하다고 가정합니다.
COMMON 블록의 해당 인수 또는 변수. 이 플래그가 적용되면
ftnchek 실제 인수의 설정 및 사용 상태에 대한 결정을 기반으로 합니다.
함수에 전달된 인수는 변경되지 않는다는 가정하에. 그럴 것이다
또한 함수가 인수나 인수 중 하나를 수정하는 것으로 발견되면 경고를 발행합니다.
공통 변수. 기본값 = 예.

이 플래그가 꺼져 있으면 함수에 전달된 실제 인수가 처리됩니다.
서브루틴에 전달된 실제 인수와 동일한 방식입니다. 이는 다음을 의미합니다. ftnchek
함수에 의해 인수가 수정될 수 있다고 가정합니다. 경고가 발생하지 않습니다.
함수에 부작용이 있는 것으로 밝혀진 경우 제공됩니다. 검사가 더 까다롭기 때문에
함수가 순수하다고 가정하면 가능합니다. 다음 경우에만 이 플래그를 꺼야 합니다.
귀하의 프로그램은 실제로 부작용이 있는 기능을 사용합니다.

-조용한
이 옵션은 정상 작동과 관련된 출력량을 줄여서
오류 메시지가 더 분명해졌습니다. 이 옵션은 사용자의 편의를 위해 제공됩니다.
대규모 파일 모음을 확인하는 사용자. 제거된 출력에는 다음이 포함됩니다.
프로젝트 파일의 이름 및 구문 오류가 발견되지 않았음을 보고하는 메시지.
또한 명확성을 위해 일반적으로 포함되는 일부 빈 줄을 제거합니다. (일부
이 출력은 다음에 의해 다시 켜집니다. -명부-심탭 옵션.) 기본값 = 아니요.

참고: 두 단어의 차이점을 기억하는 방법 -조용한-짧은 그는
-조용한 경고 관련 정보를 억제하지 않는 반면 -짧은 않습니다.

참조 : -짧은.

-참고
who-calls-who 테이블이 인쇄되도록 지정합니다. 이 표에는 각 하위 프로그램이 나열되어 있습니다.
호출하는 루틴 목록이 뒤따릅니다. 이 스위치는 다음과 같습니다.
-콜트리=참조. 기본값 = 아니요.

참조 목록에는 사용되지 않는 라이브러리 모듈에서 호출되는 루틴이 생략되어 있습니다. 따라서 그것은
호출 트리 형식과 동일한 정보, 즉 계층 구조를 포함합니다.
하위 프로그램이 호출되었지만 다른 방식으로 인쇄되었습니다. 이것은 너비 우선을 인쇄합니다.
호출 트리를 순회하는 반면 -콜트리=트리 깊이 우선 인쇄
순회.

참조 : -콜트리, -교차 참조, -도서관, -종류, -심탭, -vcg.

-자원
사용된 리소스의 양을 인쇄합니다. ftnchek 프로그램을 처리하는 중. 이것
목록은 프로그램의 규모와 복잡성을 분석하는 데 유용할 수 있습니다. 할 수 있습니다
또한 더 큰 크기를 선택하는 데 도움이 됩니다. ftnchek의 내부 테이블도 있는 경우
특정 프로그램을 분석하기에는 작습니다. 기본값 = 아니요.

이 목록에서 "청크 크기"라는 용어는 메모리 블록의 크기입니다.
해당 항목을 저장하기 위해 할당된 것이 아니라 하나의 항목 크기 단위로 할당됩니다.
반드시 바이트 단위입니다. 처음에 할당된 공간이 가득 차면 더 많은 메모리가
이 크기의 청크로 할당됩니다. 다음은 아이템에 대한 설명입니다.
인쇄 :

출처 라인 처리됨:
명령문 라인과 별도의 합계가 포함된 총 코드 라인 수
코멘트 라인. 주석 행에는 열 1에 'C' 또는 '*'가 있는 행도 포함됩니다.
빈 줄과 인라인 주석만 포함된 줄로 표시됩니다. 명세서 라인
일부 뒤에 인라인 주석이 있는 줄을 포함하여 다른 모든 줄입니다.
암호. 연속 행은 별도의 행으로 계산됩니다. 포함된 줄
파일은 파일이 포함될 때마다 계산됩니다.

금액 실행 파일 진술 :
사양, 데이터, 명령문을 제외한 프로그램의 명령문 수 -
함수, FORMAT, ENTRY 및 END 문.

금액 번호 of 모듈 :
모듈은 주 프로그램, 서브루틴,
기능, 블록 데이터 단위. 이 개수는
참조된 모듈이 아닌 소스입니다. 명령문 함수는 포함되지 않습니다. ㅏ
여러 진입점이 있는 서브프로그램은 한 번만 계산됩니다.

금액 성명서 라벨 한정된
명세서에 부착된 라벨 수(종종 명세서 번호라고 함) 그만큼
전체 프로그램의 총 라벨 개수와 최대 라벨 개수가 제공됩니다.
단일 하위 프로그램의 번호입니다.

Max 식별자 name 문자:
식별자 이름을 저장하는 데 사용되는 문자 수입니다. 식별자는
변수, 서브프로그램 또는 공통 블록 이름. 로컬 이름은 로컬의 이름입니다.
하위 프로그램의 변수, 반면 전역 이름은 하위 프로그램 및 공통을 나타냅니다.
블록 이름, 더미 인수 이름 및 공통 변수 이름. 실제
인수 텍스트(각 인수당 최대 15자)도 여기에 포함됩니다.
로컬 이름에 사용된 공간은 각 모듈이 끝날 때 복구되지 않으므로
이 숫자는 전역 공간과 마찬가지로 전체 프로그램이 분석될 때까지 증가합니다.
불행하게도 이 수치에는 두 번 이상 저장된 일부 텍스트가 포함될 수 있습니다.
많은 경우 중복을 방지하는 경험적 방법이 사용됩니다.

Max 토큰 본문 문자:
토큰은 해당 레벨 위의 FORTRAN 언어에서 가장 작은 구문 단위입니다.
개별 캐릭터의. 예를 들어 토큰은 변수 이름,
숫자 상수, 인용된 텍스트 문자열 또는 구두점 문자. 토큰
모듈이 처리되는 동안 텍스트가 저장됩니다. 기술적인 이유로,
단일 문자 토큰은 이 합계에 포함되지 않습니다. 그렇지 않은 품목
심볼 테이블에 표현된 내용이 중복될 수 있습니다. 토큰 텍스트를 위한 공간은 다음과 같습니다.
각 모듈이 끝날 때 복구되므로 이 수치는
어느 하나의 모듈.

Max 지방의 기호 :
이것은 모든 모듈에 대한 로컬 기호 테이블에서 가장 많은 수의 항목입니다.
로컬 기호 테이블 항목에는 모든 변수와 매개변수, 공통 블록이 포함됩니다.
이름, 명령문 함수, 외부 서브프로그램 및 내장 함수
모듈에서 참조됩니다. 리터럴 상수는 지역 기호에 저장되지 않습니다.
테이블.

Max 글로벌 기호 :
이것은 전역 기호 테이블의 끝에 있는 항목 수입니다.
처리. 전역 기호 테이블 항목에는 외부 서브프로그램 및 공통이 포함됩니다.
블록 이름. 내장 함수 및 문 함수는 포함되지 않습니다.

Max 번호 of 토큰 목록:
토큰 목록은 실제 또는 더미 인수를 나타내는 일련의 토큰입니다.
서브프로그램 목록, 공통 블록이나 이름 목록의 변수 목록.
따라서 이 숫자는 COMMON, CALL, NAMELIST 및
하나의 모듈에 대한 ENTRY 문 및 함수 호출. 공간은
각 모듈이 끝날 때 복구됩니다.

Max 토큰 목록/트리 우주:
이는 모든 토큰 목록과 토큰 트리에서 가장 많은 토큰 수입니다.
어느 하나의 모듈. 표현식을 분석하면 토큰 트리가 형성됩니다.
피연산자는 트리의 리프이고 연산자는 노드입니다. 그러므로 이
숫자는 개별 모듈의 최대 복잡성을 측정한 것입니다. 을 위한
예를 들어 긴 산술 표현식이 많은 모듈은 높은
숫자. 위에서 설명한 토큰 텍스트와 달리 토큰 개수는
변수 이름이나 리터럴 상수의 길이와 무관합니다.
표현.

번호 of 서브프로그램 호출:
모든 모듈에 대한 CALL 문 수와 함수 수의 합계입니다.
호출(내장 함수 및 명령문 함수 제외)

번호 of 공통의 블록 감소:
이는 공통 블록 선언 수의 모든 모듈에 대한 합계입니다.
즉, 다른 모듈에 있는 블록의 각 선언이 계산됩니다.
갈라져. (표준에서는 블록 내에서 블록을 여러 번 선언하는 것을 허용합니다.
같은 모듈; 이것들은 하나의 선언으로 계산됩니다.
하나의 긴 선언과 동일합니다.)

번호 of 정렬 어둑한 & 내 돈 포인트:
이는 배열 차원 및 매개변수 수의 모든 모듈에 대한 합계입니다.
사용하기 위해 저장된 정의 텍스트 문자열 -madecls 옵션. 길이
텍스트 문자열은 계산되지 않습니다. 다차원 배열의 각 차원은
별도로 계산됩니다.

이 숫자는 프로젝트 파일이 대신 사용될 때 분명히 동일하지 않습니다.
원본 소스 코드. 글로벌 엔터티의 숫자도 다를 수 있지만,
프로젝트 파일에서 일부 중복 정보가 제거되었기 때문입니다.

-여섯자
의 목표 중 하나 ftnchek 프로그램은 사용자가 이식 가능한 Fortran을 작성하도록 돕는 것입니다.
프로그램들. 이식 불가능의 잠재적 원인 중 하나는 다음과 같은 변수 이름을 사용하는 것입니다.
XNUMX자보다 깁니다. 일부 컴파일러는 추가 문자를 무시합니다.
이 동작은 잠재적으로 두 가지 다른 변수로 간주될 수 있습니다.
똑같다. 예를 들어 AVERAGECOST 및 AVERAGEPRICE라는 변수는 동일합니다.
처음 XNUMX자에서. 그러한 충돌 가능성을 파악하려면 다음을 사용하십시오.
이 깃발. 기본값 = 아니요.

사용 -f77=긴 이름 나열하고 싶다면 모든 XNUMX보다 긴 변수
문자는 처음 XNUMX개에서 동일한 쌍뿐만 아니라 문자입니다.

참조 : -f77, -이식성.

-종류
프로그램에 사용되는 모든 모듈의 정렬된 목록이 인쇄되도록 지정합니다. 이것
목록은 ``전제 조건'' 순서로 되어 있습니다. 즉, 각 모듈은 모든 모듈이 완료된 후에만 인쇄됩니다.
호출되는 모듈이 인쇄되었습니다. 이것은 또한
호출 트리의 '위상적 정렬''입니다. 각 모듈은 한 번만 나열됩니다. 루틴
기본 프로그램의 호출 트리에 없는 항목은 생략됩니다. 어떤 것이 있다면
호출 그래프의 주기(표준 Fortran에서는 불법)가 감지되고
진단됨. 기본값 = 아니요.

참조 : -콜트리, -교차 참조, -참고, -심탭, -vcg.

-소스=명부
이 설정은 Fortran 소스 코드 형식에 대한 특정 옵션을 제어합니다.
XNUMXD덴탈의 명부 쉼표나 콜론으로 구분된 키워드로 구성됩니다. 세 가지가 있습니다
특별한 키워드: 모든 모든 옵션을 켜려면 없음 모두 끄고
도움 각 키워드에 대한 간략한 설명과 함께 모든 키워드 목록을 인쇄합니다. 만약에
명부 생략하고, -source 에 해당하는 -출처=모두-소스 없음 동등하다
-소스=없음.

이전 버전과의 호환성을 위해 ftnchek, 이 설정의 숫자 형식
또한 허용됩니다: 명부 숫자의 합인 숫자로 대체됩니다.
다음 목록의 키워드 옆 괄호 안에 표시됩니다. (그만큼 고정비어 있는
옵션에는 숫자 값이 없습니다.) 의미가 있는 경고 키워드는 다음과 같습니다.
다음과 같이 :

고정:
소스를 고정된 형식(예: 지원되는 확장명 포함)으로 해석합니다.
댓글에는 느낌표 표시). 명세서는 7~72열에 있어야 합니다.
(만약 -열 이를 변경하기 위해 설정이 사용됨), 공백은
중요한 외부 문자 컨텍스트(그러나 경고 -예쁜
옵션). 소스 파일 확장자가 아닌 경우 이는 기본 모드입니다. .f90
or .F90. 이 옵션은 다음과 함께 제공될 수 없습니다. -출처=무료.

비어 있는: 소스를 자유 형식으로 해석합니다. 문은 열 1의 어느 위치에나 있을 수 있습니다.
132까지의 경우 주석은 느낌표로만 시작할 수 있으며 공백은
식별자와 키워드 사이와 같은 일부 위치에 필요합니다. 이것은
소스 파일 확장자가 다음과 같은 경우 기본 모드 .f90 or .F90. 이 옵션
와 함께 제공할 수 없습니다. -출처=고정 or -소스=dec-탭

XNUMX월 탭 (1) :
DEC 스타일의 탭 형식 소스를 수락합니다. 초기 탭으로 시작하는 줄
탭 뒤의 문자가 없으면 새 명령문 줄로 처리됩니다.
XNUMX이 아닌 숫자. 이 경우 연속 행으로 처리됩니다. 그만큼
탭이나 연속 표시 뒤의 다음 열은 열 7로 간주됩니다.
줄이 연속되는 경우 경고가 표시됩니다.
-f77=dec-탭 유효합니다.

vms 포함 (2) :
VMS 스타일 INCLUDE 문을 허용합니다. 이는 일반적인 구문을 따르지만
다음과 같은 추가 기능이 있습니다: (1) 파일 확장자가 제공되지 않은 경우,
기본값은 일반 소스 파일 확장자와 동일합니다. (2) 옵션
목록을 제어하기 위해 /LIST 또는 /NOLIST를 포함 파일 이름에 추가할 수 있습니다.
그 내용 중.

유닉스 백슬래시 (4) :
문자열에서 UNIX 스타일 백슬래시 이스케이프를 처리합니다. 탈출
백슬래시 뒤의 시퀀스는 ANSI에 따라 평가됩니다.
C의 문자열 표준: 최대 XNUMX자리 숫자는 XNUMX진수 값, x를 나타냅니다.
XNUMX진수 상수(abfnrt 문자 중 하나)의 시작을 나타냅니다.
특수 제어 코드 및 기타 문자(개행 포함)를 나타냅니다.
문자 자체를 의미합니다. 이 소스 코드 옵션이 적용되면
다음과 같은 경우 경고가 주어집니다. -f77=백슬래시 설정이 지정됩니다.

기본 동작은 다른 일반과 마찬가지로 백슬래시를 처리하는 것입니다.
하지만 다음과 같은 경우 이식성에 대한 경고가 생성됩니다.
-이식성 플래그가 설정되었습니다. 일부 컴파일러에서는
비표준 방식으로 백슬래시를 사용하면 표준 준수가 가능합니다.
문자열에 백슬래시 문자를 사용하면 프로그램을 이식할 수 없습니다.

이후 ftnchek 해석된 문자열로 많은 작업을 수행하지 않으며 드물게
이 옵션을 사용하는 데 필요합니다. 허위사실을 방지하기 위해 필요합니다.
(a) 검사 중인 프로그램이 백슬래시를 사용하여
표준 메커니즘을 사용하는 대신 문자열의 아포스트로피 또는 따옴표
구분 기호를 두 배로 늘리는 것; (b) 백슬래시는 끝을 탈출하는 데 사용됩니다.
여러 소스 라인에 걸쳐 문자열을 계속하기 위한 라인; 범고래
PARAMETER 정의는 LEN과 같은 고유 문자열 함수를 사용합니다.
문자열을 인수로 사용하고 해당 값은 나중에 배열을 정의하는 데 사용됩니다.
치수 등

매개변수 암시적 유형 (8) :
할당된 값의 데이터 유형에 따라 매개변수를 암시적으로 입력합니다. 일부
비표준 컴파일러에서는 값의 데이터 유형이
Fortran 77의 첫 번째 문자를 기반으로 하는 매개변수의 기본 유형입니다.
매개변수 이름. 이 옵션은 PARAMETER 문에만 적용됩니다.
괄호가 있는 표준 형식입니다. 명시적으로 지정된 매개변수
PARAMETER 문 이전에 type 문에서 선언된 내용은 영향을 받지 않습니다.
이 옵션으로. 다음과 같은 경고가 표시됩니다. -f77=param-암시적 유형
or -이식성=param-암시적 유형 옵션을 선택합니다.

이 암시적 형식 지정은 명시적 형식과 동일하게 취급됩니다.
매개변수 선언. 따라서 사용하는 경우
-makedcls=선언되지 않은 전용 선언되지 않은 선언만 생성하려면
변수, 이러한 매개변수는 지원 포함됩니다.

dec-param-표준 유형 (16) :
DEC Fortran 스타일 매개변수의 데이터 유형 지정에 대한 Fortran 77 규칙을 따르십시오.
이는 비표준 형식의 PARAMETER 문을 사용하여 선언됩니다.
괄호가 부족합니다. DEC Fortran에 따르면 이 형식으로 정의된 매개변수는
명령문의 데이터 유형은 값의 데이터 유형에 따라 지정됩니다.
할당된. 이 옵션을 사용하여 알려주세요. ftnchek 이 규칙을 따르지는 않지만
대신 표준 PARAMETER 문과 동일한 규칙을 사용합니다. 이것
옵션은 표준 형식의 PARAMETER 문에는 적용되지 않습니다.

기본적으로 이러한 소스 코드 옵션은 모두 꺼져 있습니다.
vms 포함 VMS 버전에서는 기본적으로 켜져 있는 옵션입니다.

참조 : -f77, -포함, -이식성.

-스타일=명부
노후화되거나 구식 프로그래밍에 대해 매우 까다로운 경고를 제공합니다.
건축. 이 옵션은 최신 프로그래밍을 따르려는 노력에 도움이 됩니다.
스타일. (이 옵션에서 불만이 제기되는 대부분의 사항은
F 서브 세트 언어.) By 기본 모든 경고 are 돌린 떨어져서.

XNUMXD덴탈의 명부 쉼표나 콜론으로 구분된 키워드로 구성됩니다. 세 가지가 있습니다
특별한 키워드: 모든 모든 옵션을 켜려면 없음 모두 끄고
도움 각 키워드에 대한 간략한 설명과 함께 모든 키워드 목록을 인쇄합니다. 만약에
명부 생략하고, 스타일 에 해당하는 -스타일=모두-노스타일 에 해당하는
-스타일=없음. 경고 키워드와 그 의미는 다음과 같습니다.

블록-if:
산술 IF 문에 대해 불평합니다. 블록 IF 또는 논리 IF(이것은
단일 명령문을 제어합니다).

구성 이름:
명명되지 않은 블록 구성(IF, DO 및 SELECT CASE)에 대해 불평합니다. 참고하세요
구성의 첫 번째 설명에 구성 이름이 있는 경우
다른 모든 구성 요소 문(ELSE, END IF,
등) 구성. 이 경우 해당 구성 이름이 누락되었습니다.
문은 이 옵션에 관계없이 구문 오류를 생성합니다. 목적
이 옵션은 구성에 옵션이 전혀 없는 경우 경고하는 것입니다.
이름입니다.

뚜렷한 일:
두 개의 DO 루프가 공통 종료자 문을 공유하면 불평합니다.

do-construct:
DO 루프의 종결자가 END DO가 아니면 불평합니다.
CONTINUE 문. 이는 루프가 충족되기 위한 요구 사항입니다.
do-construct의 Fortran 90 정의.

끝내다:
DO 루프의 종결자가 END DO가 아닌 경우 불평
성명. (이 옵션은 do-construct 옵션, 짝수
더 엄격해졌습니다.)

최종 이름:
구조화된 END에 하위 프로그램 이름이 없다는 불만 사항
진술.

형식-stmt:
FORMAT 문의 존재에 대해 불평하십시오. FORMAT 문만
I/O 목록에 있는 참조가 아니라 자체적으로 플래그가 지정됩니다.

고토: 무조건적, 계산적 또는 할당된 GOTO의 존재에 대해 불평
진술. 또한 대체 반품에 대해 불만을 제기합니다.
서브프로그램 인수).

레이블이 지정된 stmt:
이외의 진술에 레이블(숫자)이 있는 것에 대해 불평하십시오.
FORMAT 문. (FORMAT 문은 틀림없이 편리하지만 그렇지 않기 때문입니다.
쉽게 남용될 수 있으며 이에 대한 불만 사항은 별도의 부서에 의해 통제됩니다.
형식-stmt 예어.)

프로그램-stmt:
메인 헤드에 PROGRAM 문이 없다고 불평합니다.
프로그램)

구조화된 끝:
하위 프로그램을 종료하기 위해 일반 END 문을 사용하는 것에 대해 불평하십시오.
구조화된 END 문(END PROGRAM, END SUBROUTINE, END FUNCTION,
또는 블록 데이터 종료).

참조 : -f77, -f90, -f95, -예쁜, -이식성.

-심탭
각 모듈에 대해 모든 식별자를 나열하는 기호 테이블이 인쇄됩니다.
모듈에서 언급했습니다. 이 표는 각 변수의 이름, 데이터 유형,
배열의 차원 수입니다. 별표(*)는
변수가 명시적인 유형으로 명명되지 않고 암시적으로 유형이 지정되었습니다.
선언문. 표에는 모듈이 호출한 모든 하위 프로그램도 나열되어 있습니다.
선언된 모든 COMMON 블록 등. 기본값 = no.

또한 각 모듈에 대해 라벨 테이블이 인쇄됩니다. 표에는 각 레이블이 나열되어 있습니다.
모듈에 정의되어 있습니다. 상기 명령문 라벨이 정의된 라인; 그리고
명령문 유형(실행 파일, 형식 또는 사양). 라벨은 다음에 나열되어 있습니다.
순차적 순서.

또한 모듈에서 사용하는 I/O 장치를 설명하는 표가 함께 인쇄됩니다.
사용 방법에 대한 정보: 어떤 작업이 수행되는지,
액세스는 순차적인지 직접적인지, I/O가 포맷되었는지 또는 포맷되지 않았는지 여부를 나타냅니다.

참조 : -콜트리, -교차 참조, -명부, -참고, -종류, -vcg.

-잘림=명부
가능한 잘림(또는 반올림) 오류에 대해 경고합니다. 이들 대부분은 다음과 관련이 있습니다.
정수 산술. 기본적으로 모든 경고는 켜져 있습니다.

이 설정은 잘림 가능성에 대한 경고를 세부적으로 제어합니다.
오류. 그만큼 명부 쉼표 또는 콜론으로 구분된 키워드로 구성됩니다. 이래로
경고는 기본적으로 켜져 있습니다. 접두사가 붙은 키워드를 포함합니다. 아니 - 끄다
특별한 경고. 세 가지 특별한 키워드가 있습니다: 모든 모든 것을 켜려면
잘림에 대한 경고, 없음 모두 끄고 도움 목록을 인쇄하려면
각 키워드에 대한 간략한 설명과 함께 모든 키워드를 확인하세요. 만약에 명부 생략하고, -잘림
에 해당하는 -잘림=모두-절단되지 않음 에 해당하는
-잘림=없음. 경고 키워드와 그 의미는 다음과 같습니다.

int-div-지수:
정수 나누기 결과를 지수로 사용. 이것은
실수 몫이 의도되었습니다. 예를 들어 X**(1/3)을 작성하여 평가합니다.
X의 세제곱근입니다. 올바른 표현은 X**(1./3.)입니다.

int-div-실제:
정수 나눗셈을 포함하는 식을 실수로 변환합니다. 이것
실제 몫이 의도되었음을 시사합니다.

int-div-XNUMX:
XNUMX의 결과를 산출하는 정수 상수 표현식의 나눗셈.

정수-음-전력:
음의 정수로 정수를 거듭제곱하는 것(이렇지 않으면 XNUMX이 됩니다)
기본 정수의 크기는 1입니다). 이는 실제 기반이 다음과 같다는 것을 의미합니다.
예정된.

승진:
낮은 정밀도 양을 더 높은 정밀도 양으로 자동 변환
정도. 이 과정에서 실제 변수에 대한 정확도 손실은 다음과 같습니다.
해당 강등과 비슷합니다. 승진에 ​​대한 경고는 주어지지 않습니다.
이것은 일반적으로 정확하기 때문에 실수에 대한 정수 수량입니다.

실제 지수:
정수 경계가 있는 루프에서 정수가 아닌 DO 인덱스를 사용합니다. 정수 DO
실제 경계가 있는 인덱스는 이 설정에 관계없이 항상 경고됩니다.

실수 첨자:
정수가 아닌 배열 첨자를 사용합니다.

유효 숫자:
단일 정밀도 상수를 과도하게 지정합니다. 이는 이중
정밀도 상수가 의도되었습니다.

크기 강등:
정밀도가 높은 수량을 정밀도가 낮은 수량으로 자동 변환
같은 유형의. 이 경고는 명시적인 크기가 사용되는 경우에만 발생합니다.
할당에서 하나 또는 두 피연산자의 유형을 선언합니다. 예를 들어
REAL*8 변수가 REAL 변수에 할당되면 경고가 발행됩니다.
기본 단어 크기 4가 유효한 경우. 경우에도 경고가 발행됩니다.
긴 정수는 더 짧은 정수에 할당됩니다. 예를 들어 INTEGER
표현식은 INTEGER*2 변수에 할당됩니다. 한 가지 예외가 있습니다.
이 마지막 경우, 즉 과제의 오른쪽이 작은 경우
리터럴 상수(128 미만). 유형 강등: 자동 변환
더 높은 정밀도 수량을 다른 유형의 더 낮은 정밀도 수량으로 변환합니다. 이것
경고에는 실수를 정수로 변환, 이중 정밀도가 포함됩니다.
단정밀도 실수로, 더 긴 문자열을
더 짧은 것.

승격 및 강등에 대한 경고는 복잡한 상수에도 적용됩니다.
정밀도를 실제 또는 허수 부분의 정밀도로 간주합니다. 에 대한 경고
자동으로 변환이 이루어진 경우에만 승격 및 강등이 제공되며,
예를 들어 혼합 정밀도 표현이나 할당문에서. 본질적인 경우
INT와 같은 함수를 사용하여 변환을 수행하면 경고가 표시되지 않습니다.

참조 : -이식성, -단어 크기.

-사용=명부
사용되지 않거나 초기화되지 않은 변수, 사용되지 않은 공통 블록,
정의되지 않았거나 사용되지 않은 명령문 레이블, 사용되지 않았거나 정의되지 않은 하위 프로그램. 에 의해
기본적으로 모든 경고가 켜져 있습니다.

이 설정은 가능한 사용에 대한 경고를 세부적으로 제어합니다.
오류. 그만큼 명부 쉼표 또는 콜론으로 구분된 키워드로 구성됩니다. 이래로
경고는 기본적으로 켜져 있습니다. 접두사가 붙은 키워드를 포함합니다. 아니 - 끄다
특별한 경고. 세 가지 특별한 키워드가 있습니다: 모든 모든 것을 켜려면
사용법에 대한 경고, 없음 모두 끄고 도움 모든 목록을 인쇄하려면
각 키워드에 대한 간략한 설명이 포함된 키워드입니다. 만약에 명부 생략하고, -용법 is
에 해당 -사용량=모두-노이즈 에 해당하는 -사용량=없음. 이들
경고는 개체의 네 가지 주요 범주를 다룹니다: 하위 프로그램 더미 인수, 공통
블록과 변수, 서브프로그램과 함수, 지역 변수. 경고
정의되지 않은 항목 포함, 정의된 항목 곱하기, 사용되지 않은 항목 등 경고
그 의미를 지닌 키워드는 다음과 같습니다.

인수 별칭:
스칼라 더미 인수는 실제로 다른 인수와 동일하며 그럴 수도 있습니다.
수정되었습니다. Fortran 77 표준(섹션 15.9.3.6)은 다음을 수정하는 것을 금지합니다.
다른 인수에 별칭이 붙은 인수입니다.

인수 배열 별칭:
배열 또는 배열 요소인 더미 인수가 다음과 같은 배열에 있습니다.
다른 하나는 수정되었습니다. 이 플래그는 다음과 유사합니다. 인수 별칭 하지만 제공
배열 인수에 대한 별도의 제어. 앨리어싱인지 확인하기가 더 어렵습니다.
배열의 경우에 발생하므로, ftnchek 잘못된 경고를 너무 많이 주고,
이 플래그를 사용하면 어레이 관련 항목을 억제하지 않고 끌 수 있습니다.
스칼라에 대한 경고.

인수-공통-별칭:
스칼라 더미 인수는 서브 프로그램의 공통 변수와 동일합니다.
둘 중 하나가 수정됩니다. 이는 Fortran 77 표준에서도 금지되어 있습니다.
일반적인 검사가 정확하지 않은 경우(자세한 내용은 -흔한 설정)이 어렵다.
앨리어싱이 발생하는지 알려주므로 변수가 다음과 같은 경우 경고가 표시됩니다.
서브프로그램에 의해 선언된 공통 블록의 모든 위치.

인수-공통-배열-별칭:
배열 또는 배열 요소인 더미 인수가 배열과 동일한 배열에 있습니다.
공통 변수이며 둘 중 하나가 수정됩니다. 일반적인 검사가 정확하지 않은 경우,
변수는
하위 프로그램.

인수-const-수정:
하위 프로그램은 상수 또는 표현식인 인수를 수정합니다. 그런
어떤 행동이 프로그램의 비정상적인 동작을 유발할 수 있습니다.

인수-미사용:
더미 인수가 선언되었지만 사용되지 않았습니다. 이는 다음과 유사합니다.
var-미사용 아래에 설명된 키워드이지만 인수에만 적용됩니다.

com-블록-미사용:
공통 블록이 선언되었지만 그 안에 있는 변수는 어느 누구도 사용하지 않습니다.
하위 프로그램. 공통 엄격성 설정이 다음과 같은 경우 이 경고는 표시되지 않습니다.
0.

com-블록-휘발성:
공통 블록이 다음과 같은 경우 공통 블록은 해당 내용의 정의를 잃을 수 있습니다.
휘발성 물질. 이 옵션은 다음과 같은 경우에만 효과가 있습니다. -공통=휘발성 깃발이 들어있다
효과. 의 토론을 참조하세요. -흔한 위의 설정.

com-var-set-미사용:
공통 변수에는 값이 할당되지만 그 값은 어떤 변수에서도 사용되지 않습니다.
하위 프로그램. 공통 엄격성 설정이 다음과 같은 경우 이 경고는 표시되지 않습니다.
0.

com-var-초기화되지 않음:
공통 변수의 값이 일부 하위 프로그램에서 사용되지만 설정되지 않았습니다.
어딘가에. 안타깝게도, ftnchek 충분히 철저하게 분석하지 않는다.
어떤 루틴이 다른 루틴보다 먼저 호출되는지 알기 위한 호출 시퀀스. 그래서
이러한 유형의 오류에 대한 경고는 다음과 같은 경우에만 제공됩니다.
변수가 일부 루틴에서 사용되지만 다른 루틴에서는 설정되지 않습니다. 확인 중
개별 COMMON 변수의 작업은 다음과 같은 경우에만 수행됩니다. -흔한 설정은 3
(변수 계약에 따라 다름). 이 경고는 일반적인 경우에 표시되지 않습니다.
엄격 설정은 0입니다.

com-var-미사용:
공통 변수는 선언되었지만 어떤 하위 프로그램에서도 사용되지 않습니다. 이 경고
공통 엄격도 설정이 0이면 억제됩니다.

do-인덱스 수정:
DO 루프의 인덱스인 변수가 일부 명령문에 의해 수정되었습니다.
루프 범위 내에서. 표준에서는 활성 DO 변수를 허용합니다.
DO 문의 증분 메커니즘에 의해서만 수정될 수 있습니다.

확장된 곱셈 정의:
외부(서브루틴 또는 함수)가 두 번 이상 정의되었습니다. 정의
소스 코드의 본문을 제공하는 외부 수단입니다.

외부 선언 전용:
이름이 일부 모듈의 EXTERNAL 문에서 선언되었지만
어디에서나 정의되거나 사용됩니다.

확장되지 않음:
외부가 사용(호출)되지만 어디에도 정의되지 않습니다. 이 옵션은
에 해당 -외부 깃발. 하위 프로그램이 다음보다 많이 호출되는 경우
일단 해당 호출의 일관성이 확인됩니다.

사용하지 않은 상태:
외부가 정의되었지만(하위 프로그램 본문이 있음) 사용되지 않습니다.
서브프로그램은 다른 프로그램에 의해 호출되더라도 사용되지 않은 것으로 간주됩니다.
하위 프로그램(다음으로 시작하는 실행 스레드에서 호출할 수 없는 경우)
메인 프로그램. 하위 프로그램의 인수와 해당 인수의 일치
이 경고가 꺼진 경우에도 호출은 계속 확인됩니다. 만약 있다면
주 프로그램이 없으면 이 경고는 하위 프로그램이 없는 경우에만 발행됩니다.
어디서나 호출됩니다. 이 경고는 라이브러리 모드에서는 표시되지 않지만 라이브러리
모드에는 사용되지 않는 인수 확인을 억제하는 추가 효과가 있습니다.
루틴.

라벨이 정의되지 않음:
문은 정의되지 않은 레이블을 참조합니다.

라벨 미사용:
명령문 레이블이 정의되었지만 참조되지 않았습니다.

var-set-미사용:
지역 변수에 값이 할당되지만 해당 값은 사용되지 않습니다.

var 초기화되지 않은:
지역 변수의 값은 할당되기 전에 사용될 수 있습니다. 때때로
ftnchek 지역 변수 사용에 대한 경고에 실수가 있습니다. 대개
문제가 없을 때 경고를 보내는 측면에서 오류가 발생하지만 거의 발생하지 않습니다.
경우에는 문제가 있는 곳을 경고하지 못할 수도 있습니다. 섹션을 참조하세요.
예를 들어 버그. 변수가 동등한 경우 다음에서 사용하는 규칙은 다음과 같습니다. ftnchek
즉, 어떤 변수에 대한 참조는 모든 변수에 대한 동일한 참조를 의미합니다.
변수와 동일합니다. 배열의 경우 규칙은 다음을 참조하는 것입니다.
모든 배열 요소는 배열의 모든 요소에 대한 참조로 처리됩니다.

var-미사용:
지역 변수가 선언되었지만(예: 유형 선언에서) 그렇지 않습니다.
모듈에서 사용됩니다. 더미 인수에는 적용되지 않습니다: 이에 대한 경고
키워드에 의해 제어됩니다. 인수-미사용 전술 한 바와.

참고: 다음 버전에서는 ftnchek 2.10 이전에는 -용법 플래그가 숫자 인수를 사용했습니다.
옵션 목록 대신. 스크립트를 작성한 사용자를 위해
호출 ftnchek 이런 방식으로 숫자 형식이 여전히 허용됩니다. 숫자
설정은 XNUMX자리 숫자로 구성됩니다. 첫 번째 숫자(백 자리) 컨트롤
서브프로그램(함수 및 서브루틴)에 대한 경고, 두 번째 숫자(십
장소) 공통 블록 및 공통 변수에 대한 경고 및 세 번째 숫자
(XNUMX자리) 지역 변수에 대한 경고입니다. 각 숫자는 경고를 제어합니다.
관례에 따르면 1은 정의되지 않은 항목과 변수에 대해 경고한다는 의미입니다.
설정 전에 사용되는 항목, 2는 사용되지 않은 항목에 대해 경고를 의미하고 3은
두 가지 유형 모두에 대해 경고합니다. 이 숫자는 이제 적절한 값으로 변환됩니다.
위에 나열된 키워드에 대해서는 제외 com-블록-휘발성, 이는 영향을 받지 않습니다.
숫자 인수로.

참조 : -흔한, -선언하다, -통근자, -도서관.

-vcg
VCG 그래프 설명 형식으로 호출 그래프를 생성합니다. 이 설명은
기본 파일을 포함하는 파일과 동일한 스템을 사용하여 별도의 파일에 기록됩니다.
프로그램 및 접미사 .vcg. 이 파일은 다음에게 직접 제공될 수 있습니다. xvcg(1L) ~
호출 그래프를 시각화합니다. (입력이 표준 입력에서 나온 경우 그래프는
설명은 표준 출력으로 전송됩니다.) 이 스위치는 다음과 같습니다.
-콜트리=vcg. 기본값 = 아니요.

생성된 VCG 설명은 필요 이상으로 복잡합니다. VCG는 그래프를 허용합니다
및 중첩된 하위 그래프: 각 서브루틴은 해당 서브루틴 내부에 중첩된 하위 그래프로 생성됩니다.
루틴 호출. 이를 통해 하위 그래프를 대화식으로 표시하거나 요약할 수 있습니다.
그들.

XNUMXD덴탈의 -vcg 에 대한 옵션 ftnchek Cranfield의 Dr. Philip Rubini가 작성했습니다.
영국, 대학교.

xvcg X Windows 시스템에서 실행되는 그래프 시각화 도구입니다. 그것은
ftp.cs.uni-sb.de에서 자유롭게 사용할 수 있습니다. 그것은 G. Sander에 의해 작성되었습니다.
독일 자를란트 대학교.

참조 : -콜트리, -교차 참조, -참고, -종류.

-번역
이 옵션은 ftnchek 버전 번호, 릴리스 날짜,
프로그램의 패치 수준. 파일이 제공되지 않으면 종료됩니다. 파일인 경우
이 옵션의 효과는 패치 수준을 포함하는 것입니다(일반적으로
생략) 처리 시작 시 인쇄되는 버전 정보에 포함됩니다. 기본값 =
아뇨.

참조 : -도움.

-휘발성 물질
COMMON 블록은 휘발성이라고 가정합니다. 기본값 = 아니요.

이 플래그는 다음으로 대체됩니다. -공통=휘발성, 더 이상 사용하면 안 됩니다. 그럴 수도 있다
향후 릴리스에서는 제거될 예정입니다. ftnchek.

참조 : -흔한, -용법.

-단어 크기=NUM
기본 단어 크기를 지정합니다. NUM 바이트. 이는 논리 및
명시적 정밀도가 제공되지 않은 단정밀도 숫자 변수입니다.
(문자가 아닌 변수에 대한 명시적 정밀도는 Fortran 77의 확장입니다.
표준이며 REAL*8 X와 같은 유형 선언으로 제공됩니다.) 배정밀도
복합 변수는 이 값의 두 배가 되고 이중 복합 변수는 XNUMX가 됩니다.
타임스. 쿼드 정밀도 상수와 고유 함수 결과는 XNUMX배입니다.
이 값. REAL*16으로 선언된 변수는 쿼드로 간주됩니다.
단어 크기가 4바이트인 경우에만 정밀도가 높아집니다. 기본값 = 켜기 = 4바이트.

단어 크기 값은 표준 준수 프로그램을 확인하는 데 중요하지 않습니다.
문자가 아닌 변수에 대해 명시적인 정밀도를 선언하거나 Hollerith를 저장하지 마세요.
변수의 데이터. 이 설정은 문자의 기본 크기에도 영향을 주지 않습니다.
변수는 항상 1바이트입니다. Hollerith 상수도 점유한다고 가정합니다.
문자당 1바이트.

단어 크기는 할당 시 잘림이 발생하는지 여부를 결정하는 데 사용됩니다.
명령문, 하위 프로그램 인수 목록에서 정밀도 불일치를 포착하고
일반적인 차단 목록. 발행되는 정확한 경고는 상태에 따라 다릅니다.
다른 플래그 중. 두 가지 모두에서 -휴대성=혼합 크기 그리고 -nowordsize 깃발,
명시적 객체와 기본 정밀도 객체의 혼합(문자 표현식은
포함)에 대해 경고합니다. 이는 두 가지를 모두 포함하는 산술 표현식에 적용됩니다.
객체 유형, 서브프로그래밍 인수 및 COMMON 변수. 통제하에
-잘림=강등승진 옵션에 대해 경고가 표시됩니다.
동일한 유형의 더 짧은 변수에 표현식을 할당하거나
산술에서 더 낮은 정밀도 값을 더 높은 정밀도로 승격
표현식 또는 할당문.

다음을 사용하여 단어 크기를 0으로 지정하거나 이와 동등하게 지정합니다. -nowordsize 기본값이 없음을 의미합니다.
값이 가정됩니다. 이는 다음을 지정하는 것과 같습니다. -휴대성=혼합 크기.
예를 들어 플래그 지정과 같이 기본 정밀도와 명시적 정밀도가 혼합된 경우를 찾는 데 사용합니다.
REAL*8이 DOUBLE PRECISION과 동일하게 처리되는 곳입니다.

참조 : - 포인터 크기, -이식성, -잘림.

-줄바꿈=대장균의 뜻
오류 메시지의 래핑을 제어합니다. 지나갈 긴 오류 메시지
지정된 열은 단어 사이에 별도의 줄로 구분됩니다.
더 나은 가독성을 위한 메시지입니다. 다음으로 꺼진 경우 -nowwrap, 각각 별도의 오류
메시지는 한 줄에 인쇄되며 디스플레이에서
메시지를 보내거나 잘라냅니다. 기본값 = 켜기 = 79.

바꾸다 L' 기본값


ftnchek 모든 옵션의 기본값을 변경하는 두 가지 메커니즘이 포함되어 있습니다.
환경 변수를 정의하거나 기본 설정 파일을 생성합니다. 언제 ftnchek 시작하고,
환경에서 이름이 접두어로 구성된 변수를 찾습니다.
문자열 FTNCHEK_를 옵션 이름의 대문자 버전으로 바꿉니다. 만약 그러한 변수가
찾은 경우 해당 값은 해당 스위치 또는 설정에 대한 기본값을 지정하는 데 사용됩니다.
설정의 경우(예: -흔한 엄격 설정)의 값
환경 변수는 기본 설정 값으로 읽혀집니다. 스위치의 경우,
환경 변수에 값이 없으면 기본 스위치는 true 또는 yes로 간주됩니다.
0 또는 아니오.

환경 변수 이름은 전체 길이 옵션으로 구성되어야 합니다.
이름은 대문자여야 합니다. 예를 들어, ftnchek 출처 목록을 인쇄하다
기본적으로 환경 변수 FTNCHEK_LIST를 1 또는 YES 또는 0 또는 YES 이외의 값으로 설정합니다.
아니요. FTNCHEK_LIS(전체 옵션 이름 아님) 또는 ftnchek_list(소문자) 이름은
인식되지 않습니다.

다음은 다양한 시스템에서 환경 변수를 설정하는 방법에 대한 몇 가지 예입니다. 을 위한
단순성, 모든 예제는 기본값을 설정합니다. -명부 YES로 전환하세요.

1. UNIX, Bourne 쉘: $ FTNCHEK_LIST=YES
$ FTNCHEK_LIST 내보내기

2. UNIX, C 쉘: % setenv FTNCHEK_LIST YES

3. VAX/VMS: $ DEFINE FTNCHEK_LIST 예

4. MSDOS: $ SET FTNCHEK_LIST=YES

환경 변수를 처리한 후 ftnchek은 기본 설정 파일을 찾습니다.
옵션 및 설정을 포함합니다. 다음 순서대로 검색합니다.
발견된 첫 번째 파일: (1) .ftnchekrc 현재 디렉토리에서 (2) ftnchek.ini 현재
디렉토리, (3) .ftnchekrc 사용자의 홈 디렉토리에서, (4) ftnchek.ini 가정에서
예배 규칙서. 그러한 파일이 발견되면 여기에 정의된 옵션이 기본값으로 사용됩니다.
내장된 기본값을 대체하고 환경에 설정된 모든 기본값을 재정의합니다.

기본 설정 파일의 각 옵션이나 설정은 별도의 줄에 있어야 합니다. 그들은 주어진다
첫 글자에 대시가 없다는 점을 제외하면 명령줄과 동일한 형식입니다. 환경 설정
파일에는 빈 줄과 주석이 포함될 수 있습니다. 주석은 줄의 어느 지점에서나 소개됩니다.
공백 문자(공백 또는 탭) 또는 '#' 문자로 종료되며 다음 문자로 종료됩니다.
라인.

명령줄 옵션은 환경 또는 기본 설정에 설정된 기본값을 재정의합니다.
내장된 기본값을 재정의하는 것과 같은 방식으로 파일을 삭제합니다.

사용 프로젝트 파일


이 섹션에는 프로젝트 파일을 가장 효과적으로 사용하는 방법에 대한 자세한 정보가 포함되어 있습니다.
몇 가지 함정을 피하는 방법.

수표를 나눌 수 있습니다 ftnchek 로컬과 글로벌 두 가지 범주로 나뉩니다. 현지의
확인은 단일 루틴 내로 제한되며 초기화되지 않은 것과 같은 것을 포착합니다.
변수, 산술 표현식의 의도하지 않은 정밀도 손실 등.
검사는 각 하위 프로그램에서 독립적으로 수행할 수 있습니다. 또한, 현지 확인은
다른 하위 프로그램이 변경되면 하위 프로그램을 반복할 필요가 없습니다. 글로벌
검사는 잘못된 인수 유형으로 서브루틴을 호출하는 것과 같은 것을 포착합니다.
공통 블록 선언에 동의하지 않습니다. 전체 세트를 살펴봐야 합니다.
서로 상호 작용하는 하위 프로그램.

프로젝트 파일의 목적은 로컬 검사 및 전역 검사 단계를 허용하는 것입니다.
분리되다. 각 하위 프로그램이 자체 소스 파일에 있다고 가정하면 다음을 실행할 수 있습니다.
ftnchek 전역 검사를 억제하면서 로컬 검사를 각각 한 번씩 수행합니다. 그 다음에
ftnchek 전역 검사를 수행하기 위해 모든 프로젝트 파일에 대해 한 번 실행될 수 있습니다. 그만큼
아래 샘플 메이크파일은 이 작업을 자동화하는 방법을 보여줍니다. ``.f.prj'' 대상은 다음을 업데이트합니다.
소스 파일이 변경될 때마다 특정 파일에 대한 프로젝트 파일을 삭제합니다. 정보
글로벌 체크에 필요한 정보는 프로젝트 파일에 저장됩니다. ``check'' 타겟은 다음을 수행합니다.
결합 된 글로벌 검사. 일반적으로 ``make check''는 ``ftnchek -project''를 반복합니다.
변경된 소스 파일만 실행한 다음 전역 검사를 수행합니다. 이건 분명 큰일이야
많은 하위 프로그램이 거의 변경되지 않는 경우 대규모 프로그램에 유리합니다.

프로젝트 파일을 사용하여 각 하위 프로그램을 별도의 소스 파일에 배치하는 것이 가장 좋습니다.
각 소스 파일에 둘 이상의 하위 프로그램이 포함될 수 있으면 정의가 복잡해집니다.
``로컬''과 ``글로벌'' 검사는 모듈간 검사가 있기 때문입니다.
파일 내에 포함되어 있습니다. ftnchek 이 경우 옳은 일을 하려고 노력하지만
교차 작업을 다시 수행하지 않는 것 사이의 균형으로 인해 일부 합병증(아래 설명)이 발생합니다.
프로그램 구조에 대한 정보를 확인하고 보존합니다.

일반적으로 재검사를 최소화하려면 프로젝트 파일을 다음과 같이 생성해야 합니다.
전에, -도서관 플래그가 적용되고 트리밍이 켜졌습니다. 이 모드에서는 저장된 정보가
프로젝트 파일의 모든 하위 프로그램 선언, 모든 하위 프로그램 호출로 구성됩니다.
동일한 파일의 선언 및 각 COMMON 블록의 한 인스턴스로 해결되지 않음
선언. 이는 상호 동의 여부를 확인하는 데 필요한 최소한의 정보입니다.
파일.

소스 파일에 둘 이상의 루틴이 포함되어 있으면 다음과 같은 몇 가지 문제가 발생할 수 있습니다.
라이브러리 모드에서 프로젝트 파일을 생성하면 발생할 수 있습니다.
파일 내에 정의된 루틴 중 일부가 손실됩니다. 또한 파일의 루틴이
다른 파일의 루틴과 공유되는 COMMON 블록을 사용하면
COMMON 블록의 설정 및 사용 상태를 올바르게 확인하기 위해 저장된 충분한 정보
및 COMMON 변수에 따라 -용법 환경. 따라서 사용할 계획이라면
프로젝트 파일은 언제 -용법 검사가 켜져 있고(기본 상황),
한 프로젝트 파일의 여러 루틴은 다른 파일의 루틴과 COMMON 블록을 공유합니다.
프로젝트 파일은 -도서관 플래그가 꺼졌습니다. 이 모드에서는
ftnchek 위에 나열된 정보 외에도 각 하위 프로그램의 한 번의 호출을 저장합니다.
동일한 파일의 다른 서브프로그램 및 모든 COMMON 블록 선언. 이는 다음을 의미합니다.
프로젝트 파일은 필요한 것보다 더 커지며, 파일을 읽을 때 ftnchek 5월
프로젝트 파일이 생성될 때 이미 수행했던 일부 모듈 간 검사를 반복합니다. 만약에
각 프로젝트 파일에는 하나의 모듈만 포함되어 있으므로 생성 시 정보 손실이 없습니다.
라이브러리 모드의 프로젝트 파일.

로 프로젝트 파일을 생성하면 정보가 손실될 수 있기 때문에
-도서관 플래그가 적용되면 해당 프로젝트 파일을 나중에 읽을 때마다 처리됩니다.
현재 설정에 관계없이 라이브러리 파일로 -도서관 깃발. 다른 한편으로는
라이브러리 모드가 꺼진 상태에서 생성된 프로젝트 파일은 나중에 다음 중 하나에서 읽을 수 있습니다.
방법.

앞선 논의에서는 트리밍 옵션이 다음과 같이 가정됩니다. -계획 설정은
프로젝트 파일이 생성되면 켜집니다. 이것은 정상적인 상황입니다. 그만큼 트림 없음
옵션 -계획 프로젝트 파일을 사용하려는 경우 설정이 제공됩니다.
프로그램 확인 이외의 목적으로 ftnchek. 예를 들어 다음과 같이 작성할 수 있습니다.
다양한 방법에 대한 정보를 얻기 위해 프로젝트 파일을 분석하는 Perl 스크립트
서브 프로그램이 호출됩니다. 당신은 트림 없음 문제를 다루는 옵션
위에서 설명한 정보 손실은 필요한 것보다 더 많은 정보를 발생시키기 때문입니다.
저장되었습니다. 이로 인해 프로젝트 파일이 더 커지고 ftnchek 나중에 더 많은 일을 하게 되면
전체 프로그램을 확인하기 위해 이를 읽습니다. 일반적으로 다음을 사용해야 합니다. -도서관
나중에 사용하기 위해 저장할 정보의 양을 제어하는 ​​옵션 ftnchek 당신의 확인 중
프로그램)

다음은 UNIX를 사용하는 방법의 예입니다. 확인 새 항목을 자동으로 생성하는 유틸리티
해당 소스 파일이 변경될 때마다 프로젝트 파일을 확인하고
일관성을 위한 파일입니다. Makefile에 다음 줄을 추가하세요. 이 예에서는 다음을 가정합니다.
링크될 객체 파일의 모든 이름을 나열하는 매크로 OBJS가 정의되었습니다.
완전한 실행 프로그램을 구성하기 위해 함께 사용됩니다. (이 메이크파일에서 들여쓰기된 줄은
각각은 공백이 아닌 탭으로 시작해야 합니다.) 소스 파일에 여러 루틴이 포함된 경우
공통 블록을 공유하는 경우 no-com-\* 옵션을 제거해야 합니다.
NOGLOBAL에서 및/또는 -library 플래그를 삭제합니다.
# 프로젝트 파일 접미사가 무엇인지 알려줍니다.
.접미사: .prj

# 이 옵션은 전역 검사를 억제합니다.
NOGLOBAL=-사용법=no-ext-undefined,no-com-\*

# .f 파일에서 .prj 파일을 만드는 방법을 알려줍니다.
.f.prj:
ftnchek -프로젝트 $(NOGLOBAL) -라이브러리 $

# 프로젝트 파일 이름을 포함하는 매크로 PRJS를 설정합니다.
PRJS= $(OBJS:.o=.prj)

# "make check"는 변경된 모든 것을 검사합니다.
확인: $(PRJS)
ftnchek $(PRJS)

프로그램이 여러 다른 소스 파일에 정의된 많은 루틴을 사용하는 경우
디렉터리가 다르면 다른 프로젝트 파일을 모두 지정하는 것이 번거로울 수 있습니다.
프로그램을 제대로 확인하는 데 필요합니다. 그러한 사건을 처리하기 위해, ftnchek 프로젝트를 허용합니다
파일을 하나의 큰 파일로 연결합니다. 그런 다음 이 단일 파일을 다음 사용자에게 제공할 수 있습니다.
ftnchek 루틴의 일부 또는 전체 사용을 확인하기 위한 정보를 제공합니다.
결합된 프로젝트 파일에 정의됩니다. 이러한 ``라이브러리'' 프로젝트 파일을 사용할 때,
원할지도 모른다 ftnchek의 오류는 파일 이름을 정확하게 문서화하도록 보고합니다.
특정 기능이 정의됩니다. 다양한 소스 파일이 여러 디렉토리에 있는 경우
파일 이름만 제공하는 오류 보고서는 모호할 수 있으며 오히려 다음을 포함해야 합니다.
파일 경로입니다. 해결책은 다음과 같이 각각의 개별 프로젝트 파일을 생성하는 것입니다.
소스 파일의 전체 경로를 제공합니다. 그러면 이 전체 경로가
오류 보고서. 예를 들어 모든 라이브러리 하위 프로그램 소스 파일이 다음과 같다고 가정합니다.
/util/lib라는 디렉토리의 하위 디렉토리에 있습니다. 그런 다음 개별 프로젝트 파일은
먼저 다음과 같은 명령으로 생성됩니다.
/util/lib -name '*.f' -exec ftnchek -project '{}' ';' 찾기
(아마도 다른 옵션이 제공될 것입니다. ftnchek 위에서 논의한 것처럼. 또한 이 단계는
대신 완전한 소스를 제공하는 수정된 makefile 규칙에 의해 처리될 수 있습니다.
호출 시 로컬 이름 대신 파일 경로 ftnchek.) 다음으로 모두 연결합니다.
이러한 프로젝트 파일을 수동으로.
/util/lib -name '*.prj' -exec cat '{}' ';' 찾기 > ourlib.prj
그런 다음 다음 명령을 사용하여 프로그램 소스 파일을 확인할 수 있습니다.
ftnchek prog.f ... -lib ourlib.prj
라이브러리 루틴과 관련된 오류 메시지에는 해당 라이브러리 루틴의 전체 경로가 포함됩니다.
루틴의 소스 파일.

현재로서는 다음과 같은 아카이브 유틸리티가 없습니다. ar 연결된 내용을 관리하기 위해
위 그림과 같은 프로젝트 파일입니다. 중 하나가 변경된 경우
라이브러리 루틴에서 결합된 프로젝트 파일을 업데이트하는 유일한 방법은 모든 루틴을 연결하는 것입니다.
개별 프로젝트 파일을 다시 한 번 이러한 유틸리티는 작성하기 매우 쉽습니다.
누군가는 그렇게 하여 국가에 기여해야 합니다. ftnchek 노력.

AN


다음의 간단한 Fortran 프로그램은 다음과 같은 메시지를 보여줍니다. ftnchek. 그만큼
프로그램은 일련의 시험 점수를 받아들인 다음 평균을 계산하기 위한 것입니다.
시리즈.

C 저자: MIKE MYERS, LUCIA SPAGNUOLO
C 날짜: 8년 1989월 XNUMX일

C 변수:
C SCORE -> 시험 점수 배열
C SUM -> 시험 점수의 합
C COUNT -> 읽은 점수 카운터
CI -> 루프 카운터

실제 함수 COMPAV(점수, 개수)
정수 합계, 개수, J,SCORE(5)

DO 30 I = 1,카운트
합계 = 합계 + 점수(I)
30 계속
COMPAV = 합계/개수
END

프로그램 애비뉴
C
C 메인 프로그램
C
C 저자: 로이스 빅비
C 날짜: 15년 1990월 XNUMX일
C
C 변수:
C MAXNOS -> 입력값의 최대 개수
C NUMS -> 숫자 배열
C COUNT -> 입력값의 정확한 개수
C AVG -> COMPAV에서 반환된 평균
CI -> 루프 카운터
C

매개변수(MAXNOS=5)
정수 I, 개수
실제 숫자(MAXNOS), AVG
개수 = 0
DO 80 I = 1, MAXNOS
읽기 (5,*,END=100) NUMS(I)
개수 = 개수 + 1
80 계속
100 AVG = COMPAV(NUMS, COUNT)
END

이 프로그램이 컴파일될 때 컴파일러는 오류 메시지를 표시하지 않습니다. 그런데 여기는 뭐지?
실행될 때 발생합니다.

$ 실행 평균
70
90
85

$

무슨 일이에요? 프로그램이 왜 아무것도 하지 않았나요? 다음은
ftnchek 위의 프로그램을 디버깅하는 데 사용되는 경우:

$ ftnchek -목록 -symtab 평균

FTNCHEK 버전 3.3 2004년 XNUMX월

파일 평균.f:

1명의 저자: MIKE MYERS, LUCIA SPAGNUOLO
2 C 날짜: 8년 1989월 XNUMX일
3
4개의 C 변수:
5 C SCORE -> 시험 점수 배열
6 C SUM -> 시험 점수의 합
7 C COUNT -> 읽은 점수 카운터
8 CI -> 루프 카운터
9
10 REAL 함수 COMPAV(점수, 개수)
11 정수 SUM,COUNT,J,SCORE(5)
12
13 DO 30 I = 1,COUNT
14 합계 = 합계 + 점수(I)
15 30 계속
16 COMPAV = 합계/개수
^
16행 20열 근처 경고: 정수 몫 expr SUM/COUNT가 다음으로 변환되었습니다.
현실
17 끝

모듈 COMPAV: 기능: 실제

변수:

이름 유형 치수 이름 유형 치수 이름 유형 치수 이름 유형 치수
COMPAV 실수 COUNT intg I intg* J intg
SCORE 정수 1 합계 정수

* 변수가 선언되지 않았습니다. 유형이 암시적으로 정의되었습니다.

COMPAV 모듈의 경고: 선언되었지만 참조되지 않은 변수:
J는 11번째 줄에서 선언했습니다.

COMPAV 모듈의 경고: 설정 전에 변수를 사용할 수 있습니다.
14행에서 사용된 SUM
14번째 줄에 설정된 SUM

정의된 명세서 라벨:

라벨 라인 StmtType
<30>15 임원

18
19
20 프로그램 애비뉴
21 C
22C 메인 프로그램
23 C
24 저자: LOIS BIGBIE
25 C 날짜: 15년 1990월 XNUMX일
26 C
27개의 C 변수:
28 C MAXNOS -> 최대 입력 값 수
29 C NUMS -> 숫자 배열
30 C COUNT -> 입력값의 정확한 개수
31 C AVG -> COMPAV에서 반환한 평균
32 CI -> 루프 카운터
33 C
34
35개 매개변수(MAXNOS=5)
36 정수 I, 개수
37 실수(MAXNOS), AVG
38개 = 0
39 DO 80 I = 1,MAXNOS
40 읽기(5,*,END=100) 숫자(I)
41 카운트 = 카운트 + 1
42 80 계속
43 100 AVG = COMPAV(숫자, 개수)
44 끝

모듈 AVENUM: prog

참조된 외부 하위 프로그램:

COMPAV: 진짜*

변수:

이름 유형 치수 이름 유형 치수 이름 유형 치수 이름 유형 치수
AVG 실수 COUNT intg I intg MAXNOS intg*
NUMS 실수 1

* 변수가 선언되지 않았습니다. 유형이 암시적으로 정의되었습니다.

모듈 AVENUM의 경고: 변수가 설정되었지만 사용되지 않았습니다:
43행에 설정된 AVG

I/O 작업:

유닛 ID 유닛 번호 액세스 양식 작업 라인
5 시퀀스 FMTD 읽기 40

정의된 명세서 라벨:

라벨 라인 StmtType 라벨 라인 StmtType
<80> 42 간부 <100> 43 간부

Average.f 파일에서 0개의 구문 오류가 감지되었습니다.
파일average.f에서 6개의 경고가 발행되었습니다.

경고: 하위 프로그램 COMPAV 인수 데이터 유형이 위치 1에서 일치하지 않습니다.
모듈 COMPAV 라인 10 파일 평균의 더미 인수 SCORE는 intg 유형입니다.
모듈 AVENUM 라인 43 파일 평균의 실제 인수 NUMS는 유형이 실수입니다.

에 따르면 ftnchek, 프로그램에는 사용되기 전에 사용할 수 있는 변수가 포함되어 있습니다.
초기값을 할당하고, 필요하지 않은 변수를 할당했습니다. ftnchek 또한 경고한다.
사용자는 정수 몫이 실수로 변환되었음을 알 수 있습니다. 이는 사용자에게 도움이 될 수 있습니다.
의도하지 않은 반올림 오류를 포착합니다. 이후 -심탭 깃발이 주어졌고, ftnchek 인쇄물
로컬 모듈의 식별자와 해당 데이터 유형이 포함된 테이블을 출력합니다.
그리고 차원의 수. 마지막으로, ftnchek COMPAV 기능이 사용되지 않음을 경고합니다.
적절한 유형의 인수를 사용합니다.

ftnchek님의 도움으로 프로그램을 디버그할 수 있습니다. 우리는 다음과 같은 내용이 있음을 알 수 있습니다
오류 :

1. 나누기 전에 SUM과 COUNT를 실수로 변환했어야 합니다.

2. SUM은 루프에 들어가기 전에 0으로 초기화되어야 합니다.

3. AVG는 계산된 후 인쇄되지 않았습니다.

4. NUMS는 REAL 대신 INTEGER로 선언되어야 합니다.

또한 J가 아닌 I가 함수 COMPAV에서 INTEGER로 선언되어야 함을 알 수 있습니다. 또한,
AVENUM 프로그램에서 MAXNOS가 INTEGER로 선언되지 않았고 COMPAV가 REAL로 선언되지 않았습니다. 이것들은 아니다
오류가 있지만 부주의를 나타낼 수도 있습니다. 공교롭게도 이러한 기본 유형은
변수가 의도한 유형과 일치합니다.

수정된 프로그램과 실행 시 출력은 다음과 같습니다.

C 저자: MIKE MYERS, LUCIA SPAGNUOLO
C 날짜: 8년 1989월 XNUMX일
C
C 변수:
C SCORE -> 시험 점수 배열
C SUM -> 시험 점수의 합
C COUNT -> 읽은 점수 카운터
CI -> 루프 카운터
C
실제 함수 COMPAV(점수, 개수)
정수 합계, 개수, I,SCORE(5)
C
합계 = 0
DO 30 I = 1,카운트
합계 = 합계 + 점수(I)
30 계속
COMPAV = 플로트(합)/플로트(카운트)
END
C
C
프로그램 애비뉴
C
C 메인 프로그램
C
C 저자: 로이스 빅비
C 날짜: 15년 1990월 XNUMX일
C
C 변수:
C MAXNOS -> 입력값의 최대 개수
C NUMS -> 숫자 배열
C COUNT -> 입력값의 정확한 개수
C AVG -> COMPAV에서 반환된 평균
CI -> 루프 카운터
C
C
정수 MAXNOS
매개변수(MAXNOS=5)
정수 I, 숫자(MAXNOS), 개수
실제 평균, COMPAV
개수 = 0
DO 80 I = 1, MAXNOS
읽기 (5,*,END=100) NUMS(I)
개수 = 개수 + 1
80 계속
100 AVG = COMPAV(NUMS, COUNT)
WRITE(6,*) '평균 =',AVG
END
$ 실행 평균
70
90
85

평균 = 81.66666
$

ftnchek님의 도움으로 우리 프로그램이 성공했습니다!

통역 L' 출력


님이 주신 메시지 ftnchek 구문 오류뿐만 아니라 경고 및 오류도 포함됩니다.
Fortran은 합법적이지만 오류 또는 오류를 나타낼 수 있는 정보 메시지
부주의. 이러한 메시지의 대부분은 명령줄 옵션으로 끌 수 있습니다. 어느
옵션은 경고되는 조건의 특성에 따라 각 메시지를 제어합니다.
이전 섹션의 명령줄 플래그에 대한 설명과 개별 플래그에 대한 설명을 참조하세요.
아래 메시지. 각 메시지에는 메시지의 성격을 나타내는 단어나 문구가 접두어로 붙습니다.
상태와 심각도.

'오류'는 구문 오류를 의미합니다. 가장 간단한 종류의 구문 오류는 인쇄상 오류입니다.
오류(예: 불균형한 괄호 또는 키워드 철자 오류) 이 유형의
오류는 파서에 의해 포착되어 ``parse error'' 또는 ``syntax'라는 설명과 함께 나타납니다.
오류''(파서 생성기의 버전과 GNU인지 여부에 따라 다름) 바이슨 or
UNIX 야크). 이러한 유형의 오류 메시지는 표시되지 않습니다. 이런 종류의
오류는 종종 다음을 의미합니다. ftnchek 오류가 발생한 진술을 제대로 해석하지 않았습니다.
후속 검사 작업이 손상될 수 있습니다. 당신은해야
다른 메시지 해석을 진행하기 전에 모든 구문 오류를 제거하십시오. ftnchek
준다.

``경고: 비표준 구문''은 다음과 같은 Fortran의 확장을 나타냅니다. ftnchek 지원
그러나 이는 Fortran 77 표준에 따른 것이 아닙니다. 확장 기능 ftnchek 받아 들인다
아래 확장 섹션에 설명되어 있습니다. 한 가지 예는 DO ... ENDDO입니다.
건설. 프로그램이 이러한 확장자를 사용하는 경우 다음에 따라 경고가 표시됩니다.
사양은 다음과 같습니다. -f77 환경. 기본 동작은 경고를 표시하지 않는 것입니다.

다른 경우에 '경고'는 의심스럽기는 하지만 그럴 수도 있고 아닐 수도 있는 상태를 의미합니다.
프로그래밍 오류. 이러한 조건은 표준에 따라 합법적인 경우가 많습니다. 일부는
불법이지만 구문 오류 제목에 속하지 않습니다. 사용 오류가 한 가지 예입니다.
이는 변수가 할당되기 전에 변수가 사용될 수 있는 가능성을 나타냅니다.
값(일반적으로 오류) 또는 변수가 선언되었지만 사용되지 않은 경우(해롭지는 않지만
부주의함을 나타낼 수 있음) 사용 오류를 확인하는 양은 다음에 의해 제어됩니다.
-용법 플래그는 기본적으로 최대 검사량을 지정합니다.

잘림 경고는 의도치 않게 정확도가 손실될 수 있는 상황을 다룹니다.
실수 변수에 배정밀도 값을 할당하는 경우의 예입니다. 이러한 경고는
에 의해 제어 -잘림 설정이며 기본적으로 켜져 있습니다.

``이식 불가능한 사용법''은 일부 컴파일러에서 허용되지 않는 일부 기능에 대해 경고합니다.
Fortran 77 표준에 위배되지 않거나 프로그램이 중단될 수 있음에도 불구하고
다양한 플랫폼에서 다르게 수행됩니다. 예를 들어, 실수와 동등화
정수 변수는 일반적으로 이식성이 없는 방식입니다. 확장 기능 사용
물론 표준 언어는 이식성이 떨어지는 또 다른 원인이지만 이는 다음과 같이 처리됩니다.
별도의 경우. 프로그램의 진정한 이식성을 확인하려면 두 가지 모두 -이식성 그리고
-f77 플래그를 사용해야 합니다. 둘 다 기본적으로 꺼져 있습니다. 그만큼 -단어 크기 설정은
특정 머신에 의존하는 이식 불가능한 사용법만 확인하기 위해 제공됩니다.
단어 크기.

'아마도 오해의 소지가 있는 외관'은 무엇을 의미하지 않을 수 있는 법적 해석에 사용됩니다.
언뜻 보면 의미하는 것처럼 보입니다. 예를 들어 Fortran은 공백을 구분하지 않습니다.
변수 이름 내에 공백이 있거나 키워드와 변수 사이에 공백이 부족합니다.
변수는 독자에게 잘못된 인상을 전달할 수 있습니다. 이 메시지는 표시되지 않을 수 있습니다.
끄기로 -예쁜 플래그는 기본적으로 켜져 있습니다.

모든 파일이 처리된 후 제공되는 기타 메시지 및 관련 메시지
모듈 간의 합의에 따라 '경고'라는 단어를 사용하지 않지만 일반적으로 경고라는 단어에 속합니다.
범주. 예에는 서로 다른 해당 변수 간의 유형 불일치가 포함됩니다.
COMMON 블록 선언 또는 서브프로그램의 더미 인수와 실제 인수 사이. 이것들
경고는 다음에 의해 제어됩니다. -흔한-인수 각각 설정합니다. 기본적으로
둘 다 최대한 엄격하게 검사하도록 설정되어 있습니다.

종종 무해한 상태에 대한 또 다른 경고 그룹은 다음과 같은 경우를 나타냅니다.
서브프로그램 인수로 전달된 변수의 배열 속성은 둘 사이에 다릅니다.
루틴. 예를 들어, 배열 요소는 다음을 기대하는 서브루틴에 전달될 수 있습니다.
전체 배열. 이는 단일 행이나 열을 처리하는 데 일반적으로 사용되는 기술입니다.
XNUMX차원 배열. 그러나 이는 프로그래밍 오류를 나타낼 수도 있습니다. 그만큼 -정렬
설정을 통해 사용자는 이를 확인하는 데 사용할 엄격함의 정도를 조정할 수 있습니다.
실제 배열 인수와 더미 배열 인수 간의 일종의 일치입니다. 기본적으로 엄격함은 다음과 같습니다.
최고.

``죄송합니다''는 기술적인 문제를 나타냅니다. ftnchek 아니면 그게
리소스가 초과되었습니다.

구문 오류 메시지 및 경고에는 줄 번호와 함께 파일 이름이 포함됩니다.
열 번호. ftnchek 이러한 오류가 나타나는 데에는 두 가지 다른 옵션이 있습니다
메시지. 만약에 -초심자 이것이 기본값이며, 메시지는 스타일로 되어 있습니다.
일반 영어에 가깝습니다. (기본 스타일에서는 파일 이름이 메시지에 인쇄되지 않습니다.
프로그램 본문 내에서 -명부 적용됩니다.) 다른 스타일의 오류 메시지
에 의해 선택됩니다 -비초심자 옵션. 이 스타일에서는 메시지의 모양이 다음과 같습니다.
유닉스와 비슷하다 보풀 프로그램)

ftnchek 여전히 어떤 종류의 구문 오류에 대해서는 눈이 멀었습니다. 가장 중요한 두 가지는
FORMAT 문에 대한 자세한 검사 및 제어와 관련된 거의 모든 것
IF, DO 및 GOTO 문을 통한 실행 흐름: 즉 올바른 제어 중첩
구조, IF ... THEN과 같은 여는 문과 닫는 문 일치
ENDIF와 같은 명령문 레이블(번호)의 올바른 사용. 대부분의 컴파일러는
이러한 오류를 잡아라. 더 자세한 내용은 제한 사항 섹션을 참조하세요.

If ftnchek 컴파일러는 구문 오류 메시지를 표시하지 않지만 그 이유는 다음과 같습니다.
귀하의 프로그램에는 컴파일러에서 허용되는 표준 Fortran에 대한 확장이 포함되어 있습니다.
하지만 ~에 의해 ftnchek. (확장 섹션을 참조하십시오.) VAX/VMS 시스템에서는 다음을 사용할 수 있습니다.
컴파일러 옵션 /STANDARD를 사용하면 컴파일러가 표준 Fortran만 허용합니다. ~에
대부분의 UNIX 또는 UNIX 유사 시스템에서는 플래그를 설정하여 이를 수행할 수 있습니다. -안시.

님이 보내주신 많은 메시지 중 ftnchek 자명하다. 좀 필요하신 분들
추가 설명은 아래에 알파벳순으로 나열되어 있습니다.

공통의 블록 이름: 데이터 유형 불일치 at 위치 n
XNUMXD덴탈의 n- COMMON 블록의 번째 변수는 두 가지 다른 점에서 데이터 유형이 다릅니다.
COMMON 블록 선언. 기본적으로 (-흔한 엄격함 수준 3), ftnchek
COMMON 블록에 대해 매우 까다롭습니다. 여기에 나열된 변수는 정확히 일치해야 합니다.
데이터 유형 및 배열 차원별. 즉, 다음의 법적 선언 쌍은
다양한 모듈:
공통 /COM1/ A,B

공통 /COM1/ A(2)
원인이됩니다 ftnchek 엄격함 수준 3에서 경고를 제공합니다. 이 두 선언은
둘 다 두 개의 실제 변수를 선언하므로 Fortran에서는 합법적입니다. 엄격하게
수준 1 또는 2인 경우 이 예에서는 경고가 제공되지 않지만 경고는 다음과 같습니다.
예를 들어 B가 INTEGER로 선언된 경우와 같이 데이터 유형 불일치가 있는 경우 제공됩니다.
에 의해 통제되는 -흔한 환경.

공통의 블록 이름 데이터 유형 수행원 짧은 데이터 유형
일부 컴파일러에서는 각 항목이 다음 위치에서 시작되도록 멀티바이트 항목을 정렬해야 합니다.
항목 크기의 배수인 주소입니다. 따라서 짧은 경우(예: 단일-
정밀도 실수) 항목 뒤에는 긴(예: 배정밀도 실수) 항목이 옵니다.
후자는 올바르게 정렬되지 않을 수 있습니다. 에 의해 통제되는 -이식성=공통 정렬
옵션을 선택합니다.

공통의 블록 이름 혼합 된 문자 비문자 변수
ANSI 표준에서는 COMMON 블록의 변수가 유형인 경우 다음을 요구합니다.
CHARACTER인 경우 동일한 COMMON 블록의 다른 모든 변수도 유형이어야 합니다.
성격. 에 의해 통제되는 -f77=혼합-공통 옵션을 선택합니다.

공통의 블록 이름: 변화 길이
럭셔리 -흔한 레벨 2를 설정하면 이 메시지는 COMMON 블록이 다음으로 선언되었음을 의미합니다.
두 개의 서로 다른 하위 프로그램에 서로 다른 단어 수가 있습니다. 한마디가 금액이다
하나의 정수 또는 실수 변수가 차지하는 저장 공간. 을 위한 -흔한 레벨 3 설정,
이는 두 선언의 변수 수가 서로 다르다는 것을 의미합니다.
모든 크기의 배열은 하나의 변수로 간주됩니다. 반드시 오류는 아니지만,
그러나 목록 중 하나에 변수가 누락되었음을 나타낼 수도 있습니다. 참고하세요
Fortran 77 표준에 따르면 이는 명명된 COMMON 블록에 대한 오류입니다(그러나
공백이 아님 COMMON) 다른 선언의 단어 수가 다른 경우
모듈. 주어진 -흔한 2 또는 3으로 설정합니다.

오류: 심하게 형성 논리/관계 연산자 or 상수

오류: 심하게 형성 현실 상수
구문 분석기가 다음으로 시작하는 특수 단어 중 하나의 시작을 찾았습니다.
마침표(예: .EQ.)로 끝나거나 숫자 상수의 시작으로 끝나지만 그렇지 않았습니다.
그런 종류의 완전한 항목을 찾는 데 성공합니다.

오류: be 조정 크기 in 모듈 이름
별표로 표시된 크기로는 문자 변수를 선언할 수 없습니다.
더미 인수, 매개변수 또는 함수 이름이 아닌 경우 괄호
모듈에 정의되어 있습니다.

오류: be 선언 한 in 구하다 성명서 in 모듈 이름
SAVE 문에서는 지역 변수와 공통 블록만 선언할 수 있습니다.

오류: 아니 통로 성명서
ftnchek 아무 것도 없기 때문에 무시되거나 무시되는 명령문을 감지합니다.
성명서의 예측 가능한 경로. 예를 들어, 번호가 없는 진술(a
명령문 레이블이 없는 명령문), GOTO 명령문 바로 다음에 발생합니다.
도저히 실행될 수 없습니다.

오류: 구문 분석 오류
이는 Fortran 프로그램을 표현식으로 분석하는 파서가
진술 등 일부 부분에 대한 유효한 해석을 찾을 수 없습니다.
프로그램의 진술 중. 컴파일러가 구문 오류를 보고하지 않는 경우
같은 장소에서 가장 일반적인 설명은 다음과 같습니다. (1) ANSI 확장 사용
에서 인식하지 못하는 표준 Fortran ftnchek, 또는 (2) 진술서에서 요구하는 사항
그보다 더 미리 ftnchek 사용합니다(버그 섹션 참조).

참고: 이 메시지는 영향을 받은 문이 해석되지 않음을 의미합니다.
따라서 가능합니다. ftnchek다음과 같은 경우 의 후속 처리에 오류가 발생합니다.
이는 이 명령문의 영향을 받는 모든 사항(유형 선언 등)에 따라 달라집니다.

오류: 통사론 오류
이는 ``오류: 구문 분석 오류''(위 참조)와 동일합니다. 다음과 같은 경우 생성됩니다.
버전 ftnchek UNIX를 사용하여 구축되었습니다. 야크 GNU가 아닌 파서 생성기
바이슨.

식별자 어느 are 지원 유일한 in 먼저 여섯 문자들
6자보다 긴 두 개의 식별자가 서로 다르지 않음을 경고합니다.
처음 6자. 이는 이식성을 위한 것입니다. 별개의 것으로 간주되지 않을 수 있습니다.
일부 컴파일러에 의해. 에 의해 통제되는 -여섯자 옵션을 선택합니다.

휴대 불가능 용법: 논의 정확 5월 지원 be 수정 for 본래 갖추어 진 기능
내장 함수에 전달된 인수의 정밀도가 올바르지 않을 수 있습니다.
일부 컴퓨터. 명시적인 정밀도로 숫자 변수가 선언된 경우 발행됩니다.
(예: REAL*8 X)는 특정 내장 함수(예: DSQRT(X))로 전달됩니다.
에 의해 통제되는 -휴대성=혼합 크기-단어 크기.

휴대 불가능 용법: 문자 상수/변수 길이 초과 255
일부 컴파일러는 길이가 255자를 초과하는 문자열을 지원하지 않습니다.
에 의해 통제되는 -이식성=긴 문자열.

휴대 불가능 용법: 입양 부모로서의 귀하의 적합성을 결정하기 위해 미국 이민국에 이 포함되어 있습니다
ftnchek 탭을 다음 열까지 공백과 동일하게 확장합니다.
8의 배수. 일부 컴파일러는 탭을 다르게 처리하며 다음과 같은 경우도 가능합니다.
전자 메일로 전송된 파일에는 어떤 방식으로든 탭이 공백으로 변환됩니다.
따라서 탭이 포함된 파일은 컴파일된 후 올바르게 컴파일되지 않을 수 있습니다.
양도. ftnchek 탭이 주석 내에서만 나타나는 경우 이 메시지를 표시하지 않습니다.
또는 문자 상수. 에 의해 통제되는 -이식성=탭.

휴대 불가능 용법: 정수가 아닌 DO 고리 범위
이 경고는 DO 인덱스와 경계가 정수가 아닌 경우에만 제공됩니다. 사용
DO 문에 정수가 아닌 수량으로 인해 예상치 못한 오류가 발생하거나 다른 결과가 발생할 수 있습니다.
반올림 효과로 인해 서로 다른 시스템에서 결과가 나타납니다. 에 의해 통제되는
-이식성=실제.

혹시 it is an 정렬 어느 였다 지원 선언 한
이 메시지는 함수 호출 또는
인수 유형 불일치로 인해 다음과 같은 가능성이 존재합니다.
함수는 실제로 배열을 의미합니다. 프로그래머가 치수 측정을 잊어버린 경우
배열인 경우 배열에 대한 참조는 함수 호출로 해석됩니다.
문제의 이름이 EXTERNAL 또는
INTRINSIC 문. 다음에 의해 통제됨 -초심자 옵션을 선택합니다.

혹시 오도 ​​된 외관: 문자 과거 72
프로그램은 표준 값의 명령문 필드 너비로 처리되고 있습니다.
72열 중 일부이며, 72열 이후에 일부 공백이 아닌 문자가 발견되었습니다. 이 경우
ftnchek 72열 이후의 문자를 처리하지 않고 사용자에게 알리고 있습니다.
그 진술이 그것이 가지고 있는 것처럼 보이는 의미를 갖지 않을 수도 있다는 것입니다. 이것들
프로그래머는 문자를 중요하게 여기려고 의도했을 수도 있지만,
컴파일러에서는 무시됩니다. 에 의해 통제되는 -예쁘다=긴 줄.

혹시 오도 ​​된 외관: 공통의 블록 선언 한 in 배우기 보다 성명서
이러한 다중 선언은 합법적이며 다음의 연속과 동일한 효과를 갖습니다.
블록의 원래 선언. 이 경고는 두 가지 경우에만 제공됩니다.
선언은 하나 이상의 중간 문으로 구분됩니다. 에 의해 통제되는
-예쁜=여러-공통.

혹시 오도 ​​된 외관: 계속 다음 본문 or 공백
ftnchek 이 경고 메시지를 발행하여 사용자에게
문에는 주석이 삽입되어 있어 간과하기 쉽습니다. 에 의해 통제되는
-예쁘다=계속.

혹시 오도 ​​된 외관: 관계 없는 괄호
표현식에서 변수 자체를 둘러싸는 괄호에 대해 경고합니다. 언제
괄호 안에 있는 변수는 하위 프로그램에 인수로 전달되며 다음과 같이 처리됩니다.
호출된 루틴에 의해 값이 수정될 수 있는 변수가 아닌 표현식입니다.
에 의해 통제되는 -예쁜=괄호.

서브프로그램 이름: 논의 데이터 유형 불일치 at 위치 n
서브프로그램의 n-번째 실제 인수(CALL 또는 함수 사용 시)
데이터 유형이나 정밀도가 다릅니다. n-번째 더미 인수(SUBROUTINE 또는
FUNCTION 선언). 예를 들어, 사용자가 다음과 같이 하위 프로그램을 정의하는 경우
서브루틴 SUBA(X)
리얼엑스
다른 곳에서는 다음과 같이 SUBA를 호출합니다.
CALL 스바(2)
ftnchek 오류를 감지하게 됩니다. 그 이유는 숫자 2가 정수이기 때문입니다.
진짜가 아니야. 사용자가 작성했어야 합니다.
콜스바(2.0)

서브 프로그램인 인수를 확인할 때, ftnchek 결정할 수 있어야 한다
그것이 함수이든 서브루틴이든. 사용되는 규칙 ftnchek 이것을 하기 위해서는
다음과 같습니다. 서브프로그램이 실제 인수로 전달되는 것 외에도
동일한 모듈의 다른 곳에서 직접 호출되면 해당 유형은 해당 모듈에 의해 결정됩니다.
용법. 그렇지 않은 경우 하위 프로그램 이름이 명시적으로 나타나지 않으면
유형 선언은 서브루틴으로 간주됩니다. 명시적으로 입력된 경우
함수로 받아들여졌습니다. 따라서 실제 인수로 전달된 서브루틴에는 다음 사항만 필요합니다.
호출 모듈의 EXTERNAL 문에 의해 선언되는 반면, 함수는 다음과 같아야 합니다.
이 오류 메시지가 생성되지 않도록 하려면 명시적으로 입력해야 합니다.
에 의해 통제되는 -인수 환경.

서브프로그램 이름: 논의 배열성 불일치 at 위치 n
앞의 상황과 유사하지만 서브프로그램 더미 인수는 다음과 다릅니다.
차원 수 또는 차원 수로 해당 실제 인수
강요. 에 의해 통제되는 -정렬 와 함께 -인수 설정.

서브프로그램 이름: 논의 불일치 at 위치 n
문자 더미 인수가 해당 실제 인수보다 크거나
Hollerith 더미 인수가 해당 실제 인수보다 큽니다.
에 의해 통제되는 -인수 환경.

서브프로그램 이름: 논의 용법 불일치
ftnchek 하위 프로그램이 인수를 사용하는 방식 사이의 충돌 가능성을 감지합니다.
인수가 하위 프로그램에 제공되는 방식입니다. 갈등은 수
아래에 설명된 대로 두 가지 유형 중 하나여야 합니다.

더미 아르헨티나 is 수정, 실제 아르헨티나 is const를 or 특급
더미 인수는 SUBROUTINE 또는 FUNCTION 문에 명명된 인수이며
서브프로그램 내에서 사용됩니다. 실제 인수는 a에 전달되는 인수입니다.
호출자에 의한 서브루틴 또는 함수. ftnchek 더미 논쟁이 있다고 말하고 있습니다.
서브프로그램에 의해 수정되며, 이는 호출 시 해당 값이 변경됨을 의미합니다.
기준 치수. 해당 실제 인수는 상수나 표현식이 아니어야 합니다.
오히려 합법적으로 할당할 수 있는 변수나 배열 요소입니다.
다음에 의해 통제됨 -usage=arg-const-수정됨 옵션을 선택합니다.

더미 아르헨티나 익숙한 전에 세트, 실제 아르헨티나 지원 세트
여기서는 값이 할당되기 전에 서브프로그램에서 더미 인수를 사용할 수 있습니다.
서브프로그램에 의해 그것에. 해당 실제 인수에는 값이 있어야 합니다.
서브프로그램을 호출하기 전에 호출자가 이를 할당합니다. 다음에 의해 통제됨
-사용=var-초기화되지 않음 옵션을 선택합니다.

이 경고는 다음의 영향을 받지 않습니다. -인수 환경.

서브프로그램 이름 호출 일관성 없이
여기서 불일치는 사용된 서브 프로그램 자체의 데이터 유형과
한정된. 예를 들어, 사용자가 선언하는 경우
정수 함수 개수(A)
다음과 같이 다른 모듈에서 COUNT를 호출합니다.
N = 개수(A)
데이터 유형을 선언하지 않으면 기본적으로 첫 번째 유형을 기반으로 실제 유형이 사용됩니다.
그 이름의 편지. 호출 모듈에는 선언이 포함되어 있어야 합니다.
정수 개수

주어진 -인수 2 또는 3으로 설정합니다.

서브프로그램 이름: 변화 길이 논의 기울기:
더미 인수(매개변수) 개수에 불일치가 발견되었습니다.
하위 프로그램에는 호출 시 제공되는 실제 인수의 개수가 있습니다.
ftnchek 하위 프로그램(CALL 문 및
함수를 사용한 표현식)을 함수의 정의와 비교합니다.
소스 코드의 다른 곳에 있는 하위 프로그램. Fortran 컴파일러는 일반적으로
이런 유형의 오류를 잡아보세요. 주어진 -인수 1 또는 3으로 설정합니다.

변하기 쉬운 지원 선언했다. 타입 암묵적으로 한정된
모듈의 기호 테이블을 인쇄할 때, ftnchek 모두 별표로 표시됩니다.
명시적으로 유형이 지정되지 않은 식별자이며 해당 데이터 유형을 표시합니다.
암시적 타이핑을 통해 할당됩니다. 이는 다음을 원하는 사용자에게 지원을 제공합니다.
Pascal이나 다른 언어에서 요구되는 대로 모든 변수를 선언합니다. 이것
메시지는 다음과 같은 경우에만 나타납니다. -심탭 옵션이 적용됩니다. 또는
-선언하다 선언되지 않은 모든 변수의 목록을 얻으려면 플래그를 지정하십시오.

변수 선언 한 비자 면제 프로그램에 해당하는 국가의 시민권을 가지고 있지만 참조 된
프로그램에서 선언되었지만 한 번도 사용되지 않은 식별자를 검색합니다.
값을 할당하거나 해당 값에 액세스할 수 있습니다. COMMON의 변수
제외됩니다. 다음에 의해 통제됨 -usage=var-미사용 옵션을 선택합니다.

변수 세트 비자 면제 프로그램에 해당하는 국가의 시민권을 가지고 있지만 익숙한
ftnchek 변수에 값이 할당되면 사용자에게 알립니다.
변수는 프로그램에서 달리 사용되지 않습니다. 일반적으로 이는 다음으로 인해 발생합니다.
감시. 다음에 의해 통제됨 -usage=var-set-미사용 옵션을 선택합니다.

변수 익숙한 전에 세트
이 메시지는 식별자가 해당 값 이전의 값을 계산하는 데 사용됨을 나타냅니다.
초기화. 이러한 사용으로 인해 잘못된 값이 계산될 수 있습니다.
초기값은 제어되지 않습니다. 다음에 의해 통제됨 -사용=var-초기화되지 않음
옵션을 선택합니다.

변수 5월 be 익숙한 전에 세트
다음을 제외하면 설정 전 사용과 유사합니다. ftnchek 상태를 확인할 수 없습니다.
확실하게. ftnchek 첫 번째 변수가 설정되기 전에 변수가 사용될 수 있다고 가정합니다.
변수의 사용은 프로그램 텍스트에서 해당 할당 이전에 발생합니다.
다음에 의해 통제됨 -사용=var-초기화되지 않음 옵션을 선택합니다.

경고: DO 색인 is 지원 정수
이 경고는 DO 범위가 정수일 때만 제공되지만 DO 인덱스는 정수가 아닙니다.
이는 인덱스를 정수로 선언하지 못했음을 나타낼 수 있습니다. 에 의해 통제되는
-잘림=실제 옵션을 선택합니다.

경고: 정수 특급 ... 변환 현실
두 정수의 몫은 정수 유형의 결과를 낳습니다.
소수 부분이 삭제됩니다. 나누기와 관련된 정수 표현식이 다음과 같은 경우
나중에 실제 데이터 유형으로 변환되면 실제 유형 분할이 수행되었을 수 있습니다.
예정된. 에 의해 통제되는 -잘림=int-div-real 옵션을 선택합니다.

경고: 정수 특급 ... 익숙한 in 멱지수
두 정수의 몫은 정수 유형의 결과를 낳습니다.
소수 부분이 삭제됩니다. 이러한 정수 표현식을 지수로 사용하면
실제 유형 구분이 의도되었을 가능성이 높습니다. 에 의해 통제되는
-잘림=int-div-지수 옵션을 선택합니다.

경고: 이름 지원 세트 언제 RETURN 마주 친
Fortran의 함수가 값을 반환하는 방식은 값을
함수의 이름. 이 메시지는 해당 기능이 할당되지 않았음을 나타냅니다.
RETURN 문이 발견된 지점 이전의 값입니다. 그러므로 그것은
함수가 정의되지 않은 값을 반환할 수도 있습니다.

경고: 비표준 통사론: 조정 크기 be 연결된 여기에서 지금 확인해 보세요.
Fortran 77 표준(6.2.2절)에서는 문자 변수 연결을 금지합니다.
할당 문을 제외하고 크기는 괄호 안에 별표로 표시됩니다.
에 의해 통제되는 -f77=혼합 표현식.

경고: 비표준 구문 : 상당한 문자 과거 72
이 경고는 다음과 같이 제공됩니다. -f77=긴 줄 설정하는 경우 -열 설정에는
명령문 필드 너비를 늘리는 데 사용되었으며 명령문에는 의미가 있습니다.
열 72를 넘어서는 프로그램 텍스트. 표준 포트란은 해당 열의 모든 텍스트를 무시합니다.
그러나 일부 컴파일러는 그렇지 않습니다. 따라서 프로그램은 다음과 같이 다르게 취급될 수 있습니다.
다른 컴파일러.

경고: 비표준 구문 : 성명서 아웃 of 주문.
ftnchek ANSI에 지정된 순서를 벗어난 명령문을 감지합니다.
표준 Fortran 77. 표 1은 다음에서 허용되는 명령문 순서를 보여줍니다.
포트란 언어. 그럼에도 불구하고 순서가 잘못된 진술은 다음에 의해 해석됩니다.
ftnchek, 오류 메시지의 '연속'을 방지합니다. 시퀀스 카운터도
유사한 블록에 대한 오류 메시지가 반복되는 것을 방지하기 위해 롤백되었습니다.
진술. 다음에 의해 통제됨 -f77=명령문 순서 옵션을 선택합니다.

-------------------------------------------------- ------
| | 절대적인
| 매개변수 |---------
| | 다른 사양
형식 |---------------|-------
그리고 | | 명령문 기능
입장 | 데이터 |----------------------
| | 실행 가능
-------------------------------------------------- ------

표 1

경고: 가능한 분할 by 제로
이 메시지는 나누기가 완료될 때마다 인쇄됩니다(나누기에 의한 나누기는 제외).
끊임없는). 이를 사용하면 문제가 없는 런타임 분할을 찾는 데 도움이 됩니다. 통제됨
by -분할 옵션을 선택합니다.

경고: 현실 잘린 정수
ftnchek 에서 실제 표현식이 포함된 할당문을 감지했습니다.
오른쪽에는 정수 변수가 있지만 왼쪽에는 정수 변수가 있습니다. 실제 가치의 분수 부분
잃게 될 것이다. 다음을 사용하여 실수 표현식을 정수로 명시적으로 변환하는 경우
INT 또는 NINT 내장 함수의 경우 경고가 인쇄되지 않습니다. 비슷한 메시지는 다음과 같습니다.
배정밀도 표현식이 단정밀도에 할당된 경우 인쇄됩니다.
변수 등에 의해 제어됩니다. -잘림=강등 옵션을 선택합니다.

경고: 아래 첨자 is 지원 정수
배열 첨자는 일반적으로 정수 수량이므로 정수가 아닌 문자를 사용하면
여기서 표현식은 오류를 나타낼 수 있습니다. 에 의해 통제되는 -잘림=실제 첨자
옵션을 선택합니다.

경고: 알 수 없는 본래 갖추어 진 기능
이 메시지는 INTLINSIC 문에 선언된 이름이 다음과 같음을 사용자에게 경고합니다.
~에게 알려지지 않은 ftnchek. 아마도 이는 비표준 내장 함수일 것입니다.
프로그램은 이식성이 없습니다. 함수는 다음과 같이 처리됩니다. ftnchek 사용자로서-
정의된 기능. 이 경고는 영향을 미치기 때문에 어떤 옵션으로도 표시되지 않습니다.
ftnchek프로그램 분석입니다. 그러나 내장 함수가 다음 중 하나에 있는 경우
지원되는 비표준 내장 함수 세트를 사용하려면 -본질적 설정을
원인 ftnchek 그것을 인식하는 것.

제한 사항 확장


ftnchek 몇 가지 사소한 제한 사항과 수많은 제한 사항이 있는 ANSI 표준 Fortran-77 프로그램을 허용합니다.
일반적인 확장.

제한 사항:
명령문 함수의 더미 인수는 일반 변수처럼 처리됩니다.
프로그램. 즉, 해당 범위는 명령문뿐만 아니라 전체 하위 프로그램입니다.
기능 정의.

FORMAT 문 검사가 느슨하여 구분 기호 누락(쉼표,
등) 표준에서 요구하는 형식 설명자 사이
.d 설명자에 있어서는 안 되는 필드입니다. 아래에 경고가 표시됩니다.
-f77=형식-편집-설명 비표준 설명자 유형(예: O)에 대해 지원됩니다.
확장.

몇 가지 구문 확장과 Fortran 90 요소가 있습니다. ftnchek 받아 들인다
하지만 검사는 거의 하지 않습니다. 예를 들어, 포인터 사용(
비표준 Cray 구문 또는 Fortran 90 구문)은 세트 외에는 확인되지 않습니다.
그리고 사용상태입니다. 언젠가는 좀 더 철저한 점검이 이루어지길 바랍니다.
구현되었지만 현재 사용자는 이러한 구문의 수용을 고려해야 합니다.
기능은 단순히 코드의 다른 측면을 확인할 수 있도록 편의를 제공하기 위한 것입니다.
그것들을 포함하고 있습니다. 어떤 기능이 있는지에 대한 자세한 내용은 확장 섹션을 참조하세요.
승인되었지만 완전히 확인되지 않았습니다.

사용자 제공 서브프로그램의 이름이 비표준 내장 서브프로그램 중 하나와 동일한 경우
에 의해 인식되는 기능 ftnchek의 경우 EXTERNAL 문에서 선언해야 합니다.
이를 호출하는 모든 루틴. 그렇지 않으면 일반적으로 검사를 받게 됩니다.
내장 함수에 제공됩니다. 비표준 내장 함수는 그렇지 않기 때문에
표준에서는 Fortran 77 표준에 이 EXTERNAL 문이 필요하지 않습니다.
사용법 - -본질적=없음 설정, 대부분의 비표준 내장 함수 인식
(이중 복합 데이터 유형을 지원하는 데 필요한 것만 제외)
끄다. 아래에서 지원되는 비표준 내장 함수 목록을 참조하세요.
토론 -본질적 위의 설정.

확장:
이러한 모든 확장명(소문자 제외)은 다음과 같은 경우 경고를 생성합니다.
관련 -f77 옵션이 설정되었습니다. 아래 나열된 확장 중 일부는 다음의 일부입니다.
포트란-90 표준. 이는 표기법(F90)으로 표시됩니다.

탭이 허용되며 탭에 해당하는 동등한 공백으로 변환됩니다.
8열마다 중지됩니다. 표준에서는 탭을 인식하지 않습니다. 일부는 참고하세요
컴파일러는 탭을 허용하지만 다르게 처리합니다. DEC에 대해 정의된 처리
FORTRAN은 다음을 사용하여 얻을 수 있습니다. -소스=dec-탭 환경.

문자열은 따옴표나 아포스트로피로 구분할 수 있습니다. 두 개의 시퀀스
구분 문자는 포함된 단일 구분 문자로 해석됩니다.
(F90)

문자열에는 UNIX 스타일 백슬래시 이스케이프 시퀀스가 ​​포함될 수 있습니다. 그들은 될 것이다
다음과 같은 경우로 해석됩니다. -source=unix-백슬래시 설정이 주어집니다. 그렇지 않으면
백슬래시 문자는 일반 인쇄 문자로 처리됩니다.

소스 코드는 Fortran 90 무료 형식 또는 기존 고정 형식일 수 있습니다.
(F90)

명령문 구분 기호로 세미콜론이 허용됩니다. (F90)

소문자는 허용되며 내부적으로 대문자로 변환됩니다.
문자열을 제외하고. 표준은 다음을 제외하고 대문자만 지정합니다.
주석과 문자열. (F90)

Fortran 77 표준에 따라 Hollerith 상수가 허용됩니다.
부록 C. 표현식에 사용하거나 데이터 유형과 혼동해서는 안 됩니다.
성격.

열 1의 문자 'D'(대문자 또는 소문자)는 문자의 시작으로 처리됩니다.
논평. 이러한 줄을 주석 대신 명령문으로 처리할 수 있는 옵션은 없습니다.

다음 설정에 따라 명령문은 72열보다 길어질 수 있습니다. -열 였다
한도를 늘리는 데 사용됩니다. 표준에 따르면 73열의 모든 텍스트는
80부터 80까지는 무시되며 행은 XNUMX열보다 길 수 없습니다.

변수 이름은 XNUMX자를 초과할 수 있습니다. 표준에서는 XNUMX을 다음과 같이 지정합니다.
최대. ftnchek 최대 31자 길이의 이름을 허용합니다(F90).

변수 이름에는 밑줄과 달러 기호(또는 기타 알파벳이 아닌 문자)가 포함될 수 있습니다.
에 의해 지정된 문자 -식별자-문자 옵션). 이 캐릭터들은
알파벳 문자와 동일하게 취급됩니다. 시작하는 변수의 기본 유형
이 문자를 사용하면 진짜입니다. IMPLICIT 유형 문에서 다음 범위를 지정합니다.
문자의 경우 달러 기호는 Z 다음에 밑줄이 옵니다. (다른 어떤
사용자 정의 문자는 달러 기호와 동일하게 처리됩니다.) Fortran 90
변수 이름에 밑줄을 허용합니다.

UNIX 버전에서는 전처리기 지시문, 즉 행의 존재를 허용합니다.
파운드 기호(#)로 시작합니다. #line을 제외하고는 주석으로 처리됩니다.
해석되어 행 번호와 소스를 설정하는 데 사용되는 지시문
경고 및 오류 메시지의 파일 이름입니다. #include 지시어는 그렇지 않습니다.
에 의해 처리 ftnchek. 소스 파일을 포함하기 위해 이를 사용하는 프로그램은 다음과 같아야 합니다.
입력되기 전에 전처리기를 통과함 ftnchek. 아래에서 언급했듯이,
ftnchek 구문이 다른 INCLUDE 문을 처리합니다. 안
선택 프로그램, ftnpp(1L) (별도 구매 가능)은 다음과 같은 전처리 기능을 제공합니다.
INCLUDE 파일을 올바르게 처리합니다.

Fortran 90 DO ... ENDDO 제어 구조가 허용됩니다. 사이클과 EXIT
진술이 허용됩니다. 이들 모두에는 선택적 do-construct 이름이 있을 수 있지만
구성 이름의 일관성이 확인되지 않습니다. (F90)

Fortran 90 SELECT CASE 구문이 허용됩니다. (F90)

구성 이름은 IF, THEN, ELSE, ENDIF 및 SELECT CASE에서도 허용됩니다.
진술. (F90)

ACCEPT 및 TYPE문(터미널 I/O용)은 동일하게 허용됩니다.
PRINT로서의 구문.

소위 ``Cray 포인터'' 구문이 허용됩니다. 그것은
포트란 90 포인터 문. 다른 진술에 대한 실제 확인은 없습니다.
기본 구문보다 이 진술의 형식은 다음과 같습니다.
포인터(포인터, 뾰족한) [,(포인터, 뾰족한)]
포인터 변수에는 INTEGER *4의 데이터 유형이 할당됩니다. 사용량 확인
pointee 변수는 실제로 간접적으로 접근되기 때문에 억제됩니다.
포인터를 통해.

다음 Fortran 90 포인터 관련 구문이 허용됩니다: ALLOCATABLE,
POINTER 및 TARGET 문과 유형 선언의 동일한 속성
ALLOCATE, DEALLOCATE 및 NULLIFY 실행문. 포인터 할당을 사용하여
=> 연산자; 그리고 내장 함수 ALLOCATED 및 ASSOCIATED. 작은 의미
포인터 변수 및 연산에 대한 확인은 기본 설정 이상으로 수행되어 사용됩니다.
상태. 예를 들어, 매달린 포인터와 같은 오류를 검사하지 않습니다.
또는 할당되지 않은 배열을 사용합니다.

명령문에는 연속 줄이 여러 개 있을 수 있습니다. 포트란 77과 포트란
90개 표준에서는 고정 소스 형식으로 최대 19개를 허용합니다. 포트란 90 표준
무료 소스 형식으로 최대 39개를 허용합니다.

구두점으로 구성된 관계형(비교) 연산자: < <= == /= > >=
허용됩니다. (F90)

느낌표로 시작하는 인라인 주석이 허용됩니다. (F90)

NAMELIST I/O가 지원됩니다. 구문은 Fortran 90과 동일합니다.

FORMAT 문에는 캐리지 금지를 나타내는 달러 기호가 포함될 수 있습니다.
반품. 꺾쇠 괄호로 묶인 정수 표현식은 어디에서나 사용할 수 있습니다.
Fortran 77 표준에서 정수 상수를 허용하는 FORMAT 문(예외
Hollerith 상수의 길이), 반복에 대한 런타임 값을 제공합니다.
사양 또는 필드 너비.

비표준 키워드는 VMS의 키워드에 해당하는 I/O 문에서 허용됩니다.
포트란.

IMPLICIT NONE 문이 지원됩니다. 이 진술의 의미는 다음과 같습니다.
모든 변수에는 명시적으로 선언된 데이터 유형이 있어야 합니다. 플래그를 지정하는 것보다
구문 오류 메시지와 함께 이러한 변수가 발생하는 경우 ftnchek 까지 기다립니다
모듈의 끝을 확인한 다음 선언되지 않은 모든 변수 목록을 인쇄합니다.
위해 않습니다 -선언하다 옵션. (F90)

데이터 유형 INTEGER, REAL, COMPLEX 및 LOGICAL은 선택 사항을 가질 수 있습니다.
유형 선언의 정밀도 사양. 예를 들어 REAL*8은 8바이트를 의미합니다.
부동 소수점 데이터 유형. REAL*8 데이터 유형이 반드시 고려되는 것은 아닙니다.
DOUBLE PRECISION과 동일합니다. -단어 크기 환경. 포트란 77
표준에서는 CHARACTER 데이터에 대해서만 길이 지정을 허용합니다.

ftnchek 복소수에 대한 DOUBLE COMPLEX 유형 사양을 지원합니다.
실수부와 허수부는 배정밀도입니다. 포함된 혼합 모드 연산
배정밀도 실제 데이터가 포함된 단정밀도 복합물, 다음에서 금지됨
표준은 이중 복소수 결과를 산출합니다.

결합된 유형 선언과 데이터 문과 유사한 초기화가 허용됩니다.
이는 표준 Fortran 77 유형 선언 형식을 가지며 그 뒤에 슬래시가 옵니다.
DATA 문에 사용되는 것과 같은 구분된 상수 목록입니다. 의 예
구문은
정수 N / 100 /
이 멍청한 초기화 선언 형식은 Fortran 90에서는 채택되지 않았습니다.
선언은 아래 설명된 표준 형식을 사용하여 작성되어야 합니다.
~에게 인정 받다 ftnchek.

Fortran 90 속성 기반 유형 선언에 대한 지원은 제한되어 있습니다. 이것
선언 스타일은 두 개의 콜론(::)을 사용하여 구별됩니다.
속성 목록과 선언된 변수 목록입니다. 지원되는 기능은 다음과 같습니다.
초보 프로그래머에게는 적합하지만 아직 전문적인 프로그래머에게는 충분하지 않습니다.
고품질 Fortran 90 프로그램. 앞으로 더 많은 기능에 대한 지원을 추가하고 싶습니다.
릴리스. 나는 이 일을 도울 자원봉사자들을 초대합니다. ToDo 파일을 참조하세요.
자세한 내용은 소스 코드 배포를 참조하세요. 현재 허용되는 속성은 다음과 같습니다.
모든 일반적인 데이터 유형은 DIMENSION, EXTERNAL, INTRINSIC, PARAMETER 및 SAVE입니다.
새로운 형태의 선언을 통해 변수에 값을 할당할 수도 있습니다.
선언했다. 현재 (LEN=값) 문자 길이를 지정하는 형식도
받아들여졌습니다. 종류 사양, 다음을 사용(KIND=값) 구문 분석되지만 그렇지 않습니다.
처리됨: 모든 종류가 기본 종류로 처리됩니다. 또한 점검이 거의 없습니다.
기본 구문을 넘어서는 이러한 선언.

일반적으로 발견되는 비표준 내장 함수가 많이 제공됩니다. 참조
토론 -본질적 기능 목록과 해당 기능을 제어하는 ​​방법은
인식.

배열을 취하는 비표준 내장 함수의 경우 인수 검사가 엄격하지 않습니다.
혼합 인수 유형.

ftnchek INCLUDE 문을 허용합니다. 이는 다음의 텍스트를 포함시킵니다.
주어진 파일. 구문은 다음과 같습니다
포함하다 '파일 이름'
이는 Fortran 90과 호환됩니다. -소스=vms-include 옵션이 주어지고,
ftnchek 이 명령문과 관련하여 VMS 규칙을 따릅니다.
기본 확장자 .을위한 파일 이름 확장자가 지정되지 않은 경우
포함된 목록을 제어하기 위해 파일 이름 뒤에 한정자 /[NO]LIST
파일. VMS 텍스트 모듈 포함은 지원되지 않습니다.

포함 파일에 포함된 항목과 관련된 진단 출력에서
오류는 포함 파일의 위치와
파일이 포함된 상위 파일입니다.

ftnchek 괄호가 없는 PARAMETER 문을 허용합니다. 이들은 경고를 받을 것이다
만약에 대해 -f77=파람-노파렌 플래그가 주어집니다.

ftnchek 내장 함수와 관련된 PARAMETER 정의를 허용합니다.
정수가 아닌 지수에 의한 지수. 이 두 가지 경우 모두 금지되어 있습니다.
Fortran 77 Standard에 대해 경고를 받게 됩니다. -f77=매개변수 내장 플래그
주어진다. 내장 함수 값이 컴파일 타임 정수 상수인 경우
ftnchek 평가할 것입니다. 이를 통해 매개변수가 다음에서 사용되는지 더 잘 확인할 수 있습니다.
배열 크기 선언. Fortran 90은 PARAMETER의 내장 기능을 허용합니다.
정의.

평가되는 내장 기능은 다음과 같습니다.

ABS IABS 희미한 IDIM MAX
MAX0 MIN MIN0 MOD 기호
ISIGN LEN ICHAR 인덱스

정수 인수의 함수는 인수가 정수인 경우에만 평가됩니다.
끊임없는 표현. (여기에는 정수 상수, 매개변수 및
내장 함수를 평가했습니다.) LEN 함수는 인수가 다음과 같은 경우 평가됩니다.
문자 상수와 길이가 아닌 변수만 포함하는 표현식
조절할 수 있는. ICHAR 및 INDEX 함수는 인수가 다음과 같은 경우에만 평가됩니다.
문자 상수. ftnchek 일부 값이 필요한 경우 경고를 표시합니다.
평가되지 않는 내장 함수.

현재 STYLE


버전 3.2에서 버전 3.3으로 변경된 사항은 다음과 같습니다.

1. 무제한 미리보기를 위해 프런트엔드를 다시 작성하여 오랜 버그를 제거했습니다.
모호성이 해결되지 않은 진술에 대한 잘못된 해석을 초래한
첫 번째 줄.

2. 그만큼 -mkhtml 옵션은 이제 MS-DOS 버전에서 사용할 수 있습니다.

3. Fortran 90 포인터 관련 구문에 대한 지원 추가: ALLOCATE, DEALLOCATE 및 NULLIFY
진술; 유형 선언의 ALLOCATABLE, POINTER 및 TARGET 속성; 그만큼
포인터 할당 연산자 => 및 내장 함수 ALLOCATED 및 ASSOCIATED; 그리고
지연된 형태의 배열 선언. 현재 이러한 새로운 구문 기능이 허용됩니다.
하지만 제대로 확인되지 않았습니다. 이 기능은 Robert Landrito가 추가했습니다.

4. 그만큼 -f77-f90 포인터 ``Cray 포인터''에 대한 경고를 제어하는 ​​옵션이 추가되었습니다.
이름이 크레이 포인터. 그만큼 -f77=포인터 이제 옵션이 다음에 대한 경고를 제어합니다.
Fortran 90 포인터 관련 구문이 포함된 코드입니다.

5. 재구현 -mkhtml 이제 다음을 포함하는 소스 파일에서 처리 속도가 훨씬 빨라졌습니다.
많은 루틴.

6. 더 이상 수정할 필요가 없도록 테스트 디렉토리의 배열을 변경했습니다.
테스트 스위트를 실행하기 위한 배포판(체크.박쥐) MS-DOS에서.

7. 단축된 이름을 설정할 때 명령줄에서 숫자 설정을 읽는 버그가 수정되었습니다.
3 자

8. 레이블이 지정된 END 문을 참조하는 GOTO에 대해 잘못된 경고를 유발하는 버그가 수정되었습니다.
END 앞의 명령문이 FORMAT인 경우.

9. 새로운 깃발 -f77=문자 Fortran 77 확장에 대한 경고를 제어합니다.
문자 데이터 유형. 이 새로운 플래그와 함께 Fortran 90 규칙에 대한 지원이 제공됩니다.
XNUMX 또는 음수 길이로 평가되는 문자 변수 선언
음수 길이 값을 XNUMX으로 처리합니다.

10. 마지막 END 문 다음에 주석과 빈 줄이 인쇄되는 사소한 버그가 수정되었습니다.
in -명부 방법.

onworks.net 서비스를 사용하여 온라인으로 ftnchek 사용



최신 Linux 및 Windows 온라인 프로그램