Muchos de los procedimientos de Fortran 90 pueden operar con arreglos como argumentos. Por ejemplo al pasarle un arreglo como argumento a las funciones matemáticas estándar, como SIN SQRT, ABS, etc., estas actúan sobre cada uno de los elementos de arreglo. Además, existen otros funciones útiles para operar sobre arreglos, por ejemplo para los arreglos:
se pueden realizar las siguientes operaciones:
a = CSHIFT(v,SHIFT=1) ! a = (/5, 6, 4/) a = EOSHIFT(m,SHIFT=(/-1,1/), & ! a = ((/9, 2, 6/), BOUNDARY=9,DIM=1) ! (/1, 4, 9/))
a = TRANSPOSE(m) ! a = ((/2, 7/), ! (/6, 1/), ! (/3, 4/))
a = SUM(m,DIM=1,MASK = m > 2) ! a = (/9, 11/) a = PRODUCT(m,DIM=1,MASK = m > 2) ! a = (/18, 28/) a = MAXVAL(m,DIM=2) ! a = (/7, 6, 4/) a = MINVAL(m,DIM=2,MASK = m > 2) ! a = (/7, 6, 3/) a = COUNT(f,DIM=2) ! a = (/2, 0, 1/) a = ALL(f,DIM=2) ! a = (/V, F, F/) a = ANY(f) ! a = T
a = SHAPE(m) ! a = (/3, 2/) a = SIZE(m) ! a = 6 f = ALLOCATED(n) ! f = T a = LBOUND(m) ! a = (/1, 1/) a = UBOUND(m) ! a = (/3, 2/)
a = MERGE(m,o,f) ! a = ((/2, 5, 1/), ! (/7, 9, 4/)) a = SPREAD((/1,2/),DIM=1,NCOPIES=3) ! a = ((/1, 1, 1/), ! (/2, 2, 2/)) m = RESHAPE((/2,6,3,7,1,4/),(/3,2/)) ! a = ((/2, 6, 3/), ! (/7, 1, 4/)) a = PACK(m,f,(/0,0,0,0/)) ! a = (/2, 7, 4, 0/) a = UNPACK(v,f,m) ! a = ((/4, 6, 3/), ! (/5, 1, 6/))
a = MATMUL(n,m) ! a = ((/38, 21/), (/20, 54/)) a = DOT_PRODUCT(u,v) ! a = 32
a = MAXLOC(m) ! a = (/1, 2/) a = MINLOC(m) ! a = (/2, 2/)