LWKDIR (Assist to Set-up Working Dir. and Process Parameters, etc.)
PROMPT, PREMSG, DPCINI, DPCENT, STRDTM, LRTRIM,
ABEND, ABENDM, OPNPIN, CLSPIN, LWKDIR,
PARMIN, GPARMA, GPARMI, GPARMF, GPARMD,
GPARMIF, GPARMID, GPARMI2, GPARMF2, GPARMD2
GETARGS
To realize the functions of this group, the main source program 'lwkdir.c'
and additional sources of 'opnpin.c' and 'getargs.f' are used cooperatively.
NAME
prompt / premsg - Output message to screen with/without NewLine.
dpcini / dpcent - Display the progress of loop operation.
strdtm - Get Date/Time string at the moment.
lrtrim - Get character length of a string trimmed off right spaces.
abend - Error exit with "ERROR n" output to <stderr>.
abendm - Error exit with "[ABEND] message" output to <stderr>.
opnpin / clspin - Provide a chance to select predefined data file
as a data source for reading process parameters.
lwkdir - Display HOME (~) and CURRENT (.) directory paths, prompt and wait
for specifying Working Directory Path, and then dispay absolute
path name of that directory and filename list in it.
The absolute pathname of the directory is returned as a string
(with trailing '/'), which can be used to specify absolute
filename simply by appending short filename.
Here the "Working Directory" does not mean the change of Current
Working Directory environment, but offers the easier way of
specifying absolute path to target file.
parmin / gparma / gparmi / gparmf / gparmd
/ gparmif / gparmid / gparmi2 / gparmf2 / gparmd2
- Output prompt message and read process parameter(s).
getargs - Get array of parameter strings of the command which initiated
the main program process.
SYNOPSIS
call prompt(mesg)
mesg [char] Message string to output.
Output message to screen ("stderr" output).
call premsg(mesg)
mesg [char] Message string to output.
Output message with NewLine to screen ("stderr" output).
call dpcini(pmsg)
pmsg [char] Heading string (30 chars or less) for the progress display.
call dpcent(m, n)
n [int] Total number of loops.
m [int] Number of loops executed already.
The ratio of progress is considered to be (m / n).
call strdtm(sdtm)
sdtm [char*20] Character variable of 20 bytes long.
String in the form of "YYYY-MM-DD hh:mm:ss " is given.
nc = lrtrim(chrs)
chrs [char] String to be processed.
nc [int] Character length after trimming right spaces for "chrs".
call abend(icd)
icd [int] Code number to be output to <stderr>.
call abendm(msg)
msg [char] Message text to be output to <stderr>.
call opnpin()
Give a chance to select predefined data file for parameter input.
If NULL string is specified, process parameters are read from
Keyboard as usual. This mechanism is effective for "lwkdir"
function and "parmin/gparm?i/gparm??" routines until "clspin"
is called.
call clspin()
Finalize the "opnpin" mechanism.
Source codes of opnpin.c and getargs.f files are incorporated with
lwkdir.c to realize opnpin() and clspin() functions.
nch = lwkdir(len, dnm)
len [int] Maximum length of string variable 'dnm'.
dnm [char] String variable to return the absolute pathname of Working
Directory. (must be of size 'len' or more.)
nch [int] Number of characters returned in 'dnm'.
The string returned in 'dnm' is in the form of C language string
having a trailing NULL (char(0)) character.
If the length of path string of specified working directory is equal
to or higher than 'len', the process is terminated abnomally with
an error message output.
If the length of path string of HOME (~), CURRENT (.), or Working
Directory is higher than 120, the process is terminated abnomally
with an error message output.
call parmin(str, lbuf, buf)
str [char] Prompt message string.
lbuf [int] Maximum size (in bytes) to input to buf.
buf [char] Raw input string.
Output prompt message and input raw string under "opnpin" control.
call gparma(str, lnam, nam)
call gparmi(str, iv)
call gparmf(str, fv)
call gparmd(str, dv)
call gparmif(str, iv, fv)
call gparmid(str, iv, dv)
call gparmi2(str, iv, jv)
call gparmf2(str, fv, gv)
call gparmd2(str, dv, ev)
str [char] Prompt message string.
lnam [int] Maximum size (in bytes) to input to nam.
nam [char] String parameter without in-between white space is given.
iv,jv [int] Integer value parameter is given.
fv,gv [float] Floating value parameter is given.
dv,ev [double] Double floating value parameter is given.
Output prompt message and read parameter(s) under "opnpin" control.
call getargs(m, args, n)
m [int] Number of elements of array 'args'.
args [char] Array of character areas to receive parameter strings.
If the length of parameter string is not equal to the size
of array element, the string is shortened, or the rest is
filled with blank character(s).
n [int] The number of parameter strings actually received is given.
EXAMPLE
character wdr*80, fnam*120
c
call premsg('--- start ---')
call opnpin()
ldr = lwkdir(80,wdr) + 1
fnam = wdr
call gparma('Enter filename ==> ', 121-ldr, fnam(ldr:120))
open(10,file=fnam,status='old')
write(6,'(a,a)') 'Input file : ', fnam(1:lrtrim(fnam))
:
:
call clspin()
call dpcini('Loop operation - ')
do 10 i=1,imax
do 10 j=1,jmax
:
:
call dpcent((i-1)*jmax+j, imax*jmax)
10 continue
:
:
if (.....) call abend(90)
:
: