Microsoft PowerPoint - 02_Fortran_프로그래밍.pptx

Similar documents
<C6F7C6AEB6F5B1B3C0E72E687770>

해양모델링 2장5~ :26 AM 페이지6 6 오픈소스 소프트웨어를 이용한 해양 모델링 물리적 해석 식 (2.1)의 좌변은 어떤 물질의 단위 시간당 변화율을 나타내며, 우변은 그 양을 나타낸 다. k 5 0이면 C는 처음 값 그대로 농

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

DIY 챗봇 - LangCon

C++-¿Ïº®Çؼ³10Àå

슬라이드 1

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

1

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona


강의10

윈도우즈프로그래밍(1)

Microsoft PowerPoint - [2009] 02.pptx

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

Microsoft PowerPoint - 기계공학실험1-1MATLAB_개요2D.pptx

C# Programming Guide - Types

OCW_C언어 기초

Microsoft PowerPoint - chap05-제어문.pptx

컴파일러

Modern Javascript

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

PowerPoint 프레젠테이션

PL10

step 1-1

Microsoft Word - SAS_Data Manipulate.docx

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

Microsoft PowerPoint - chap-06.pptx

4장.문장

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

Chapter_06

중간고사

K&R2 Reference Manual 번역본

Microsoft PowerPoint - PL_03-04.pptx

2002년 2학기 자료구조

