You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
2.0 KiB
104 lines
2.0 KiB
C Copyright(C) 1999-2020 National Technology & Engineering Solutions
|
|
C of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
|
|
C NTESS, the U.S. Government retains certain rights in this software.
|
|
C
|
|
C See packages/seacas/LICENSE for details
|
|
|
|
C=======================================================================
|
|
LOGICAL FUNCTION LXRNL(VAL,N,CH)
|
|
DOUBLE PRECISION VAL(*)
|
|
CHARACTER CH
|
|
LOGICAL LDUM,LXGTCH,LXGTWH,LXREAL
|
|
DOUBLE PRECISION XX,XY
|
|
|
|
I = 1
|
|
2320 IF (.NOT. (I.LE.N)) GO TO 2340
|
|
VAL(I) = 0.
|
|
I = I + 1
|
|
GO TO 2320
|
|
|
|
2340 CONTINUE
|
|
N = 0
|
|
LXRNL = .TRUE.
|
|
2350 CONTINUE
|
|
LDUM = LXGTWH(CH)
|
|
IF (LXREAL(VAL(N+1),CH)) THEN
|
|
N = N + 1
|
|
LDUM = LXGTWH(CH)
|
|
IF (LXGTCH('#',CH)) THEN
|
|
RETURN
|
|
|
|
END IF
|
|
|
|
IF (LXGTCH(',',CH)) THEN
|
|
GO TO 2360
|
|
|
|
END IF
|
|
|
|
IF (CH.EQ.CHAR(0)) THEN
|
|
RETURN
|
|
|
|
END IF
|
|
|
|
IF (LXGTCH('*',CH)) THEN
|
|
LDUM = LXGTWH(CH)
|
|
XX = VAL(N)
|
|
IF (.NOT.LXREAL(XY,CH)) THEN
|
|
LXRNL = .FALSE.
|
|
RETURN
|
|
|
|
END IF
|
|
|
|
M = INT(XX + .1)
|
|
N0 = N
|
|
2380 IF (.NOT. (N.LT.M+N0)) GO TO 2400
|
|
VAL(N) = XY
|
|
N = N + 1
|
|
GO TO 2380
|
|
|
|
2400 CONTINUE
|
|
LDUM = LXGTWH(CH)
|
|
N = N0 + MAX(M-1,0)
|
|
IF (LXGTCH(',',CH)) THEN
|
|
GO TO 2360
|
|
|
|
END IF
|
|
|
|
IF (LXGTCH('#',CH)) THEN
|
|
RETURN
|
|
|
|
END IF
|
|
|
|
IF (CH.EQ.CHAR(0)) THEN
|
|
RETURN
|
|
|
|
END IF
|
|
|
|
END IF
|
|
|
|
ELSE IF (LXGTCH(',',CH)) THEN
|
|
VAL(N+1) = 0.
|
|
N = N + 1
|
|
|
|
ELSE IF (LXGTCH('#',CH)) THEN
|
|
RETURN
|
|
|
|
ELSE IF (CH.EQ.CHAR(0)) THEN
|
|
IF (N.EQ.0) THEN
|
|
RETURN
|
|
|
|
END IF
|
|
|
|
N = N + 1
|
|
VAL(N) = 0.
|
|
RETURN
|
|
|
|
ELSE
|
|
LXRNL = .FALSE.
|
|
RETURN
|
|
|
|
END IF
|
|
|
|
2360 GO TO 2350
|
|
|
|
END
|
|
|