You are on page 1of 11

03.

 3

 0)" ! !.2 " 12 Fortan 90


 )" 2 # 03.. # .#2 * 0. . .! #110 2 /  0)" ! !.2 "

 )"

Fortran 90.

! 1/ +0.
201.2.

$ 2." /.10 2 03. .#2) . 01. 10 1


. 0!!%0" 2 /  0)" ! !.2 " 12 Fortran 90,
. /+10" 2* #" 02.2+ . . 0 2  2* /0/ & # /$ 2.
. ..3!0" 2. 2!. 2.2. .) 2. . . 2002. 2 2. 2& /+10&
. ..3!0" 2 #" 2* #" /0/ & # # 12!0  Fortran 90

Parameter

Type

Program

End

Implicit

 0"
0/

1.&"
.!.2!10"

2 03. .#2) . .! #11 #0 2. 2.2. .) 2. . . 2002.


. !)!.. 12 Fortran  ,. 0!!% #0 2  2!) 0 2  
/+ #0 2 .!$ . 2 2 " 2 # ! !.2 " 2 1#$0. . *0 &"
/+ #0 2" 12.0!" . 02.2" # . $!1 1 #0 12 !)!..
."  " . ..3! #0 2 ! " 12  2 02 *0 2" 02010"
! 210" 2 # ! !.2 " .+" . 2" # ! #20" . 1#.!210"  0"
0. 01&.2&0" 12 !)!.. ."

) 2 . 2002. . !)!.. FORTRAN 90 ;


. !)!.. 12 Fortran  . 2002. .)  ! 
1.  003./. 2 # ! !.2 "
2. 2. 2& /+10&
3. 2. 2& ! 210&
4. 2. 2& # ! !.2&



3.2

&" /+ #0 2 003./. .


! !.2 "

2 2

"2#

003./. 2 # ! !.2 " 1#21102. 0 2  PROGRAM .


12 1#$0. 2 ) . 2 # ! !.2 " !/
[PROGRAM )

. ! !.2 "@

 )" 2" 0. . . !10 10 1#0!.1. 0 2 02  END 2. )!. 2 #
! !.2 " ." 02  END 1#21102. &" 0" 
END [PROGRAM >)

. ! !.2 "@@

!1  *. .*0" >@ . . /+1 #0 )2 0. ! .!02) 2
0!2&1 # $!1 1 #0 ) . . !0 . ! 1 #0 . $0 &" 
$.!.2!0"

.!/0.

PROGRAM HELLO
WRITE(*,*) HELLO
END PROGRAM HELLO



. /+10&

2. /+10& 0!$0 ). 2. 12 $0. # !)02. .


$!1  * 12 !)!.. 2. . 2002. .)  0! $" 
1.

 0! $ 2& 12.0!+

2 2. .#2) /+ 2.  12.0!" 2 # ! !.2 " ." 0 2


 0. 2" 02 " PARAMETER  . . 1#21102. &" 0" 
PARAMETER (vname=const [ , vname=const ] ...)

.+" .
* " /0/ &, PARAMETER :: vname=const [ , vname=const ] ...

# vname 0. 2 ) . 2" 12.0!" . const 0.  2 2" 12.0!"
 . . 2002. .) .! *"  ./ 20  .!02! # $0 !120
 ! 12 0 ! 10. .." 2" 2" 2 # ).2 " 2" 12.0!" .
/10 10  " 023!.1" compile error  0 0!2&1 # /0 !1 #0 2 
2* 2& /0/ & 2)20 2* " /0/ & 2" 12.0!" 0.!22. .) 2 .!$)
!. 2 # ).2 " 2" - .!. " 2. #) . !..2 " 2  )&"
/0 1#122.  .*0" >@ /+ # )2 2 0!0$)0 2 #" 0. ! .!02)

.!/0.
PARAMETER (PI=3.14159,G=9.81)
REAL, PARAMETER :: PI=3.14, G=9.81

2.

 0! $ 2& 02.2+

2 ! " .#2) 2 # ! !.2 " 02.  /&1 2& 02.2+ # .


$!1 1 #0 12 !)!..
!$ # /* 0/+ 02.2"  . .#2" #
! 2. 12 0! $ 2& 02.2+ .  .#2" # ! 2. .#2).2.
(implicitly).

02.2" # ! 2. .#2).2.

2 0!2&1 # /0 !1 #0 2  2* 2& /0/ & # . /$ 2.
 02.2" ." 2)20 .#2" . ! 2. .#2).2. implicitly 1*3&. 0 2
) . 2 #" /./  02.2" # 2 ) . 2 #" .!$0 .) &"  . 0.
.!.0" 0+  #) 0" 02.2" . 0. !..2" ,. !0 .
. 30*02. .#2)" 2!) " !1 * 2& 02.2+  # /)2  !0 .
/ #!10 1 .! ! .2. 12 #)  !)!.. ! 0 # .
. 3* #0 .#2) 2  2!) !1 * . 0 *0 2. 0 2 02  
IMPLICIT NONE

