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