1F90/kouhou_hf90.dvi

Similar documents
11042 計算機言語7回目 サポートページ:

untitled

Fortran90/95 2. (p 74) f g h x y z f x h x = f x + g x h y = f y + g y h z = f z + g z f x f y f y f h = f + g Fortran 1 3 a b c c(1) = a(1) + b(1) c(

n 第1章 章立ての部分は、書式(PC入門大見出し)を使います

. (.8.). t + t m ü(t + t) + c u(t + t) + k u(t + t) = f(t + t) () m ü f. () c u k u t + t u Taylor t 3 u(t + t) = u(t) + t! u(t) + ( t)! = u(t) + t u(

プラズマ核融合学会誌5月号【81-5】/内外情報_ソフト【注:欧フォント特殊!】

インテル(R) Visual Fortran Composer XE 2013 Windows版 入門ガイド

all.dvi

(Basic Theory of Information Processing) Fortran Fortan Fortan Fortan 1

120802_MPI.ppt

01_OpenMP_osx.indd

Microsoft Word - 03-数値計算の基礎.docx

main.dvi

nakao

Microsoft Word - 資料 (テイラー級数と数値積分).docx

1 u t = au (finite difference) u t = au Von Neumann

main.dvi

コンピュータ概論

CUDA 連携とライブラリの活用 2

¥Ñ¥Ã¥±¡¼¥¸ Rhpc ¤Î¾õ¶·

untitled

OpenMP¤òÍѤ¤¤¿ÊÂÎó·×»»¡Ê£±¡Ë

Fortran90/95 [9]! (1 ) " " 5 "Hello!"! 3. (line) Fortran Fortran 1 2 * (1 ) 132 ( ) * 2 ( Fortran ) Fortran ,6 (continuation line) 1

OpenMP¤òÍѤ¤¤¿ÊÂÎó·×»»¡Ê£²¡Ë

OpenMP¤òÍѤ¤¤¿ÊÂÎó·×»»¡Ê£±¡Ë

( ) 1 Windows HTML ( ) ( ) ( ) WWW 10 ( )

(2-1) x, m, 2 N(m, 2 ) x REAL*8 FUNCTION NRMDST (X, M, V) X,M,V REAL*8 x, m, 2 X X N(0,1) f(x) standard-norm.txt normdist1.f x=0, 0.31, 0.5

2 2.1 Mac OS CPU Mac OS tar zxf zpares_0.9.6.tar.gz cd zpares_0.9.6 Mac Makefile Mekefile.inc cp Makefile.inc/make.inc.gfortran.seq.macosx make

Microsoft Word - DF-Salford解説09.doc

Pascal Pascal Free Pascal CPad for Pascal Microsoft Windows OS Pascal

フローチャートの書き方

num2.dvi

4th XcalableMP workshop 目的 n XcalableMPのローカルビューモデルであるXMPのCoarray機能を用 いて Fiberミニアプリ集への実装と評価を行う PGAS(Pertitioned Global Address Space)言語であるCoarrayのベ ンチマ

OHP.dvi

Microsoft PowerPoint - 03_What is OpenMP 4.0 other_Jan18

PBASIC 2.5 PBASIC 2.5 $PBASIC directive PIN type New DEBUG control characters DEBUGIN Line continuation for comma-delimited lists IF THEN ELSE * SELEC

FORTRAN文法の基礎

3. :, c, ν. 4. Burgers : u t + c u x = ν 2 u x 2, (3), ν. 5. : u t + u u x = ν 2 u x 2, (4), c. 2 u t 2 = c2 2 u x 2, (5) (1) (4), (1 Navier Stokes,.,

情報処理概論(第二日目)

<4D F736F F F696E74202D D F95C097F D834F E F93FC96E5284D F96E291E85F8DE391E52E >

12.pptx

plotwsx PLOT-WSX X11 X spp[2]./a.out PLOT-WSX PLOT IPENS -13 IPENS 0 IPENS 0 2 s p PLOT MRI 3.2 PLOT-WSX PLOT IPE- NS -13 IPENS 0 1 Continue PLO


Microsoft Word - 資料 docx

3. :, c, ν. 4. Burgers : t + c x = ν 2 u x 2, (3), ν. 5. : t + u x = ν 2 u x 2, (4), c. 2 u t 2 = c2 2 u x 2, (5) (1) (4), (1 Navier Stokes,., ν. t +

N88 BASIC 0.3 C: My Documents 0.6: 0.3: (R) (G) : enterreturn : (F) BA- SIC.bas 0.8: (V) 0.9: 0.5:

num3.dvi

情報活用資料

YU68.ind


+1級・建築計画-06章_cs3.indd

C言語によるアルゴリズムとデータ構造

hirayama

‡©‡ª‡Ý.P65

IDL_lecture_12Jan.ppt

joho09.ppt

main.dvi

A/B (2010/10/08) Ver kurino/2010/soft/soft.html A/B

演習2

02_C-C++_osx.indd

untitled

listings-ext

Platypus-QM β ( )

フカシギおねえさん問題の高速計算アルゴリズム

¥¤¥ó¥¿¡¼¥Í¥Ã¥È·×¬¤È¥Ç¡¼¥¿²òÀÏ Âè2²ó

±é½¬£²¡§£Í£Ð£É½éÊâ

14 2 Scilab Scilab GUI インタグラフ プリタ描画各種ライブラリ (LAPACK, ODEPACK, ) SciNOTES ハードウェア (CPU, GPU) 21 Scilab SciNotes 呼び出し 3 変数ブラウザ 1 ファイルブラウザ 2 コンソール 4 コマンド履歴

D0020.PDF

C/C++ FORTRAN FORTRAN MPI MPI MPI UNIX Windows (SIMD Single Instruction Multipule Data) SMP(Symmetric Multi Processor) MPI (thread) OpenMP[5]

第10回 コーディングと統合(WWW用).PDF

main.dvi

解きながら学ぶC言語

[ 1] 1 Hello World!! 1 #include <s t d i o. h> 2 3 int main ( ) { 4 5 p r i n t f ( H e l l o World!! \ n ) ; 6 7 return 0 ; 8 } 1:

08 p Boltzmann I P ( ) principle of equal probability P ( ) g ( )g ( 0 ) (4 89) (4 88) eq II 0 g ( 0 ) 0 eq Taylor eq (4 90) g P ( ) g ( ) g ( 0

B 5 (2) VBA R / B 5 ( ) / 34

PowerPoint プレゼンテーション

P03.ppt

OpenMP (1) 1, 12 1 UNIX (FUJITSU GP7000F model 900), 13 1 (COMPAQ GS320) FUJITSU VPP5000/64 1 (a) (b) 1: ( 1(a))

sim98-8.dvi

XcalableMP入門

13 Student Software TI-Nspire CX CAS TI Web TI-Nspire CX CAS Student Software ( ) 1 Student Software 37 Student Software Nspire Nspire Nspir

/ SCHEDULE /06/07(Tue) / Basic of Programming /06/09(Thu) / Fundamental structures /06/14(Tue) / Memory Management /06/1

C:/大宮司先生原稿/数値積分数値微分.dvi

OpenMPプログラミング

X : 2012? (ISO/IEC : 2010) 1 {! [jfortran 1473] } {! %Y } {! NOTE } {!

コンピュータ概論

ex01.dvi

compiler-text.dvi

MPI usage

XMPによる並列化実装2

このcsvファイルを GraphR で 表 示 する あるいはエクセルで 読 み 込 んで 処 理 できる BMP 形 式 のファイルは Windows のソフトで 表 示 できる Mercury CCD では1ピクセルが2バイトで 記 述 されているが BMP でコンパクトに 表 すため 1 ピク

O(N) ( ) log 2 N

xl 1 program Othello6; 2 {$APPTYPE CONSOLE} 3 uses SysUtils; 4 5 type 6 TMasuNo = 0..99; // 7 TYouso = (Soto,Kara,Kuro,Siro); // 8 TBan = array [TMasu

45 VBA Fortran, Pascal, C Windows OS Excel VBA Visual Basic Excel VBA VBA Visual Basic For Application Microsoft Office Office Excel VBA VBA Excel Acc

p...{..P01-48(TF)

untitled

Microsoft Word - fortran.docx

Appendix A BASIC BASIC Beginner s All-purpose Symbolic Instruction Code FORTRAN COBOL C JAVA PASCAL (NEC N88-BASIC Windows BASIC (1) (2) ( ) BASIC BAS

Transcription:

Fortran90 3 33 1 2 Fortran90 FORTRAN 1956 IBM IBM704 FORTRAN(FORmula TRANslation ) 1965 FORTRAN66 1978 FORTRAN77 1991 Fortran90 Fortran90 Fortran Fortran90 6 Fortran90 77 90 90 Fortran90 [ ] Fortran90 Fortran90 DO Fortran90 1) 2) 3) 4) DO 5) 6) 7) 3, 33 ()

3 Fortran90 IF IF END IF, DO DO DO CONTINUE DO ASSIGN GO TO RETURN PAUSE FORMAT H PROGRAM free_source_form! INTEGER & long_name_max31_with_underscore REAL ra,rb,rc! ra=1.0; rb=2.0; rc=ra * rb!! & WRITE(*,*) & ra,rb,rc END PROGRAM free_source_form 4 132 _( ) 31 ;( )!( ) &() 1 1. a.lt.b a<b a b a.gt.b a>b a b a.le.b a>=b a b a.ge.b a<=b a b a.eq.b a==b a b a.ne.b a/=b a b 5 Fortran 5.1 Fortran Fortran90 2 2. INTEGER REAL COMPLEX LOGICAL CHARACTER 5.2

KIND ( ) 3 type [, attribute,...] name[,...] type attribute PARAMETER DIMENSION ALLOCATABLE 3. (1 ) 1 (2 ) 2 (4 ) 4 (8 ) 8 SAVE INTENT OPTIONAL POINTER TARGET INTRISTIC EXTERNAL ( ) 4 ( ) 8 ( ) 4 ( ) 8 (1 ) 1 (4 ) 4 (1 ) 1 name,( ) integer_var INTEGER(KIND=4) integer_var! (1) INTEGER(4) integer_var! (2) INTEGER integer_var! (3) 4 4. (1) (2) KIND= (3) double_a,double_b,( ) INTEGER 4 REAL 4 COMPLEX 4 LOGICAL 4 CHARACTER 1 REAL(KIND=8) double_a,double_b!(1) REAL(8) double_a,double_b!(2) 5.3 5.4

_( ) 1000! (1) 12345_4! (2) 5000000000_8! (3) (1),(2) 4 (3) 8 5000000000 5000000000 _8 8 1.0! (1) 1.0_4! (2) 1.0e0! (3) 1.0_8! (4) 1.0d0! (5) (1) (2) (3) (4) (5) (3) (5) 5.5 =() =() INTEGER(KIND=4) integer_var=12345_4 INTEGER(8) double_int=5000000000_8 REAL(8) double_a=2.0_8*3.141592654_8 PARAMETER REAL,PARAMETER pi=3.14 INTEGER,PARAMETER cols=100,row=cols+1 5.6 Fortran90 10 SELECTED INT KIND(p) 10 p 10 0p 10 p p -1 SELECTED REAL KIND(r,e) 10 r 10 e r e 10 r -1 e -2-3 INTEGER,PARAMETER & ip2=selected_int_kind(2)! (1) INTEGER,PARAMETER & rp10=selected_real_kind(10,70)! (2) INTEGER(KIND=ip2) n! (3) REAL(KIND=rp10) a,b! (4) COMPLEX(KIND=rp10) c! (5) n=10_ip2! (6) a=100.0_rp10; b=33.33_rp10! (7) c=cmplx(a,b,kind=rp10)! (8) (8) CMPLX (KIND=)

5. KIND(x) HUGE(x) TINY(x) RANGE(x) EPSILON(x) PRICISION(x) BIT_SIZE(x) 10 1 10 5.7 Fortran90 5 1 PROGRAM ex_inq_num INTEGER,PARAMETER & ip=selected_int_kind(9), & rp=selected_real_kind(10,10) INTEGER(KIND=ip) ivar REAL(KIND=rp) rvar WRITE(*,*) '<< INTEGER >>' WRITE(*,*) 'KIND ',KIND(ivar) WRITE(*,*) 'HUGE ',HUGE(ivar) WRITE(*,*) 'RANGE ',RANGE(ivar) WRITE(*,*) 'BIT_SIZE ',BIT_SIZE(ivar) WRITE(*,*) '<< REAL >>' WRITE(*,*) 'KIND ',KIND(rvar) WRITE(*,*) 'HUGE ',HUGE(rvar) WRITE(*,*) 'TINY ',TINY(rvar) WRITE(*,*) 'RANGE ',RANGE(rvar) WRITE(*,*) 'PRICISION ',PRICISION(rvar) WRITE(*,*) 'EPSILON ',EPSILON(rvar) END PROGRAM ex_inq_num << INTEGER >> KIND 4 HUGE 2147483647 RANGE 9 BIT_SIZE 32 << REAL >> KIND 8 HUGE 1.797693134862316+308 TINY 2.225073858507201-308 RANGE 307 PRICISION 15 EPSILON 2.220446049250313E-16 1. 5.8 I,J,K,L,M,N FRTRAN77 DO,( ).( ) DO 10 I=1.5 DO10I 1.5 DO DO10I Fortran90 6 Fortran () For-

tran90 1) END (PROGRAM SUBROUTINE FUNCTION) 2) 3) ( ) 4) 6.1 CONTAINS 2sub_init func_add main_program_name a,b,c c 100.0 sub_init b=b*c (b) (c) (c) () c 100.0 PROGRAM main_prog_name REAL a,b,c=100.0 b=1.0 CALL sub_init(b) a=func_add(b,c) CONTAINS SUBROUTINE sub_init(b) REAL,INTENT(INOUT) b b=b*c END SUBROUTINE sub_init REAL FUNCTION func_add(x,y) REAL,INTENT(IN) x,y func_add=x+y END FUNCTION func_add END PROGRAM main_prog_name 2. 6.2 6.2.1 (INTENT) INTENT ( 2) () () ( ) 6 6. INTENT INTENT INTENT(IN) INTENT(OUT) INTENT(INOUT) 2 INTENT CALL sub_init(1.0) Fortran 1.0 c (100.0) 1.0

