00001 00002 c 00003 c Copyright (c) 1986,1987,1988,1989,1990,1991,1992,1993, 00004 c by Steve McMillan, Drexel University, Philadelphia, PA. 00005 c 00006 c All rights reserved. 00007 c 00008 c Redistribution and use in source and binary forms are permitted 00009 c provided that the above copyright notice and this paragraph are 00010 c duplicated in all such forms and that any documentation, 00011 c advertising materials, and other materials related to such 00012 c distribution and use acknowledge that the software was developed 00013 c by the author named above. 00014 c 00015 c THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR 00016 c IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED 00017 c WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. 00018 c 00019 00020 subroutine getnext(line,nl,iscolon,ic0,ic1,input,nin) 00021 c 00022 c Extract the next semicolon-delimited piece from the input line. 00023 c 00024 c Start at iscolon, which becomes ic0; on return, next semicolon 00025 c will be at ic1. The string "input" has NO trailing semicolon. 00026 c 00027 character*(*) line,input 00028 c 00029 ic0 = iscolon 00030 c 00031 15 do ic1 = iscolon+1,nl 00032 if (line(ic1:ic1).eq.';') go to 20 00033 end do 00034 ic1 = nl+1 00035 c 00036 20 if (ic1.lt.nl.and.line(ic1+1:ic1+1).eq.';') then 00037 c 00038 c Map ";;" to ";" and continue. 00039 c 00040 do i = ic1+1,nl-1 00041 line(i:i) = line(i+1:i+1) 00042 end do 00043 nl = nl- 1 00044 iscolon = ic1 00045 go to 15 00046 end if 00047 c 00048 nin = ic1-ic0-1 00049 input(1:nin) = line(ic0+1:ic1-1) 00050 iscolon = ic1 00051 c 00052 end