Arrays - PowerPoint PPT Presentation

1 / 30
About This Presentation
Title:

Arrays

Description:

arr_max = max(100.0, a, b, c, d, e) Some special intrinsic functions: maxval(arr) maxloc(arr) ... loop instead of the intrinsic function max to compare elements ! ... – PowerPoint PPT presentation

Number of Views:24
Avg rating:3.0/5.0
Slides: 31
Provided by: dursunza
Category:
Tags: arrays

less

Transcript and Presenter's Notes

Title: Arrays


1
Arrays
  • Introduction

2
Introduction
In scientific and engineering computing, it is
very common to need to manipulate ordered sets of
values, such as vectors and matrices.   There is
a common requirement in many applications to
repeat the same sequence of operations on
successive sets of data.   In order to handle
both of these requirements, F provides extensive
facilities for grouping a set of items of the
same type into an array which can be operated on
          either as an object in its own
right         or by reference to each of its
individual elements.
3
The array concept
4
The array concept
  • A set with n (6) object, named A
  • In mathematical terms, we can call A, a vector
  • And we refer to its elements as A1, A2, A3,

5
The array concept
  • In F, we call such an ordered set of related
    variables an array
  • Individual items within an array array elements
  • A(1), A(2), A(3), , A(n)

6
Array Concept
In all the programs we have used one name to
refer to one location in the computers memory.
  It is possible to refer a complete set of data
obtained for example from repeating statements,
etc.   To do this is to define a group called
array with locations in the memory so that its
all elements are identified by an index or
subscript of integer type.   An array element is
designated by the name of the array along with a
parenthesized list of subscript expressions.
7
The array concept
  • Subscripts can be
  • x(10)
  • y(i4)
  • z(3imax(i, j, k))
  • x(int(y(i)z(j)x(k)))
  • x(1)x(2)x(4)1
  • print,x(5)

8
The array concept
A20
A31
9
Array declarations
  • type, dimension(subscript bounds)
    list_of_array_names
  • type, dimension(nm) variable_name_list
  • real, dimension(04) gravity, pressure
  • integer, dimension(1100) scores
  • logical, dimension(-1, 3) table

10
Examples for Shape Arrays
real, dimension ( 0 49 ) z ! the array
z has 50 elements   real, dimension ( 11 60
) a, b, c ! a,b,c has 50
elements   real, dimension ( -20 -1 ) x
! the array x has 20 elements   real,
dimension ( -9 10 ) y ! the array
y has 20 elements
11
Array declarations
  • Up to 7 dimensions
  • Number of permissible subscripts rank
  • Number of elements in a particular
    dimension extent
  • Total number of elements of an array size
  • Shape of an array is determined by its rank and
    the extent of each dimension

12
Array constants and initial values
Since an array consists of a number of array
elements, it is necessary to
provide values for each of these elements by
means of an array constructor .   In its
simplest form, an array constructor consists of a
list of values enclosed between special
delimiters                  the first of which
consists of the 2 characters ( /
               the second of the 2 characters
/ )    ( / value_1, value_2, .,
value_n /)
13
Examples
integer, dimension ( 10 ) arr   arr
(/ 3, 5, 7, 3, 27, 8, 12, 31, 4, 22 /)    arr (
1 ) 3  arr ( 5 ) 27 !
the value 27 is storen in the 5th location of the
array arr  arr ( 7 ) 12 arr ( 10 )
22
14
Array constructors
  • (/ value_1, value_2, /)
  • arr (/ 123, 234, 567, 987 /)
  • Regular patterns are commonimplied do(/
    value_list, implied_do_control /)
  • arr (/ (i, i 1, 10) /)
  • arr (/ -1, (0, i 1, 48), 1 /)

15
Initialization
  • You can declare and initialize an array at the
    same time
  • integer, dimension(50) my_array (/ (0, i
    1, 50) /)

16
Input and output
  • Array elements treated as scalar variables
  • Array name may appear whole array
  • Subarrays can be referred too

EXAMPLE integer, dimension ( 5 )
value read , value read , value(3)
17
Examples
  • real, dimension(5) p, qinteger, dimension(4)
    rprint , p, q(3), rread , p(3), r(1), q
  • print , p, q (3), q (4), r
  • print , q (2)
  • ! displays the value in the 2nd location of the
    array q
  • print , p
  • ! displays all the values storen in the array
    p

18
Using arrays and array elements...
  •  
  • The use of array variables within a loop ,
    therefore, greatly increases the power and
    flexibility of a program. F enables an array to
    be treated as a single object in its own right,
    in much the same way as a scalar object.
    Assignment of an array constant to an array
    variable will be performed as is seen below
  •   array_name (/ list_of_values /)
  • array_name (/ value_1, value_2, ..,
    value_n /)
  • An array element can be used anywhere that a
    scalar variable can be used
  • a(2) t(5) - t(3)q(2) a(i) t(j) - f(k)

