subroutine askfpn(imax,kmax) C C C Copyright (C) Shell Research Ltd. 1983 C C C The copyright in this computer program and associated user C instructions contained in this document is the property of C Shell Research Ltd.. No guarantee is given or may be implied C as to the adequacy of the program or its suitability for any C particular purpose and no liability is accepted for any loss C or damage arising out of its use. C C C C Version: Y07.00 C C C Author: Ray Carpenter 22-Mar-83 C C Revised: Ray Carpenter 29-Feb-84 C C*********************************************************************** C C Function: C C takes an ASCII string in qs and transfers within limits to qlin C without leading spaces or zeros. C C Parameter inputs: C C imax - the maximum number of leading zeros or spaced to be suppressed C kmax - the maximum number of input characters C C Global inputs: C C qs - the input string C C Parameter outputs: C C None C C Global outputs: C C qlin - resultant characters are stored here. C ipoint - updated pointer into qlin. C C Errors: C C None C C*********************************************************************** C C Code begins :- C C implicit byte (q) C common /askcom/ 1 iparam !parameter word used by some routines 2,ipoint !output terminal buffer pointer 3,iplen !prompt length 4,qlin(82) !terminal I/O buffer 5,qmin !set if user supplied minimum value 6,qmax !set if user supplied maximum value 7,qdflt !set if user supplied default 8,qctrlz !set if ^Z is invalid 9,qclc !set if lower to upper case conversion reqd. 1,qdsply !set if no display of current fields reqd. 2,qspc !set if special characters valid. 3,qvtmd !set if user wants video mode 4,qprmpt(3) !prompt character (default is '?') 5,qs(12) !temporary string storage C C do 10 k=1,imax if(qs(k) .ne. "40 .and. qs(k) .ne. "60) goto 20 10 continue C k=imax+1 !never sure how one exits a DO loop C 20 do 30 kk=k,kmax if(qs(kk) .eq. 0) goto 99 call askfpb(1,qs(kk)) 30 continue C C 99 return C C end