# /+0 )2 . 02.2 /0 . !120 .#2).2.

 02.2" # ! 2. 12 0! $ 2& 02.2+


,. !0 . !1 #0 2  2* 2& /0/ & # . /$ 2. 


02.2" ." +120 . /02.  /#.2)22. 12  
. / #!10 2"
.20" 10" " # . /0$2 * 2. /0/ . ." /&1 2&
02.2+ ." 02. &" 0" 

!.0" 02.2"

INTEGER [ ( [ KIND = ] kind-value ) ] [ , attrs ] :: ] vname

2 2" kind-value  !0 . 0.     . . 0 2  2* 2 #


.0!. # / INTEGER*1, INTEGER*2  INTEGER*4 .212 $..  /0 !120
 2 2" kind-value 2)20 .#2 0&!02. )2 0. 
2 1 attrs  ! * . 2 02 * !10" 2" )&"
PARAMETER (DIMENSION, PUBLIC, PRIVATE  ! 0 # .
/+1 #0 2  2*  ." 12.0!"
2 1 vname 2 0202. .  .!.& 02.2"  ).2.
1#.!210& # . / *0 .!.2& 

.!/0.
INTEGER (1) :: LENGTH, HEIGHT
INTEGER (KIND=2) :: VOL
INTEGER (4), PARAMETER :: A=1

! 0. .!.. 12.0! 0 2 

INTEGER AB

. 2* # 

!..2" 02.2"

REAL [ ( [ KIND = ] kind-value ) ] [ , attrs ] :: ] vname

2 2" kind-value  !0 . 0.    . . 0 2  2* 2 #


!..2 * / REAL   REAL  .212 $.  /0 !120  2 2" kindvalue 2)20 .#2 0&!02. )2 0. 
 !) " 2& 10& attrs . vname 0. / " 0 .#2) 12" .!.0"
02.2"  2*  /0/ & REAL(4), REAL  . SINGLE PRECISION 0.
/  1" /  0&! *2.  2*  REAL(8), REAL  . DOUBLE
PRECISION.

.!/0.
REAL (4) :: INTEREST
REAL (KIND=8) :: DISTANCE, FACTOR
REAL (8), PARAMETER :: PI=3.14159_dp_kind

! PI 0. !..2

12.0! 0 2 


! . 2* # 4

REAL X

./" 02.2"

COMPLEX [ ( [ KIND = ] kind-value ) ] [ , attrs ] :: ] vname

2 2" kind-value  !0 . 0.    . . 0 2  2* 2 #


!..2 * . 3.2.12 * ! #" 2 # ./ * / COMPLEX  
COMPLEX  .212 $.  2*  /0/ & COMPLEX . COMPLEX  0.
/  1" /  0&! *2.  2*  COMPLEX  . DOUBLE COMPLEX 
/0 !120  2 2" kind-value 2)20 .#2 0&!02. )2 0. 
 !) " 2& 10& attrs . vname 0. / " 0 .#2) 12" .!.0"
02.2"

.!/0.
COMPLEX (4) :: IA
COMPLEX (KIND(4)) IB
COMPLEX (KIND=8) :: CB,CD
COMPLEX (4), PARAMETER :: CA=(1,1)

! CA 0. ./ 12.0!

0 2 
 . 2* # 

COMPLEX CH

02.2" $.!.2!& . .#1/." $.!.2!&

CHARACTER (0

  #") [, attribs] :: vname

 " 2& $.!.2!& xx # /$02.  02.2 ." /+02. 020


2 02+2." 2 2 xx  2 LEN=xx 12 0   #"  /0 /&0 2
 " 2" 02.2" 2)20 .#2) 0&!02. )2 0. 
 !) " 2& 10& attrs . vname 0. / " 0 .#2) 12" .!.0"
02.2"


.!/0.

CHARACTER (10) :: NAME ! 02.2 NAME /$02.  $.!.2!0"

CHARACTER (LEN=10) :: NAME

CHARACTER (LEN=10), PARAMETER :: SURNAME=GEORGIOU


CHARACTER Z

/$02. ) . $.!.2!.

02.2"  + $.!.2!&

LOGICAL [ ( [ KIND = ] kind-value ) ] [ , attrs ] :: ] vname

2 2" kind-value  !0 . 0.     . . 0 2  2* 2&


/0/ & / LOGICAL*1, LOGICAL*2  LOGICAL*4 .212 $..  /0
!120  2 2" kind-value 2)20 .#2 0&!02. )2 0. 
 !) " 2& 10& attrs . vname 0. / " 0 .#2) 12" .!.0"
02.2"