19
Using arrays and array elements...
  • An array can be treated as a single object
  • Two arrays are conformable if they have the same
    shape
  • A scalar, including a constant, is conformable
    with any array
  • All intrinsic operations are defined between two
    conformable objects

20
Using arrays and array elements...
Arrays having the same number of elements may be
applied to arrays and simple expressions. In this
case, operation applied toan array are carried
out elementwise.
  • .
  • real, dimension(20) a, b, c
  • .
  • .
  • a bc
  • do i 1, 20
  • a(i) b(i)c(i)
  • end do

21
Example
integer, dimension ( 4 ) a, b integer,
dimension ( 0 3 ) c integer, dimension (
6 9 ) d   a (/ 1, 2, 3, 4 /) b
(/ 5, 6, 7, 8 /) c (/ -1, 3, -5, 7
/) c(0) c(1) c(2) c(3) a a b
! will result a (/ 6, 8, 10, 12 /) d
2 abs ( c ) 1 ! will result d
(/ 3, 7, 11, 15 /)
d(6) d(7) d(8) d(9)
22
Intrinsic procedures with arrays
  • Elemental intrinsic procedures with arrays
  • array_1 sin(array_2)
  • arr_max max(100.0, a, b, c, d, e)
  • Some special intrinsic functions
  • maxval(arr)
  • maxloc(arr)
  • minval(arr)
  • minloc(arr)
  • size(arr)
  • sum(arr)

23
Sub-arrays
  • Array sections can be extracted from a parent
    array in a rectangular grid usinf subscript
    triplet notation or using vector subscript
    notation
  • Subscript triplet subscript_1 subscript_2
    stride

Similar to the do loops, a subscript triplet
defines an ordered set of subscripts
beginning with subscript_1,     ending with
subscript_2 and  considering a seperation of
stride between the consecutive subscripts.
The value of stride must not be zero.
24
Sub-arrays
  • Subscript triplet subscript_1 subscript_2
    stride
  • Simpler forms
  • subscript_1 subscript_2
  • subscript_1
  • subscript_1 stride
  • subscript_2
  • subscript_2 stride
  • stride

25
Example
real, dimension ( 10 ) arr   arr ( 1 10
) ! rank-one array containing all the
elements of arr. arr ( ) !
rank-one array containing all the elements of
arr. arr ( 3 5 ) ! rank-one array
containing the elements arr (3), arr(4),
arr(5). arr ( 9 ) ! rank-one array
containing the elements arr (1), arr(2),.,
arr(9). arr ( 4 ) ! rank-one array
containing the elements arr (1), arr(5),arr(9).
26
Example
integer, dimension ( 10 ) a integer,
dimension ( 5 ) b, i integer
j   a (/ 11, 22, 33, 44, 55, 66, 77, 88,
99, 110 /) i (/ 6, 5, 3, 9, 1 /)   b
a ( i ) ! will result b ( 66, 55, 33,
99, 11 /) a ( 2 10 2 ) ! will result
a ( 22, 44, 66, 88, 110 /)   a ( 1 10 2
) (/ j 2, ( j 1, 5 ) /) ! will
result a ( 1, 4, 9, 16, 25 /)

a(1) a(3) a(5) a(7) a(9)
27
Type of printing sub-arrays
work ( / 3, 7, 2 /) print , work (1),
work (2), work (3) ! or print , work ( 1 3
) ! or print , work ( 1 ) ! or integer
i do i 1, 3, 1 print , work
(i) end do ! or another example print , sum
( work (1 3) ) ! or another example print ,
sum ( work (1 3 2) )
28
Type of INPUT of sub-arrays
integer, dimension ( 10 ) a integer,
dimension ( 3 ) b . b a ( 4 6
) ! b (1 ) a (4) ! b (2 ) a
(5) ! b (3 ) a (6)   . a ( 1 3 )
0 ! a(1) a(2) a(3) 0 a ( 1 2 ) 1 !
a(1) a(3) . a(9) 1 a ( 1 2 ) a ( 2
2 ) 1 ! a(1) a(2) 1 ! a(3)
a(4) 1 ! a(5) a(6) 1 ! etc.
29
PROBLEM Write a function that takes 2 real
arrays as its arguments returns an array in which
each element is the maximum of the 2
corresponding elements in the input
array  function max_array ( array_1, array_2 )
result (maximum_array)  ! this function
returns the maximum of 2 arrays on an element-by-
element basis  ! dummy arguments real,
dimension ( ) , intent (in) array_1,
array_2 ! result variable real, dimension ( size
(array_1) ) maximum_array ! use the
intrinsic function max to compare
elements maximum_array max ( array_1,
array_2) ! or use a do-loop instead of the
intrinsic function max to compare elements !
do i 1, size (array_2) ! maximum_array (
i ) max ( array_1 ( i ), array_2 ( i ) ) !
end do end function max_array
30
Do following problems for practice
  • 7.8
  • 7.10
Write a Comment
User Comments (0)
About PowerShow.com