서브프로그램들은 모두 위의 MS Visual Fortran Professional 5.0을 사용하여 만든 것이며, Professional에는 IMSL(R) Fortran 90 MP Library Version 3.0을 포함하므로, IMSL도 다수 사용했다는 것을 미리 밝혀 둔다. Fortran 77의 언어와 함께 주로 Fortran 90의 언어를 혼용해서 작성했으며 편집은 Free Format을 사용했다.
    On-Line 설명서는 Compaq의 홈페이지에 있는 http://www.compaq.com/fortran/docs/ 에 있다.

 

     Programs were made by using 'MS Visual Fortran Professional 5.0' having 'IMSL(R) Fortran 90 MP Library Version 3.0', and were encoded in free format using Fortran 77 and Fortran 90 language.
    You can also use  a "Compaq Fortran Documentation Online" in the Compaq web address;
http://www.compaq.com/fortran/docs/

 

Run.zip

Sends a command to the shell as if it had been typed at the command line.

포트란 프로그램의 실행 중 외부의 명령어를 실행하고자 할 때 사용. (참고, Visual Basic에서 "Shall"이란 명령어, Mathematica에서 "Run"이란 명령어와 유사)

Character.zip

1. Plus operation of characters.
2. Change a character into a number and vice versa.
3. Scans a string for any one of the characters in a specified character set.

1. 문자간의 덧샘연산을 해주는 방법

2. 문자 <-> 숫자, 문자 속에 숫자가 있을 때 그것을 숫자로 돌리는 것과 그 역의 방법을 보여준다.

3. 문자속의 특정 문자의 위치를 구한다.

MatrixMultiply.zip

1.MATMUL : Performs matrix multiplication on integer, real, complex, or logical matrices.
2. SORTQQ : Sorts a one-dimensional array. The array elements cannot be derived types or record structures.
3. SUM : Sums elements of an array or the elements along an optional dimension. The elements summed can be selected by an optional mask.

1. 행렬의 곱셈

2. 1차원 행렬(벡터)의 원소를 순서대로 나열, 즉 sorting

3. 행렬(LIST)의 원소들의 합.

Coriolis.zip

Coriolis.doc

Coriolis Acceleration.

코리올리 가속도에 대한 예.

Bspline.zip

B-spline; Fitting.

B-Spline; 보간법.

Icon.zip

Example for addition of ICON to Fortran executable file.

포트란의 실행파일에 아이콘을 붙이는 것에 대한 예.

Plus.zip

This program tests an available limit of integer number of Fortran. Result from it shows that the limit is from 2.147451E+9 to  -2.147451E+9.

포트란 이외의 컴파일러에서는 어떠한지 잘 모르겠으나, 포트란에서 정수의 한계가 어떠한지를 조사하는 프로그램으로, 단순히 정수를 차례로 덧샘을 하면서 그 결과가 어떻게 되는가를 조사하는 프로그램이다.

1에서 65535까지 더한값 2.147451E+9에서 65536를 더하면 갑자기 -2.147451E+9이 튀어나오는 현상을 보인다. 이것이 포트란이 인식할 수 있는 정수의 한계라고 할 수 있다.

LinearSystem

This can be used in solving a determined problem of Linear Equation (Matrix) by using one of following methods; Cholesky, QR decomposition or SVD (Singular Value Decomposition)

선형 방정식(Matrix)을 푸는 풀이법으로 아래에도 Normal_QR_SVD.zip이 있지만, 이 프로그램은 Determined Problem의 예를 들어 Cholesky, QR decomposition과 SVD(Singular Value Decomposition)을 이용해서 푼다.

Allocate.zip

Example for command 'allocatable', 'allocate and 'deallocate'. It specifies a deferred-shape array to be an allocatable array with dynamic bounds.

allocatable 사용 예, MS Visual Fotran에서는 선언문에서 필요없이 큰 배열 선언을 할 필요없이 이 선언을 사용하면 문장 중에서 필요에 맞는 선언을 할 수 있다.

Memory_Allocate.zip

MALLOC and FREE reserve and release memory based on a fixed byte size. 

Memory의 크기를 알아본다.

Array.zip

This shows the usage of colon(:) for the iterative calculation of arrays. 

array 에서 colon(:) 을 사용하는 것으로 DO문을 생략하여 간단한 반복작업의 계산을 해준다.

Binomial.zip

Binomial.doc

Binomial distribution.

이항분포, 이거 모르면 수학책 좀 봐라.

Case.zip

Marks the beginning of a block of statements executed if an item in a list of expressions matches a test expression (called the case index).

case 사용 예, Fortran77에는 없는 것으로 생각되는데 잘은 모르겠다.

판단문(IF)를 여러개 사용할 때 이것을 사용하면 편한 점이 있다.

Char.zip

Returns the character in a specified position in the ASCII collating sequence.

char() 사용 예

@

colon.zip

Usage of symbol colon(:)

colon 사용 예, 앞에서도 Array(배열)에서의 콜론 사용법을 보였지만, 여기서는 좀 더 자세히 설명한다.

cpu.zip

Obtain cpu time & date & time

프로그램의 계산시간이나 여러가지 날짜들을 이용

