포트란 77(FORTRAN 77)은 과학 기술 계산과 수식 연산에 특화된 언어인 만큼, 메모리에 숫자를 어떤 형태로 담을지 결정하는 데이터 타입(Type) 분류가 매우 명확함. 소스코드가 시작되는 7번째 칸 규칙 안에서 변수의 종류를 정의하는 문법 체계를 알아본다.
🟦 1. 포트란 77의 핵심 3대 데이터 타입
- INTEGER (정수형)
- 소수점이 없는 정수(예: 10, -500, 0)를 저장하는 공간임. 기본 4바이트 크기를 가짐.
- REAL (실수형)
- 소수점이 포함된 정밀한 실수(예: 3.14159, -0.005)를 저장하는 공간임. 과학 연산의 기본이 되는 타입이다.
- CHARACTER (문자형)
- 글자나 문장을 저장하는 공간임. 코볼의 PIC X(자릿수)처럼 포트란은 CHARACTER*자릿수 형태로 변수의 크기를 지정하는 문법을 사용함.
🟪 2. 변수 타입별 선언과 값 매핑 실전 fortran code
아래 코드는 포트란 프로그램 상단 선언부(Specification)에서 변수 타입을 지정하고, 실행부(Execution)에서 데이터를 가공하는 실제 코딩 사례와 해석 주석임.
fortran code
12345678901234567890123456789012345678901234567890123456789012345678901234567890
C =================================================================
C [선언부 시작] 모든 변수 선언은 실행 명령어보다 무조건 위에 선언함 (7칸)
C =================================================================
PROGRAM TYPE_MASTER
* [정수형 선언] 학번이나 인덱스용 정수 변수 2개를 동시에 선언함
INTEGER STUDID, COUNT
* [실수형 선언] 과학 연산이나 정밀 소수점 처리를 위한 실수 변수 선언
REAL AVGVAL, WEIGHT
* [문자형 선언] 별표(*) 뒤에 숫자를 적어 문자열의 바이트 크기를 지정함
CHARACTER*10 STUNAM
* -> 코볼의 '05 STUNAM PIC X(10).'과 완벽히 동일한 10바이트 문자 변수임
C =================================================================
C [실행부 시작] 7번째 칸 정렬 선에 맞춰 데이터를 매핑하고 연산함
C =================================================================
* [정수 값 대입] 정수형 변수에는 소수점 없는 깔끔한 숫자를 매핑해야 함
STUDID = 20261
COUNT = 5
* [실수 값 대입] 실수형 변수에는 명시적으로 소수점(.)을 찍어 상수를 대입함
AVGVAL = 88.33
WEIGHT = 72.0
* [문자 값 대입] 문자열 상수는 반드시 작은따옴표(' ')로 감싸서 대입함
STUNAM = 'HONG-GILDON'
* -----------------------------------------------------------------
* [데이터 출력] PRINT 구문을 이용해 할당된 데이터를 화면에 표출함
* -----------------------------------------------------------------
PRINT *, '--- STUDENT DATA TYPE REPORT ---'
PRINT *, 'ID : ', STUDID
PRINT *, 'NAME : ', STUNAM
PRINT *, 'AVERAGE: ', AVGVAL
STOP
END
💡 [실무 팁] 포트란 77의 아주 독특한 암묵적 선언 규칙 (Implicit Rule)
포트란 77에는 다른 현대 프로그래밍 언어에서는 찾아볼 수 없는 전설적인 암묵적 변수 타입 지정 규칙이 존재함. 이를 모르면 대형 로직 버그가 발생할 수 있음.
- 마법의 알파벳 I, J, K, L, M, N 규칙
- 포트란 77에서는 프로그램 상단에 INTEGER나 REAL 같은 타입을 명시적으로 적지 않더라도, 변수 이름의 첫 글자가 무엇이냐에 따라 컴파일러가 타입을 자동으로 강제 지정함.
- 변수명의 첫 글자가 I, J, K, L, M, N으로 시작하면 ➡️ 선언문이 없어도 무조건 정수형(INTEGER) 변수가 됨.
- 그 외의 알파벳(A~H, O~Z)으로 시작하면 ➡️ 선언문이 없어도 무조건 실수형(REAL) 변수가 됨.
- 묵시적 선언을 끄는 실무 표준 키워드 (IMPLICIT NONE)
- 예를 들어 개발자가 오타로 인해 COUNT 대신 ACOUNT라고 적어버리면, 첫 글자가 A이기 때문에 나도 모르는 사이에 실수형 변수가 새로 생성되어 엉뚱한 연산 오류가 터짐.
- 이 대참사를 막기 위해 현업 포트란 실무 코딩에서는 프로그램 이름 바로 아래에 IMPLICIT NONE 이라는 키워드를 박아 넣어 "자동 선언 기능을 끄고 모든 변수를 무조건 수동 선언하겠다"고 강제 유도하는 것이 중요하다.
'프로그래밍 > Fortran 77' 카테고리의 다른 글
| [FORTRAN 기초] 5편: 조건문(IF ~ THEN ~ ENDIF)으로 합격/불합격 판별하기 fortran code (0) | 2026.06.22 |
|---|---|
| [FORTRAN 기초] 4편: 사칙연산과 출력 포맷(FORMAT) 정의 실전 fortran code (0) | 2026.06.22 |
| [FORTRAN 기초] 2편: 가로 80칸 칼럼 구조와 영역별 문법 배치 실전 가이드 (0) | 2026.06.22 |
| [FORTRAN 기초] 1편: 예약어, 기본어, 변수 및 상수 개념과 문법 분류 총정리 (0) | 2026.06.22 |
| (FORTRAN 기초) 포트란 문법 및 엄격한 칼럼 규칙 총정리 (0) | 2026.06.22 |