Fortran 90
FORTRAN 90
DATA TYPES
----------------------
Data types: integer, real, double precision,
complex, character, logical
type[kind=|kind()][attributes]::var[=init_vl],...]
Attributes: parameter, dimension, save,
intent, allocatable
DATA TYPE EXAMPLES P54
----------------------
ARRAY OPERATIONS
----------------------
real::s
real,dimension(n)::a,b
integer::i,j
integer,dimension(n)::p
.
.
.
a = sqrt(a) + b**2
where(b /= 0) a = a/b
a=s/2
a(i:j) = b(j:i:-1)
a(p) = b
a = cshift(a,1)
s = sum(b)
SWAP SUBROUTINE EXAMPLE
----------------------
subroutine array_swap(x,y)
real,dimension(:),intent(inout)::x,y
real,dimension(size(x))::z
z=x
x=y
y=z
end subroutine array_swap
ALLOCATION, DEALLOCATION
------------------------
real, dimension(:,:),allocatable::a
.
.
.
allocate(a(2*n,2*n+1))
allocated a
deallocate a
ARRAY SUBSECTIONS
------------------------
real,dimension(100,100)::a
a(1,1)
a(1,:)
a(2:99,2:99)
a(1,1:100:2)
a(1:100:99,1:100:99)
ex1.f90
-------
real,dimension(1000)::a=(/(i,i=1,1000)/)
real,dimension(1000)::b,c
b=a
c=a+b
print *, c
end
ex2.f90
-------
real,dimension(10,10)::a=(/((i+j,i=1,10),j=1,10)/)
real,dimension(10,10)::b,c
b=a
c=a+b
print *, c
end
ex3.f90
-------
real,dimension(10,10)::a=(/((i+2*j,i=1,10),j=1,10)/)
real,dimension(10,10)::b,c
b=sqrt(a)
c=a+b
print *, c
end