To implement the changes, the following subroutines have been created:
SIC_CH(LINE,IOPT,IARG,ARGUM,LENGTH,PRESENT,ERROR)returns character string (as before)
SIC_KE(LINE,IOPT,IARG,ARGUM,LENGTH,PRESENT,ERROR)returns a keyword (upcase converted).
All programs have been converted to use SIC_KE whenever necessary. This guarantees the compatibility of the programs with both versions (old and new) of SIC.
SUBROUTINE SIC_DESC (LINE,IOPT,IARG,DESC,DEFAULT,PRESENT,ERROR)returns a SIC descriptor (DESC) corresponding to the IARGth argument of option IOPT. The expected argument type (R*4, R*8, I*4, or C*(*)) is derived from the supplied DEFAULT descriptor. The argument must thus be either a constant or a variable of the appropriate type, but cannot be a mathematic expression. If the argument is "*" (wildcard), the programmer supplied DEFAULT descriptor is returned.
SUBROUTINE SIC_INCA (LINE,IOPT,IARG,DESC,DEFAULT,PRESENT,ERROR)returns a SIC descriptor (DESC) corresponding to an incarnation of the IARGth argument of option IOPT. The expected argument type (R*4, R*8, I*4, or C*(*)) is derived from the supplied DEFAULT descriptor. The argument can thus be either a constant, a variable, or a mathematical expression. Proper incarnation in the desired type is performed if needed. If the argument is "*" (wildcard), the DEFAULT descriptor is returned.
INTEGER FUNCTION SIC_FINDFILE (NAME,FILE,PATH,EXT)which searches for an existing FILE of given NAME on path PATH, and with default extension EXT. Returns 0 if the file is found, 1 otherwise.
Another possible subroutine which could be useful:
SUBROUTINE SIC_FILE (LINE,IOPT,IARG,NAME,FILE,PATH,TYPE,PRESENT,ERROR)would combine the current sequence of SIC_CH and SIC_PARSEF, or two variants, one for new files, and one for existing files (combining SIC_CH and SIC_FINDFILE).