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