int main(void) int a; int b; a=3; b=a+5; printf("a : %d \n", a); printf("b : %d \n", b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf(" a : %x \

SRC PLUS 제어기 MANUAL

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

chap 5: Trees

Microsoft PowerPoint - chap03-변수와데이터형.pptx

슬라이드 1

T100MD+

USER GUIDE

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint - ch07 - 포인터 pm0415

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap04-연산자.pptx

03장.스택.key

13주-14주proc.PDF

Orcad Capture 9.x

Introduction to Geotechnical Engineering II

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

CD-RW_Advanced.PDF

Microsoft PowerPoint Predicates and Quantifiers.ppt

public key private key Encryption Algorithm Decryption Algorithm 1

Javascript.pages

untitled

제4장 기본 의미구조 (Basic Semantics)

Microsoft PowerPoint - chap12-고급기능.pptx

02 C h a p t e r Java

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

MS-SQL SERVER 대비 기능

chap x: G입력

Microsoft PowerPoint - a10.ppt [호환 모드]

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

C 언어 프로그래밊 과제 풀이

8장 문자열

SIGPLwinterschool2012

Fortran/IDL basic

chap10.PDF

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770>

PowerPoint Template

Microsoft PowerPoint - lec3.ppt

<4D F736F F F696E74202D204D41544C4142B0ADC0C7B7CF28B9E8C6F7BFEB295F3031C0E55FBDC3C0DBC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

4 CD Construct Special Model VI 2 nd Order Model VI 2 Note: Hands-on 1, 2 RC 1 RLC mass-spring-damper 2 2 ζ ω n (rad/sec) 2 ( ζ < 1), 1 (ζ = 1), ( ) 1

금오공대 컴퓨터공학전공 강의자료

adfasdfasfdasfasfadf

을 할 때, 결국 여러 가지 단어를 넣어서 모두 찾아야 한다는 것이다. 그 러나 가능한 모든 용어 표현을 상상하기가 쉽지 않고, 또 모두 찾기도 어 렵다. 용어를 표준화하여 한 가지 표현만 쓰도록 하여야 한다고 하지만, 말은 쉬워도 모든 표준화된 용어를 일일이 외우기는

Week5

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft Word - 1. ARM Assembly 실습_xp2.doc

쉽게 풀어쓴 C 프로그래밍

slide2

Java ...

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

강의 개요

ePapyrus PDF Document

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

MAX+plus II Getting Started - 무작정따라하기

PRO1_02E [읽기 전용]

歯처리.PDF

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을

歯기구학

Transcription:

컴퓨팅브릿지 Basic Fortran grammar (Fortran 77) 김정한

- 목표

INDEX 1. Fortran

01. Fortran Basic Fortran grammar

Fortran FORmula TRANslation 1950 년대후반 IBM 에서개발 가장오래된최초의고급언어 (high level language) 1966 Fortran V (Fortran77) 국제표준채택 (1980, ISO) FORTRAN 77 Fortran 90, Fortran 95, Fortran 2003

Fortran 언어의특징 상호호환성 컴퓨터의기종에관계없이공통으로사용 쉽고간단한문법과명령어 단기간에활용가능 명령은문장으로표현, 문장은실행문과비실행문으로구성 다양한프로그램라이브러리지원 많은공개소스 (legacy code) 활용영역 많은입 출력을요구하는문제보다는많은양의계산이필요한공학, 통계학수학, 그리고경영과학등에널리사용되고있다 Software Inertia

Layout of FORTRAN program The layout of FORTRAN program dates back to old 80 column punched cards, which were used for program input Comment field(c/*) Statement number field : 1~5 column (1~99999) Continuation field (except 0/blank), Statement field Identification field : 73~80 column No translation, memo/references 1 2-5 6 7-72 73-80 Total=x_value+y_value & +z_value C Comment line. 9 9999 FORMAT( Answer =,I4)

Variable names Must be at least one alphabetic character long, up to a maximum of 6 alphanumeric characters Must start with an alphabetic character Alphanumeric characters are : a-z,0-9 and the underscore ( ). Capital letters are treated the same way as lower-case letters Valid names X THEDAY Min_cur Time28 Invalid names X*Z THE TIME 7YEARS _no_way$

Basic data types Type statement:<data Type> <variable> [,<variable(s)>] integer age,grade Implicit statement Implicit double precision(a-h,o-z) Implicit real (I,x-z) Default Implicit variables. I to N integers!! Types Real Integer Complex Logical character e.g. X=5.0, y=3.0e2 i=20, j=-1 Z=(1.4,3.2) >>> 1.4+3.2i Test=.TRUE. Tag=.False. Char1= Hello

Parameters Parameters are constants, their value, once defined, can not be changed Executable statement 보다앞에위치 REAL gamma,pi INTEGER days paraemter(days=365) parameter(gamma=1.4, pi=3.14)

Assignment <variable> = <value> <variable> <expression> Expressions follow the BODMAS precedence rule Operators +-,*,/ and ** Only round bracket radius=2.5 y=z test=value+loop-temp volume=(4.0*pi*radius**3.0)/3.0 **3 0)/3 0

Relational expression Logical return with True or False value Left to right order Operator Math Meaning e.g..lt. < Less than A.LT.B LTB.LE. Less than or equal to A.LE.B.EQ. = Equal to A.EQ.B.NE. Not Equal to A.NE.B.GT. > Greater than A.GT.B.GE. Greater than or equal to A.GE.B

Logical expression Complex conditions Order :.NOT..AND..OR..EQV..NEQV..TRUE. and.false. 값만가능 Operator Meaning e.g. Results.NOT. 부정.NOT.A A 가참아면거짓, 거짓이면참.AND. 논리곱 AANDB A.AND.B AB A,B 가모두참일때만참, 그이외는거짓.OR. 논리합 A.OR.B A,B 가모두거짓일때만거짓, 그이외는참.EQV. 논리등가 A.EQV.B A,B 가모두거짓이거나모두참일때참.NEQV. 논리비등가 A.NEQV.B A,B 가모두참이거나모두거짓일때거짓

Library function (1/2) Name Meaning e.g. Mathematical expression SIN, COS, TAN Sine,cosine, i tangent Y=SIN(X) y sin x SQRT 제곱근 Y=SQRT(X) y x EXP 지수 Y=EXP(X) x y e ABS,IABS 절대값 Y=ABS(X) y x ALOG 자연대수 Y=ALOG(X) y ln x 상용대수 ( ) y log x ALOG10 상용대수 Y=ALOG10(X)

Library function (2/2) Name Meaning e.g. Mathematical expression INT 실수 -> 정수 K=INT(X) 실수 X 를정수로변환 REAL 정수 -> 실수 Y=REAL(J) 정수 J 를실수로변환 FLOAT 정수 -> 실수 Y=FLOAT(J) 정수 J 를실수로변환 DBLE 정수 -> 실수 Y=DLBE(J) 정수 J 를실수로변환 ICHAR 문자 -> 정수 K=ICHAR(C) 문자 C 를정수로변환 CHAR 정수 -> 문자 C=CHAR(K) 정수 K 를문자로변환 MOD 나머지 Y=MOD(X,Y) X 를 Y 로나눈나머지 MAX (MIN) 최대 ( 최소 ) j=max(i1,i2,i3) i1,i2,i3 중최대값 ( 최소값 )

Control structure 제어문을사용한제어구조 분기구조 (branches structure) 지정된문번호로실행을이동 조건식의결과에따라프로그램을선택적으로수행 IF문, GOTO문 순환구조 (loops structure) 프로그램의일부분을반복실행하는명령문 DO~CONTINUE 문, GOTO 문과 IF 문을사용한구조 기타제어문 STOP : 주프로그램에서실행을종료 CALL : 서브루틴프로그램의호출 RETURN : 서브루틴실행을종료 END : 하나의프로그램이나서브루틴프로그램을끝냄

IF STATEMENT (1/2) Block IF statement IF(expression1) THEN {block1} ELSE IF(expression2) THEN {block2} ELSE {block3} END IF Logical IF statement IF(expression) statement

DO-loops 반복적으로수행되는문장블록제어 DO label,variable=e1,e2,e3 l bl label CONTINUE {block of statement} Label : 문장번호 Variable : 제어변수명 ( 정수형변수나실수형변수 ) e1: 초기값, e2: 최종값 ( 정수형, 실수형변수, 상수, 산술식등 ) e3: 증분값 ( 양수나음수 )

Computed GO TO statement 여러방향의선택 GO TO (label 1, label 2,, label n) integer-expression label 1, label2: 분기될명령문의문장번호 integer-expression : 정수형수식또는정수변수 integer-expression=1 이면 label1실행 (goto label1) integer-expression=2 이면 label1실행 (goto label2) integer-expression expression 이범위를벗어나면 GOTO 문의다음문을실행

Array FORTRAN 의배열 real a,b,c dimension a(100), b(10,10), c(2,3,4) or real a(100), b(10,10),c(2,3,4) 배열을구성하는변수명의하한값은 default가 1 V(c1:c2) 로선언가능 : c1은차원의하한값, c2는차원의상한값 Multi-dimensional array 7D까지가능 C언어와의배열구조차이를이해하는것이중요

DATA 문 (1/2) 변수나배열요소에초기치부여 지정문과같은효과를가지며다수의초기치를한줄로부여 DATA nlist /clist/, nlist /clist/.. nlist : 변수명, 배열명, clist : nlist에기억시킬숫자나문자, 논리상수리스트 DATA 문사용의규칙 DATA 문은선언문뒤에, 최초의실행문보다앞에와야한다. nlist의항목수는 clist의항목수와일치 : 일대일대응 clist의 type은 nlist항목의 type형태로변환되어입력된다. nlist중의어떤항목의형이문자형이나논리형인경우는 clist도같은형이어야한다.

DATA 문 (2/2) 예제 A=10.5 B=21.3 C= IN DATA A/10.5/, B/21.3/, C/ IN / / or DATA A,B,C/10.5, 21.3, IN / DIMENSION a(5) DATA a/1.0, 2.0, 3.0, 4.0, 5.0/ DIMENSION b(10) DATA b/5*12.0, 5*21.0/ DIMENSION d(5) DIMENSION d(5) DATA d(2), d(3), (d(i),i=4,5)/11.0, 22.0, 33.0, 44.0/

부프로그램 (subprogram) (1/3) Subprogram 반복되는동일한명령문들의집단 별개의프로그램유닛으로작성하여호출 전체프로그램의간략화 다른프로그램에서공동으로사용가능 독립적컴파일에따른에러의수정이쉽다 대규모프로젝트에적합 ( 여러사람의참여가능 ) 무리한 subprogram 의사용은코드의성능저하를가져올수있다. subprogram subroutine function library function User defined function statement function function

부프로그램 (subprogram) (2/3) Subroutine & function Subroutine Function 호출호출문 (call) Function 명에의해호출 인수필요한경우사용한개이상의인수반드시필요처리된결과여러인수에실어 return function명에실어단한개만을 return 기타 서브루틴명은수식에사용불가변수와같이이용할수없음 프로그램의수식에서변수처럼사용가능

부프로그램 (subprogram) (3/3) 문함수 (statement function) 비교적간단한함수를 1 개의문장을이용해서정의 두개이상의문장으로표현불가 한개의단위프로그램내에서만사용가능 최초의실행문앞에, 선언문보다는뒤에위치한다. 문함수명을변수나배열로사용불가 비실행문으로문번호를가질수없음 NAME(d1, d2,.., dn) = expression Variable = NAME(a1, a2,., an) 호출문

COMMON 문 (1/2) 전역변수자료전달 많은개수의인수목록을단순화할수있음 최초의실행문보다앞에위치 Dimension문대신에배열을선언할수있다. Blank(unlabeled) l l 와 Named(labeled) l d) common 문 COMMON O variable ab list COMMON /common block name/ variable list

COMMON 문 (2/2) Blank common 문 부프로그램에서사용되는가인수사용불가 가변크기배열은사용불가 Subroutine SUB(X,N,IM) COMMON A, B, N(10), Z(IM) Named common 문 DATA 문으로초기치를부여할수있다 문자형데이터와문자형이외의데이터는하나의공통블럭안에서함께사용불가 REAL A,B CHARACTER*10 WORD COMMON /A1/A,B,WORD COMMON /A1/A,B /A2/WORD

입 / 출력문 (1/4) OPEN 파일열기 OPEN(UNIT=n, FlLE=fname, FORM=frm, ACCESS=acc, STATUS=sta, RECL=rl, IOSTAT=ios, ERR=err) UNIT = 정수형 : 특정장치에의한입 / 출력 (1~99) FILE = 파일이름 FORM = Formatted, Unformatted(default) ACCESS = Sequential(default), Direct STATUS = New, Old, Scratch, Unknown RECL = 각레코드의길이 (access = 'Direct') IOSTAT = 에러코드받는변수 ERR = 에러가발생했을때수행할 line number 파일닫기 :Close(UNIT=n)

입 / 출력문 (2/4) I/O statements Line 단위의입출력 READ(UNIT=n,FMT=f,END=label,ERR=label) input data-list WRITE(UNIT=n,FMT=f,END=label,ERR=label) output data-list UNIT = 정수형 : 특정장치에의한입 / 출력 * : 컴파일러지정표준장치 ( 키보드 (5)/ 모니터 (6)) FMT = 출력형식 * : 자유형식에의한입 / 출력, 데이터사이구분을위해컴마나빈칸 Error 및파일끝부호 ( 생략가능 ) ERR : 실행중오류발생시지정된문번호르실행이동 END : 입력파일의마지막까지다읽은경우지정된문번호로이동

입 / 출력문 (3/4) Format (FMT) Real Positioning Purpose Integer Decimal Form Description Iw, Iw.m Fw.d Exponential Form Ew.d Logical Character Horizontal Tabbing Lw A, Aw Vertical / Other Grouping r(...) nx Tc WRITE(*, '(I2, x, F5.2)') I, A

입 / 출력문 (4/4) Example READ(*,*) A,B,C READ(UNIT=5,FMT=*,ERR=50,END=70)A,B,C READ *, A,B,C READ(5,10) A,B,C 10 FORMAT(1X,3I4) READ(5, (1X,3I4) ) A,B,C WRITE(*,*) A,B,C WRITE(6,30) A+X,B+Y,C+Z WRITE(6,*) THE VALUE OF THE OUTPUT, A,B,C

FORMAT 문 (1/2) READ/WRITE 와함께사용할수있는비실행문 DATA ii /1, 2, 3, 4/ i1 = -10 i2 = 999 i3 = 111 a1 = 100.0 a2 = -9.99 a3 = 1.23e9 write(*,100) i1,i2,i3,(ii(j),j=1,4) i2 i3 j=1 100 format(i4,1x,i2,1x,i10.5,1x,4(i2,1x)) write(*,200) a1,a2,a3 200 format(f7.2,1x,f7.1,1x,e7.2)

FORMAT 문 (2/2) 문자형변수출력 character*20 A A = format test write(*,100) A 100 format(a20) 줄바꿈표시 / : 입 / 출력시다음줄로이동 write(*,400) (ii(j),j=1,4) 400 format(4(i2,/)) 한칸이동 x

Using Library(1/2) Library? 하나이상의 Subroutine, Function 들이저장된모음 다른프로그램들과링크 특정계산에최적화된루틴 Libraries BLAS, GotoBLAS, ATLAS LAPACK, FFTW MKL, ACML, ESSL : (Vendor Library - BLAS, LAPACK, FFT) Linking

Using Library(2/2) Inverse Matrix (LAPACK) PROGRAM Inverse_Matrix IMPLICIT NONE INTEGER i,j,k,n,info PARAMETER (n=2) INTEGER IPIVOT(n) DOUBLE PRECISION A(n,n), P(n,n), WORK(n) A(1,1)=1.0d0;A(1,2)=1.0d0;A(2,1)=2.0d0;A(2,2)=3.0d0 P(1,1)=1.0d0;P(1,2)=0.0d0;P(2,1)=0.0d0;P(2,2)=1.0d0 PRINT *, 'Initial A =' DO i=1,n PRINT '(F4.1,x,F4.1)', (A(i,j), j=1,n) ENDDO! Factorization CALL DGETRF(n, n, A, n, IPIVOT, INFO)! Solve A^{-1} CALL DGETRI(n, A, n, IPIVOT, WORK, n, INFO) PRINT *, 'Inverse of A = ' DO i=1,n PRINT '(F4.1,x,F4.1)', (A(i,j), j=1,n) ENDDO STOP END