aboutsummaryrefslogtreecommitdiff
path: root/sys/gio/ncarutil/autograph/agmaxi.f
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /sys/gio/ncarutil/autograph/agmaxi.f
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'sys/gio/ncarutil/autograph/agmaxi.f')
-rw-r--r--sys/gio/ncarutil/autograph/agmaxi.f60
1 files changed, 60 insertions, 0 deletions
diff --git a/sys/gio/ncarutil/autograph/agmaxi.f b/sys/gio/ncarutil/autograph/agmaxi.f
new file mode 100644
index 00000000..9c981e0d
--- /dev/null
+++ b/sys/gio/ncarutil/autograph/agmaxi.f
@@ -0,0 +1,60 @@
+C
+C
+C +-----------------------------------------------------------------+
+C | |
+C | Copyright (C) 1986 by UCAR |
+C | University Corporation for Atmospheric Research |
+C | All Rights Reserved |
+C | |
+C | NCARGRAPHICS Version 1.00 |
+C | |
+C +-----------------------------------------------------------------+
+C
+C
+C ---------------------------------------------------------------------
+C
+ FUNCTION AGMAXI (SVAL,ZHGH,ZDRA,NVIZ,IIVZ,NEVZ,IIEZ)
+C
+ DIMENSION ZDRA(1)
+C
+C The routine AGMAXI returns the maximum value of the elements in ZDRA
+C specified by NVIZ, IIVZ, NEVZ, and IIEZ, skipping elements having the
+C special value SVAL (or more than ZHGH, if ZHGH is not equal to SVAL).
+C
+C -- NVIZ is the number of vectors of data stored in ZDRA.
+C
+C -- IIVZ is the index increment from one data vector to the next.
+C
+C -- NEVZ is the number of elements per vector to be examined.
+C
+C -- IIEZ is the index increment from one vector element to the next.
+C If IIEZ is 0, the array is ignored and NEVZ is returned.
+C
+ AGMAXI=FLOAT(NEVZ)
+ IF (IIEZ.EQ.0) RETURN
+C
+ AGMAXI=SVAL
+ INDZ=1-IIEZ
+C
+ DO 103 I=1,NVIZ
+ IF (ZHGH.EQ.SVAL) THEN
+ DO 101 J=1,NEVZ
+ INDZ=INDZ+IIEZ
+ IF (ZDRA(INDZ).EQ.SVAL) GO TO 101
+ IF (AGMAXI.EQ.SVAL) AGMAXI=ZDRA(INDZ)
+ AGMAXI=AMAX1(AGMAXI,ZDRA(INDZ))
+ 101 CONTINUE
+ ELSE
+ DO 102 J=1,NEVZ
+ INDZ=INDZ+IIEZ
+ IF (ZDRA(INDZ).EQ.SVAL.OR.ZDRA(INDZ).GT.ZHGH) GO TO 102
+ IF (AGMAXI.EQ.SVAL) AGMAXI=ZDRA(INDZ)
+ AGMAXI=AMAX1(AGMAXI,ZDRA(INDZ))
+ 102 CONTINUE
+ END IF
+ INDZ=INDZ-NEVZ*IIEZ+IIVZ
+ 103 CONTINUE
+C
+ RETURN
+C
+ END