SUBROUTINE ASKN(STRING,IVAL,MIN,MAX,IDEF) BYTE IA(9),STRING CALL PARAMS(IPAR) 1 IF(IPAR .LT. 5) GO TO 20 ! No default available ENCODE(8,1000,IA) IDEF IA(9) = 0 1000 FORMAT(I8) CALL ASKS(STRING,IA,ISIZE,0,8,IA) IVAL = IDEF IF(ISIZE .EQ. 0) RETURN 10 IA(ISIZE + 1) = ',' DECODE(8,1000,IA) IVAL IF(IPAR .LT. 3) RETURN ! No max or min specified J = -1 I = NULTST(MIN) ! Non zero if no MIN IF(IPAR .LT. 4) GO TO 13 ! No max J = NULTST(MAX) ! Non zero if no MAX IF(J .NE. 0) GO TO 13 IF(I .NE. 0) GO TO 12 ! No MIN available IF(MIN .GT. MAX) RETURN ! MIN and MAX do not agree 12 IF(IVAL .LE. MAX) GO TO 13 ! Value is not too big WRITE(5,1002) MAX 1002 FORMAT(' *** ERROR *** Value must not be bigger than' I8) GO TO 1 13 IF(I .NE. 0) RETURN ! No MAX IF(IVAL .GE. MIN) RETURN ! Value not too small WRITE(5,1003) MIN 1003 FORMAT(' *** ERROR *** Value must not be smaller than' I8) GO TO 1 20 CALL ASKS(STRING,IA,ISIZE,0,8) GO TO 10 END SUBROUTINE ASKF(STRING,FVAL,FMIN,FMAX,FDEF) BYTE IA(16),STRING CALL PARAMS(IPAR) 1 IF(IPAR .LT. 5) GO TO 20 ! No default available ENCODE(15,1000,IA) FDEF IA(16) = 0 1000 FORMAT(1P,G15.7) 1001 FORMAT(G15.0) CALL ASKS(STRING,IA,ISIZE,0,15,IA) FVAL = FDEF IF(ISIZE .EQ. 0) RETURN 10 IA(ISIZE + 1) = ',' DECODE(15,1001,IA) FVAL IF(IPAR .LT. 3) RETURN ! No max or min specified J = -1 I = NULTST(FMIN) ! Non zero if no FMIN IF(IPAR .LT. 4) GO TO 13 ! No max J = NULTST(FMAX) ! Non zero if no FMAX IF(J .NE. 0) GO TO 13 IF(I .NE. 0) GO TO 12 ! No FMIN available IF(FMIN .GT. FMAX) RETURN ! FMIN and FMAX do not agree 12 IF(FVAL .LE. FMAX) GO TO 13 ! Value is not too big WRITE(5,1002) FMAX 1002 FORMAT(' *** ERROR *** Value must not be bigger than' 1P,G15.7) GO TO 1 13 IF(I .NE. 0) RETURN ! No FMAX IF(FVAL .GE. FMIN) RETURN ! Value not too small WRITE(5,1003) FMIN 1003 FORMAT(' *** ERROR *** Value must not be smaller than' 1P,G15.7) GO TO 1 20 CALL ASKS(STRING,IA,ISIZE,0,15) GO TO 10 END SUBROUTINE ASK2(STRING,VAL,MIN,MAX,DEF) INTEGER*4 VAL,MIN,MAX,DEF BYTE IA(16),STRING CALL PARAMS(IPAR) 1 IF(IPAR .LT. 5) GO TO 20 ! No default available ENCODE(15,1000,IA) DEF IA(16) = 0 1000 FORMAT(I15) CALL ASKS(STRING,IA,ISIZE,0,15,IA) VAL = DEF IF(ISIZE .EQ. 0) RETURN 10 IA(ISIZE + 1) = ',' DECODE(15,1000,IA) VAL IF(IPAR .LT. 3) RETURN ! No max or min specified J = -1 I = NULTST(MIN) ! Non zero if no MIN IF(IPAR .LT. 4) GO TO 13 ! No max J = NULTST(MAX) ! Non zero if no MAX IF(J .NE. 0) GO TO 13 IF(I .NE. 0) GO TO 12 ! No MIN available IF(MIN .GT. MAX) RETURN ! MIN and MAX do not agree 12 IF(VAL .LE. MAX) GO TO 13 ! Value is not too big WRITE(5,1002) MAX 1002 FORMAT(' *** ERROR *** Value must not be bigger than' I15) GO TO 1 13 IF(I .NE. 0) RETURN ! No MAX IF(VAL .GE. MIN) RETURN ! Value not too small WRITE(5,1003) MIN 1003 FORMAT(' *** ERROR *** Value must not be smaller than' I15) GO TO 1 20 CALL ASKS(STRING,IA,ISIZE,0,15) GO TO 10 END