C+ C Title: LASK C Author: T. R. Wyant C Date: 25-Sep-1987 C Modified: C Remarks: C INTEGER*2 function LASK returns an INTEGER*2 value C of .TRUE. or .FALSE. C- FUNCTION LASK (LGTH, TXT, DEF, 1 LUNO, LUNI, PNLEN, PNAM) INTEGER*2 LASK ! Ask for I*2 value. INTEGER*2 LGTH ! Length of prompt. LOGICAL*1 TXT (LGTH) ! Prompt. INTEGER*2 DEF ! Default. INTEGER*2 LUNO ! Output LUN. INTEGER*2 LUNI ! Input LUN. INTEGER*2 PNLEN ! Length of program name. LOGICAL*1 PNAM (PNLEN) ! Program name. CHARACTER*1 CDFLT ! Default value. CHARACTER*1 INPUT ! Input string. INTEGER*2 RESULT ! Result. IF (DEF) THEN CDFLT = 'Y' ELSE CDFLT = 'N' END IF 2000 WRITE (LUNO, 2010) TXT, CDFLT 2010 FORMAT ('$', A1, '? [Y/N D:', A, ']: ') READ (LUNI, 2020, END=9000, ERR=9100) INPUT 2020 FORMAT (A) IF (INPUT .EQ. ' ') THEN RESULT = DEF ELSE RESULT = INDEX ('TtYyFfNn', INPUT) IF (RESULT .LE. 0) GO TO 9100 RESULT = (RESULT .LE. 4) END IF GO TO 9900 9000 CALL EXIT 9100 WRITE (LUNO, 9110) PNAM, 'Input invalid' 9110 FORMAT (X, A1, ' -- Error -- ', A, '.') GO TO 2000 9900 LASK = RESULT RETURN END