C+ C NAME: C AskLog C PURPOSE: C Prompt user for logical value (0=No;1=Yes) C CATEGORY: C I/O C CALLING SEQUENCE: subroutine AskLog(cQuery,Val) C INPUTS: C cQuery Character*(*) query to be used as prompt C Val Logical default value C OUTPUTS: C Val Logical user-defined value C INCLUDE: include 'dirspec.h' C CALLS: C itrim C PROCEDURE: C User is prompted for a new value. The current (input) value is the C default. The default is selected by hitting RETURN. C MODIFICATION HISTORY: C Old, very old C- character cQuery*(*) logical Val parameter (LINE = 58) character cNew*5 character cH*58 /' '/ character cAdd*14 /' (0=No; 1=Yes)'/ character cFrm*5 /'(I00)'/ L = index(cQuery,'$') if (L .ne. 0) then I1 = L+1 Val = cQuery(I1:I1) .eq. 't' .or. cQuery(I1:I1) .eq. 'T' L = L-1 else L = itrim(cQuery) end if L = L+14 I2 = max(2,LINE-L) I1 = I2/2 1 iVal = 1 if (.not. Val) iVal = 0 if (cOpSys .eq. OS__VMS) then write (*,'(80(1H ))') write (*,'(1H+,4A,2H< ,I1,2H >,$)') cH(:I1),cQuery(:L-14),cAdd,cH(:I2-I1),iVal else write (*,'(1H ,4A,2H< ,I1,2H >,$)') cH(:I1),cQuery(:L-14),cAdd,cH(:I2-I1),iVal end if read (*,'(A)') cNew N = itrim(cNew) if (N .eq. 0) return do I=1,N !Check for funny input characters if (llt(cNew(I:I),'-') .or. lgt(cNew(I:I),'9')) go to 1 end do !Only numericals accepted write (cFrm(3:4),'(I2.2)') N read (cNew,cFrm,err=1) iVal !New value adopted if (iVal .ne. 0 .and. iVal .ne. 1) go to 1 Val = iVal .ne. 0 return end