INTENT INTENT 6.2.2 =,( ) INTEGER FUNCTION scale(start,finish,point) inc=scale(1,20,10)!(1) inc=scale(point=2,start=1,finish=20)!(2) inc=scale(1,finish=20,point=2)!(3) (1) 6.2.3 OP- TIONAL PRESENT PRESENT.TRUE..FALSE. 3 PROGRAM ex_key_optional INTEGER inc inc=scale(start=1,finish=20) CONTAINS INTEGER FUNCTION & scale(start,finish,point) INTEGER,INTENT(IN) start,finish INTEGER,INTENT(IN),OPTIONAL & point INTEGER lpoint=10! Check optional argment IF (PRESENT(point)) THEN lpoint=point ENDIF scale=(finish-start)/lpoint END FUNCTION scale END PROGRAM ex_key_optional 3. 6.3 IN- TENT INTERFACE INTERFACE END INTERFACE 3 scale INTERFACE

INTERFACE INTEGER FUNCTION & scale(start,finish,point) INTEGER,INTENT(IN) start,finish INTEGER,INTENT(IN),OPTIONAL & point END FUNCTION scale END INTERFACE 7 DO FORTRAN77 Fortran90 DO Fortran90 DO DO DO 7.1 DO FORTRAN77 DO (5 ) CONTINUE DO 100 i=1,100,5 100 CONTINUE Fortran90 loop DO i=1,100,5 loop 1) CONTINUE 2) DO 3) (loop) DO FORTRAN77 GOTO IF Fortran90 DO (i=1,100,5) CYCLIC( ) EXIT( ) 5 Fortran Fortran90 31 Fortran90 GOTO 4 (total) DO CYCLE EXIT PROGRAM ex_do INTEGER num,total,count total=0; count=0 data_input DO WRITE(*,*) 'Input number ' READ(*,*) num IF ( num == 0 ) EXIT data_input total = total + 1 IF ( num < 0 ) CYCLE data_input count=count+1 input_data WRITE(*,*) total,count END PROGRAM ex_do 4. 7.2 type,dimension(extent,...) name,... DIMENSION DIMENSION (extent),( ) ( ) [] 1 INTEGER,DIMENSION(100) array100 INTEGER,DIMENSION(09) array10 REAL,DIMENSION(10,5) array50 REAL,DIMENSION(-31,8) array32