Dll.zip

This example shows a interface between Fotran and Visual Basic.

컴퓨터에서 상호 Interface수단으로 dll(dynamic link library) 이란 것이 있는데, dll을 사용하면 모든 Compiler 들간의 상호교환이 가능하다.  이 예제에서는 dll 만들기와 Visual Basic에서 그 dll 를 불러서 사용하기까지를 보여 준다.

EOF.zip

Find the End Of File

End Of File 사용 예, Fortran90에서도 EOF함수가 있지만 미완성이어서, 새로 Fortran에서 정확히 EOF를 찾을 수 있는 방법을 소개.

FileRepeatFormat.zip

It shows Input & Output of files and iterative Format, especially, using '<>', iterative format with character is available.

File의 입출력과 Format의 반복

특히 Format을 잡을 때 반복수를 숫자로만 적던 것을 이번엔 <>을 사용해서 문자로도 적을 수 있게 되었다.

graphic_Dialogue.zip

Make frames (or dialogue boxes or windows). In particular, If you start with Standard Graphic Application Project, Dos prompt isn't appeared.

그래픽모드에서 대화상자 사용

Fortran이 Visual화 되면서 아직은 미비하지만 Visual Basic이나 Visual C처럼 대화상자를 사용할 수 있다.

일반모드에서 대화상자를 사용하면 도스화면이 같이 실행되지만, 시작할 때 새로운 파일을 열 때, Graphic모드로 시작하면 도스화면 없이 대화상자만을 실행시킬 수 있다.

Interface.zip

Usage of 'interface' commander

Interface 사용 예, 모듈에서 사용하면 좋다.

Inverse_Normal.zip

Gives random variable of normal distribution using IMSL library. 

역 정규함수 ; 랜덤변수 찾기

일반적으로 랜덤변수가 주어지면 정규함수(Normal Distribution)의 값(확률밀도)을 찾기란 아주 간단하지만, 함수값이 있고 그것에 해당하는 랜덤변수를 찾기란 그리 만만치 않다.

이 프로그램은 IMSL를 사용하여 가장 빠르고 가장 정확히 랜덤변수를 찾아 준다. 

InverseMatrix.zip

Obtain inverse matrix using IMSL library.

역행렬, IMSL사용

max_min.zip

Returns the maximum or minimum value and their locations in an array or elements in a specified dimension of an array.

배열내에서 최대값, 최소값을 비교하지 않고 바로 찾으며, 그 위치도 한번에 찾아 준다.

mod.zip

Returns a remainder.

나머지, 이건 모두 알꺼야.

module.zip

Recommendation. Marks the beginning of a module definition that contains specifications, definitions, and procedures for use by other program units.

It may be strongest method than 'common' commander or arguments of subroutine or function.

모듈 사용 예 (권장)

서브프로시져로 이동할 경우 여러가지 arguement를 같이 가기 싫어하는 친구는 주로 COMMON문을 사용하는데, 이 것두 귀찮으면 이것을 사용해 봐라. 메모리 문제(stack overflow)도 해결해 줄 것으로 기대된다.

Normal_QR_SVD.zip

This sample shows how to solve over-determined problem of Linear Equation (Matrix) by using one of following methods; LU decomposition, QR decomposition or SVD (Singular Value Decomposition)

선형 방정식(Matrix 연산)에서 Over Determined Problem를 푸는데 사용된다. 그 중에 해보니까 SVD가 재일 좋더라.

Percent_Symbol.zip

Usage of symbol %

% 사용 예

Point.zip

A pointer lets you access part or all of another variable. A variable with the POINTER attribute has no storage space allocated to it initially. It cannot be referenced until space is associated with it. Space is associated by assigning the variable to a target, either by pointer assignment ( => ) or by using an ALLOCATE statement.

Pointer 사용 예 ; Allocate와 비슷하지만 조금 다른 점이 있다.

public_private.zip

Specifies that data objects within a module can be accessed by other program units, or not.

변수의 Public, Private 선언

ran.zip

Random number generation using IMSL library.

랜덤 변수(난수) 발생, IMSL를 사용한 것으로 매번 발생시킬 때마다 다른 값이 나온다. 이것이 좋은 점이다.

recursive.zip

Usage of 'recursive' commander.

recursive 사용 예

RungeKutta.zip

Gives solutions of differential equation by using Runge-Kutta method.

미분방정식 풀이, IMSL사용

SmallHuge.zip

Gives the Maximum (or Minimum) Value used in Computer.

제일 작은() 값 

Type_and_Format.zip

Usage of 'type' commander and iterative format.

Type와 반복 Format

variance.zip

Gives variance and covariance.

분산, 공분산. 통계 다루는 사람만 봐라.

WaveGeneration.zip

WaveGeneration.doc

Spectrum analysis of waves using Fourier transform (Incomplete)

Gives spectrum of given time series, and generate time series from given spectrum.

파형의 스펙트럼 분석(미완)

시계열(time series)를 스펙트럼 분석하고 스펙트럼에서 시계열을 발생하는 프로그램.

아직 미완성이어서 다운하더라도 좀 고쳐야 할 것이다.