FORTRAN - PowerPoint PPT Presentation

About This Presentation
Title:

FORTRAN

Description:

Direct competition with assembler compelled it to have a fast, well optimized code ... INTEGER i(10) , REAL a(12), REAL b(*) However these are also valid : ... – PowerPoint PPT presentation

Number of Views:54
Avg rating:3.0/5.0
Slides: 21
Provided by: God106
Category:
Tags: fortran | reala

less

Transcript and Presenter's Notes

Title: FORTRAN


1
FORTRAN
  • FORmula TRANslator
  • -Anand Trivedi

2
HISTORY
  • Designed and written from scratch in 1954-57 by
    an IBM team lead by John W. Backus as the first
    ever High Level Language
  • Direct competition with assembler compelled it to
    have a fast, well optimized code

3
INTRODUCTION
  • Fortran is a general purpose programming
    language, mainly intended for engineering
    scientific computation
  • Browse over its most popular version Fortran
    77(in 1977)

4
LEXICAL ASPECTS
  • Input format Formerly Punch cards
  • Not a free format language
  • Column position rules
  • Col. 1 Blank, or a "c" or "" for
    comments
  • Col. 2-5 Statement label (optional)
  • Col. 6 Continuation of previous line
    (optional)
  • Col. 7-72 Statements
  • Col. 73-80 Sequence number (optional, rarely
    used today)
  • Delimiters End of the line
  • Blank space ignored
  • Variable names of 1-6 characters (A-Z, 0-9). The
    first character must be a letter.

5
EXPRESSIONS
  • Arithmetic Operators
  • , /, , -,
  • Relational Operators .LT., .LE., .GE., .GT.,
    .EQ., and .NE.
  • Logical Operators .NOT., .AND., .OR., .EQV. ,
    .NEQV.
  • eg logical a, b
  • a .TRUE.
  • b a .AND. 3 .LT. 5/2
  • Arithmetic expressions are evaluated first, then
    relational operators, and finally logical
    operators

6
DATA TYPES-I
  • Six data types are explicitly permitted
  • INTEGER (0,25,25,-25)
  • REAL (-1.5,3E5, .123E-3)
  • DOUBLE PRECISION (1D2, 6.89D-8)
  • COMPLEX ((-10,5), (.4E2,-.31E-1)
  • LOGICAL(.TRUE., .FALSE.)
  • CHARACTER(Dont, A1 PLC/)

7
DATA TYPES-II
  • Each variable has to be declared explicitly
  • Implicit rule All variables starting with the
    letters i-n are integers and all others are real
  • CONSTANT By using PARAMETER statement
  • eg. parameter (pi 3.14159)

8
SAMPLE EXAMPLE- I
  • 1234567890123456789012345678901234567890
  • program circle
  • real r, area
  • pi parameter (pi 3.14159)
  • C write read statements for I/p O/p
  • write (,) 'Give radius r'
  • read (,) r
  • area pirr
  • write (,) 'Area ', area
  • stop
  • end

9
DATA TYPES-III
  • Supports multiple assignments
  • eg data m,n/10,20/, x,y/22.5/
  • or
  • data m/10/, n/20/, x/2.5/, y/2.5/

10
DATA TYPES ARRAYS
  • The only complex data structure
  • Index starts from 1 onwards
  • INTEGER i(10) , REAL
    a(12), REAL b()
  • However these are also valid
  • REAL b(019), REA
    weird(-162237)
  • Allows arrays of up to seven dimensions
  • REAL a(3,5), REAL
    b(2,03)
  • By default values are not Zero.
  • Array values are not checked before being used.

11
CONTROL STATEMENTS-I
  • GOTO statement GOTO label
  • IF statement
  • Arithmetic if IF (e)s1,s2,s3
  • Eg. IF((AB)2)100,200,300
  • Logical if IF(e)statement
  • Eg.IF(A.LT.0.)a0.0
  • IF-THEN-ELSE Statement
  • If (e) THEN statements
  • Else statements
  • END IF
  • Nested IF allowed

12
CONTROL STATEMENTS-II
  • CONTINUE
  • Just one type of loop DO loop
  • eg integer i, n, sum
  • n 10
  • DO 10 i 0, n,2
  • write(,) 'i ', i
  • 10 CONTINUE
  • No recursion (static allocation)

13
FUNCTIONS
  • Inbuilt functions like abs, sin, cos etc
  • Define own functions
  • real function r(m,t)
  • real t,m
  • r 0.1t (m2 14m)
  • if (r .LT. 0) r 0.0
  • return
  • end

14
SUBROUTINES
  • Makes language modular
  • No global variables. So subroutines helps to pass
    it. Eg
  • subroutine iswap (a, b)
  • integer a, b
  • c Local variables
  • integer tmp 
  • tmp a
  • a b
  • b tmp 
  • return
  • end

15
CALL BY REFERENCE PARADIGM
Fortran follows call by reference paradigm. Eg.
  • program callex
  • integer m, n
  • m 1
  • n 2  
  • call iswap(m, n)
  • write(,) m, n 
  • stop
  • end
  • subroutine iswap (a, b)
  • integer a, b
  • c Local variables
  • integer tmp 
  • tmp a
  • a b
  • b tmp 
  • return
  • end

16
FORMAT STATEMENT
  • Used for particular input or output format
  • The most common format code letters are
  • A - text string
  • D - double precision numbers, exponent notation
  • E - real numbers, exponent notation
  • F - real numbers, fixed point format
  • I - integer
  • X - horizontal skip (space)
  • / - vertical skip (newline)

17
THINGS NOT COVERED
  • Input and Output concepts
  • Input and Output statements
  • (READ, WRITE, PRINT, OPEN,CLOSE,INQUIRE..)
  • Format specifications
  • (Numeric editing, Logical editing, Character
    editing..)

18
PRESENT APPLICATIONS
  • Cosmology, fusion research, surface physics,
    molecular dynamics.
  • Nasas Anisotropy probe (flown in 2000) used some
    legacy f-77 though mostly f-90
  • US geological survey still uses f-77!...

19
PRESENT FUTURE
  • F-90 has free format, dynamic allocation and
    pointers, user defined data type, modules,
    recursive functions, built-in arrays operator
    overloading.
  • Fortran 2000 (delayed to 2004) hopes to have
    object orientation, interoperability with C,
    asynchronous I/o and lot more

20
REFERENCES
  • http//personal.cfw.com/terry2/tutorial
  • http//www.ibiblio.org/pub/languages/fortran/unfp.
    html
  • http//physics.weber.edu/ostlie/phsx2300/future.pd
    f
  • http//macams1.bo.infn.it/tutorial/format.html
  • http//sunsite.univalle.edu.co/fortran/ch2-3.html
  • Fortran-77
  • - Harry Katzan
  • Structured Fortran77 Programming
  • - Seymour Pollack
Write a Comment
User Comments (0)
About PowerShow.com