7.2.1 (shape) (conformable) (shape) (rank) (extent) (conformable) INTEGER,DIMENSION(24,310) a INTEGER,DIMENSION(3,8) b INTEGER c INTEGER,DIMENSION(2,5) d a (rank) 2 (extent) 3 8 (size) 24(328) (shape) (/3,8/) a b c 7.2.2 (/ /), ( ) (/ 1,2,3,4,5,6 /) 1,2,...,6 DO (/ (i,i=1,6) /)!(1) (/ ((i/10),i=2,10,2) /)!(2) (/ 10,20,(i,i=2,10,2) /)!(2) (1) (/ 1,2,3,4,5,6 /) (2) (/ 2.0,4.0,6.0,8.0,10.0 /) (3) (/ 10,20,2,4,6,8,10 /) INTEGER,DIMENSION(6) & line=(/ (i,i=1,6) /) RESHAPE INTEGER,DIMENSION(2,4) box = & RESHAPE( (/ (i,i=1,8) /), (/ 2, 4 /) ) box 1 3 5 7 2 4 6 8 7.3 7.3.1 DO [ ][ ][ ] DO ( ) 1 ( )

1) a(10,10) 0.0 DO (1) (2) (3) a (2) DO i=1,10 DO j=1,10 a(j,i)=0.0!(1) a(,)=0.0!(2) a=0.0!(3) 3 a mean=sum(a(,))/size(a(,)) SUM a 7.3.3 DO i=2,n a(i)=a(i-1)+a(i)!(1) DO a(2n)=a(2n)+a(1n-1)!(2) 2) a DO 1.0 DO i=2,10,2 DO j=1,10 a(j,i)=1.0!(1) a(,2102)=1.0!(2) 7.3.2 1 a b c 2 c(,)=a(,)+b(,) a 1000 a(,)=sqrt(a(,))*1000.0 SQRT (1) a(i)=a(i)+a(i-1)+a(i-2)+...+a(1) (2) a(i)=a(i-1)+a(i) (1) SUM a(2n)=(/ (SUM(a(1i)),i=2,n) /) 7.3.4 a(43) DO i=1,n x(i)=b(i)/a(i,i)!(1) b(i+1n)=b(i+1n)-a(i+1n,i)*x(i)!(2) (2) i=n a,b n+1n (2)

