dimtest.f
c<html>
c<head><title>dimtest.f</title></head>
c<body>
c<pre>
program dimtest
c
c test the DIM optional argument for Fortran 90
c intrinsic function sum, minval, maxval
c
c John Mahaffy 3/31/96
c
real a(4,3), asum1(3), asum2(4), amx1(3), amx2(4),
$ amn1(3), amn2(4), cshft1(4,3), cshft2(4,3)
integer ish1(3), ish2(4)
c <a name="data"><font color="FF0000">
data a/1,2,3,4,1,2,3,4,5,6,7,8/, ish1/3*-2/,
c </font></a>
$ ish2/4*-1/
c <a name=2><font color=113244>
asum1 = sum(a, dim=1)
asum2 = sum (a, dim=2)
c </font>
c <a name=3><font color=FF0000>
amx1 = maxval(a, dim=1)
amx2 = maxval( a, dim=2)
c </font>
c <a name=4><font color=991100>
amn1 = minval ( a, dim=1)
amn2 = minval( a, dim=2)
c </font>
c <a name=5><font color=773399>
cshft1 = cshift(a,shift=ish1,dim=1)
cshft2 = cshift(a,shift=ish2, dim=2)
c </font>
write(*,*) ' a = '
do i=1,4
write( *, 2000) (a(i,j),j=1,3)
enddo
write(*,"(/, 'Sum along the first dimension = ')")
write(*,2000) asum1
write(*,"(/, 'Sum along the second dimension = ')")
write(*,2000) asum2
write(*,"(/, 'Maximum along the first dimension = ')")
write(*,2000) amx1
write(*,"(/, 'Maximum along the second dimension = ')")
write(*,2000) amx2
write(*,"(/, 'Minimum along the first dimension = ')")
write(*,2000) amn1
write(*,"(/, 'Minimum along the second dimension = ')")
write(*,2000) amn2
write(*,"(/, 'Circular Shift up 2 along the 1st dimension = ')")
write(*,2000) cshft1
write(*,"(/, 'Circular shift up 1 along the 2nd dimension = ')")
write(*,2000) cshft2
2000 format(4x,4f8.1)
stop
end
c</pre>
c</body>
c</html>