+++ /dev/null
-c===========================================================================
-c
-c This file is part of TISEAN
-c
-c Copyright (c) 1998-2007 Rainer Hegger, Holger Kantz, Thomas Schreiber
-c
-c TISEAN is free software; you can redistribute it and/or modify
-c it under the terms of the GNU General Public License as published by
-c the Free Software Foundation; either version 2 of the License, or
-c (at your option) any later version.
-c
-c TISEAN is distributed in the hope that it will be useful,
-c but WITHOUT ANY WARRANTY; without even the implied warranty of
-c MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-c GNU General Public License for more details.
-c
-c You should have received a copy of the GNU General Public License
-c along with TISEAN; if not, write to the Free Software
-c Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-c
-c===========================================================================
-c arguments.f
-c get command line arguments
-c author T. Schreiber (1998)
-c===========================================================================
-
- subroutine argdel(i)
- parameter(margs=1000)
- dimension largs(margs)
- common /args/ nargs, largs
-
- if(i.eq.0) then
- nargs=min(margs,iargc())
- do 10 n=1,nargs
- 10 largs(n)=1
- else
- if(i.gt.iargc()) return
- if(largs(i).eq.0) return
- largs(i)=0
- nargs=nargs-1
- endif
- end
-
- function nstrings()
- parameter(margs=1000)
- dimension largs(margs)
- common /args/ nargs, largs
-
- nstrings=max(nargs,1)
- end
-
- subroutine nthstring(n,string)
- parameter(margs=1000)
- dimension largs(margs)
- common /args/ nargs, largs
- character*(*) string
-
- iv=0
- do 10 i=1,iargc()
- if(largs(i).eq.1) iv=iv+1
- 10 if(iv.eq.n) goto 1
- string="-"
- return
- 1 call getarg(i,string)
- end
-
- function imust(c)
-c get mandatory integer argument, call usage statement if missing
- character c
-
- imust=iopt(c,1,ierr)
- if(ierr.ne.0) call usage()
- end
-
- function fmust(c)
-c get mandatory real argument, call usage statement if missing
- character c
-
- fmust=fopt(c,1,ierr)
- if(ierr.ne.0) call usage()
- end
-
- subroutine smust(c,string)
-c get mandatory string argument, call usage statement if missing
- character c
- character*(*) string
-
- call sopt(c,1,string,ierr)
- if(ierr.ne.0) call usage()
- end
-
- function ican(c,idef)
-c get optional integer argument, provide default if missing
- character c
-
- ican=iopt(c,1,ierr)
- if(ierr.ne.0) ican=idef
- end
-
- function fcan(c,fdef)
-c get optional real argument, provide default if missing
- character c
-
- fcan=fopt(c,1,ierr)
- if(ierr.ne.0) fcan=fdef
- end
-
- subroutine stcan(c,string,dstring)
-c get optional string argument, provide default if missing
- character c
- character*(*) string, dstring
-
- call sopt(c,1,string,ierr)
- if(ierr.ne.0) string=dstring
- end
-
- function igetout(fout,iverb)
-c gets alternate output file name, default " "
-c return 1 if fout must be determined from input file name
- character*(*) fout
-
- igetout=0
- call stcan("o",fout," ")
- if(fout.ne." ".and.nstrings().gt.1.and.iv_io(iverb).ne.0)
- . write(istderr(),*) '*** single output file for multiple'//
- . ' input files - results may be overwritten'
- if(fout.ne." ") return
- igetout=lopt("o",1)
- end
-
- subroutine imcan(c,mmax,mc,ilist)
-c get optional integer argument with multiple comma separated values
- character c
- character*72 string
- dimension ilist(*)
-
- call stcan(c,string," ")
- string(index(string," "):index(string," "))=","
- do 10 m=1,mmax
- if(index(string,",").le.1) goto 1
- read(string(1:index(string,",")-1),*,err=1,end=1) ilist(m)
- 10 string=string(index(string,",")+1:72)
- 1 mc=m-1
- end
-
- subroutine fmcan(c,mmax,mc,flist)
-c get optional real argument with multiple comma separated values
- character c
- character*72 string
- dimension flist(*)
-
- call stcan(c,string," ")
- string(index(string," "):index(string," "))=","
- do 10 m=1,mmax
- if(index(string,",").le.1) goto 1
- read(string(1:index(string,",")-1),*,err=1,end=1) flist(m)
- 10 string=string(index(string,",")+1:72)
- 1 mc=m-1
- end