7.3.5 WHERE WHERE WHERE WHERE( MOD(odd(),2) /= 0) & odd()=odd()*2 7.3.7 1) DIMENSION ( ),( ) odd MOD 2 WHERE WHERE( a() > 0.0 ) a() = SQRT(a()) ELSEWHERE a() = 0.0 END WHERE 0.0 7.3.6 Fortran90 ALLOCAT- ABLE DIMENSION ( ) ALLOCATE DEALLOCATE READ n a PROGRAM allocatable_array REAL,DIMENSION(,),ALLOCATABLE a INTEGER n READ(*,*) n ALLOCATE(a(n,n+1))) DEALLOCATE(a) END PROGRAM allocatable_array 2) 5 swap a,b work SIZE SUBROUTINE swap(a,b) REAL,DIMENSION() a,b REAL,DIMENSION(SIZE(a)) work work=a; a=b; b=work; END SUBROUTINE swap 5. 8 Fortra90 1) 5 MAXVAL,MINVAL PROGRAM ex_mean REAL,DIMENSION(5) vec REAL mean READ(*,*) vec mean = (SUM(vec)-MAXVAL(vec)- & MINVAL(vec))/REAL(SIZE(vec)-2) WRITE(*,*) " = ", mean END PROGRAM ex_mean

2) PROGRAM ex_std INTEGER n REAL,DIMENSION(),ALLOCATABLE vec READ(*,*) n ALLOCATE(vec(n)) READ(*,*) vec WRITE(*,*) " = ", mean(vec) WRITE(*,*) " = ", disp(vec) WRITE(*,*) " = ", std_vec(vec) DEALLOCATE(VEC) CONTAINS REAL FUNCTION mean(vec) REAL,DIMENSION() vec mean = SUM(vec)/REAL(SIZE(vec)) END FUNCTION mean REAL FUNCTION disp(vec) REAL,DIMENSION() vec disp = & SUM((vec-mean(vec))**2) & /REAL(SIZE(vec)) END FUNCTION disp REAL FUNCTION std_vec(vec) REAL,DIMENSION() vec std_vec = SQRT(disp(vec)) END FUNCTION std_vec END PROGRAM ex_std 3) Fortran90 MAXLOC DOT_PRODUCT 9 Fortran90 90 PROGRAM ex_gauss INTERFACE SUBROUTINE gauss(a,order) REAL,DIMENSION(,), & INTENT(inout) a INTEGER,DIMENSION(),& INTENT(inout) order END SUBROUTINE gauss END INTERFACE INTEGER n,i REAL,DIMENSION(,), & ALLOCATABLE a INTEGER,DIMENSION(),& ALLOCATABLE order READ(*,*) n ALLOCATE(a(n+1,n),order(n)) DO i=1,n READ(*,*) a(,i) order=(/(i,i=1,n)/) CALL gauss(a,order) WRITE(*,*) a(n+1,) DEALLOCATE(a) END PROGRAM ex_gauss SUBROUTINE gauss(a,order) INTEGER i,j,n REAL,DIMENSION(,) a INTEGER,DIMENSION() order INTEGER,DIMENSION(1) line! n=size(a,2) DO j=1,n line=maxloc(abs(a(j,jn)))+j-1 IF (line(1) /= j) & CALL swap(a(,line(1)),a(,j), & order(line(1)),order(j)) DO i=j+1,n a(j,i)=a(j,i)/a(j,j) a(j+1n+1,i)=a(j+1n+1,i)- & a(j,i)*a(j+1n+1,j)! DO i=n,1,-1 a(n+1,i)=a(n+1,i)- & DOT_PRODUCT(a(n+1,i+1n),a(i+1n,i)) a(n+1,i)=a(n+1,i)/a(i,i) a(n+1,order())=a(n+1,) CONTAINS SUBROUTINE swap(a_i,a_j,o_i,o_j) REAL,DIMENSION() & a_i,a_j INTEGER o_i,o_j REAL,DIMENSION(SIZE(a_i)) work INTEGER tmp work=a_i a_i=a_j a_j=work tmp=o_i o_i=o_j o_j=tmp END SUBROUTINE swap END SUBROUTINE gauss