.!/0.
LOGICAL (2) :: CONDITION
LOGICAL (2), PARAMETER :: VALUE=.TRUE.
LOGICAL SELECTION

3.

 0! $ 2& 2*&

Fortran 90 ." /0 2 /#.2)22. . / #!1 #0 2 #" / *" ."
1*02 #" 2* #" /0/ & 02)" 2& &12+ REAL, INTEGER  0 2
02  TYPE 2" ." 2 1*2.  #0 .!.2& 
TYPE (

.  # 2* # /0/ &
* " /0/ & ::  . 0/ #1
* " /0/ & ::  . 0/ #2

END TYPE (

.!/0.

.  # 2* # /0/ &

" # 1 #0 )2  #0 . / #!1 #0 . . *!
2* /0/ & # . /$02. 2. 12 $0. 0)" 3 22 )&" . .!/0.  2
002  2 ) . 2  .!) 0/ * 2!+ # . 2  .) # !0 12
FORTRAN. 0 2 $! 2+!. 0&!. . !00 . $!1 1 #0 2!0"
02.2" :
CHARACTER (LEN=20) :: SURNAME !  

CHARACTER (LEN=10) :: NAME ! 


INTEGER (KIND=2) :: AEM


INTEGER (KIND=1) :: GRADE

,.  ! *1.0 )&" . / #!1 #0 . . *! 2* /0/ & 0 2
) . students
TYPE STUDENTS
CHARACTER (LEN=20) :: SURNAME !  


CHARACTER (LEN=10) :: NAME ! 


INTEGER (KIND=2) :: AEM
INTEGER (KIND=1) :: GRADE
END TYPE STUDENTS

. 12 1#$0. . !1 #0 2" 02.2" ." # . /$ 2. /0/ . 2 #
1#0! # 2* # /0/ & 
TYPE (STUDENTS) :: STUDENT

  0
TYPE (

" 2* " /0/ &  12. 02.2+

!)1.1 12. 12 $0. 2" 1#0!" 02.2" 02. 0 2  0. .
2 # ).2 " 2" 02.2" . . 2 # 0! #" 0/ #  /./ .0 .
2 021 #0 2. 12 $0. 2 # 3 22  .12.1/", .! "   12
02.2 STUDENT .#2) . )2. &" 0" 


STUDENT=STUDENTS(.12.1/", .! ",1234,9)


STUDENT.SURNAME=.12.1/"

STUDENT.NAME=.! "
STUDENT.AEM=1234
STUDENT.GRADE=9

  0
02.2  . * # 0/ & 12. 2+

02.20/ 

2 . 200. &" /.$&!12) .01. 12 ) . 2" 02.2" . 2 # 0/ #
 !0 . $!1 0 . 2 

4.4

&" /+ #0 2 2. 2& ! 210&

2 2. .#2) 0!$ 2.  02010" ! 210" 2 # ! !.2 " ,.


!0 . ! 1 #0 /.20!. 2 #" .!.2& .)0" 12 1#!.3 2 #
! !.2 " 
. ,. !0 . 2 02 *0 1$). 10 ) 2 !)!.. ."  1#0!. .
!0 . 2 02 *0 1$).
12 .!$ 2 # ! !.2 " . . /+1 #0 2  1 ) 2 #
! !.2 " ."
/.  ! .) 2" 02.2" ." . . /+1 #0 2 ...!12 *
! .) 0 .#2)  0)22. 12 !)!.. ." . . /+1 #0 2
! 1.0 . 0*10
   #0 . 1#0$1 #0 12 0)0 !. . !0 12 2 " 2"
!." ." . 2 021 #0 2 1*  2  . ." /10 12
0)0 0201 !. .!.0 2.  !." 1$ & 
READ*,A,B
; = &


  ! *0 . $ #0 .!.& .) . 02 " 12 /. !. .!0 . 2"
/.$&! #0 0 0!&2.2)  
READ*,A,B ; Z=A+B

4.5

&" /+ #0


1#.!210&

2. 2&

# ! #2& .

2 2. .#2) 2 02 *2.  # ! #20" . 1#.!210"  0"


. *2. .) 2 #!& !)!.. . 2 /00!&1 1#0!&
/./.1+ 2 1*2. 2 #" . ..30! *0 10 .!.2& 03..

.!/0.
CONTAINS
SUBROUTINE EMBADON(A,B,C)
..
END SUBROUTINE EMBADON

/   ) 0)" ! !.2 " 12 Fortran  $0 2 0" /  

 . ! !.2 "

[PROGRAM

&1 *&
&1 2.0!+
&1 02.2+
2010" ! 210"
CONTAINS

! #20" #.!210"

 . ! !.2 "

END [PROGRAM >

.!/0.

@@

. !.30 !)!.. 2  . /.0 . 2 # . /+0 2  " 2"


.2." 0)" * # . 12 1#$0. . #  0 2 0./) 2 # * #

You might also like