Previous: Summary of Major Portability Rules Up: VICAR Porting Guide Next: About this document ...

Summary of Calling Sequences

This section contains a brief synopsis of the calling sequences for all the RTL routines, in alphabetical order. No description is given for the routines or their arguments; see the VICAR Run-Time Library Reference Manual or Section , New Routines, for those.

This summary is mainly intended as a guide to help you in the porting process. Use it to find out what the required parameters are for routines that formerly had optional arguments, and how to convert calls from the old Fortran interface to the new C interface.

For routines that take optional arguments (keyword-value pairs), the allowed keywords are listed. You must have an argument list terminator on every routine that lists optional arguments, even if you don't use them. Some of the keywords listed are not implemented or not useful, but they are allowed by the parameter parsing mechanism. See the VICAR Run-Time Library Reference Manual as updated in this document for details on which optionals are active.

The actual data type declarations for the data types below are listed in Table for Fortran, and Table for C. Keep in mind that a value listed as ``output'' or ``in/out'' in a C call must be passed by address, not value.

abend/zabend


call abend
zabend();

qprint/zqprint


call qprint(message, length)
zqprint(message, length);

message input string length input integer

sc2for


sc2for(c_string, max_length, for_string, argptr, nargs, argno, strno);

c_string input string max_length input integer for_string output fortran string argptr input void pointer nargs input integer argno input integer strno input integer

sc2for_array


sc2for_array(c_string, len, nelements, for_string, max_length, argptr,
              nargs, argno, strno);

c_string input string array, size nelements len input integer nelements input integer for_string output fortran string array, size nelements max_length in/out integer argptr input void pointer nargs input integer argno input integer strno input integer

sfor2c


sfor2c(c_string, len, for_string, argptr, nargs, argno, strno);

c_string output string len input integer for_string input fortran string argptr input void pointer nargs input integer argno input integer strno input integer

sfor2c_array


sfor2c_array(c_string, max_length, nelements, for_string, argptr, nargs,
              argno, strno);

c_string output pointer to string array, size nelements max_length in/out integer nelements input integer for_string input fortran string array, size nelements argptr input void pointer nargs input integer argno input integer strno input integer

sfor2len


sfor2len(for_string, argptr, nargs, argno, strno);

for_string input fortran string argptr input void pointer nargs input integer argno input integer strno input integer

sfor2ptr


ptr = sfor2ptr(for_string);

for_string input fortran string ptr output string pointer

xladd/zladd


call xladd(unit, type, key, value, status, <optionals>, ' ')
status = zladd(unit, type, key, value, <optionals>, 0);

unit input integer type input string key input string value input value array, size NELEMENT status output integer

Optionals allowed:


    ELEMENT             input       integer
    ERR_ACT             input       string
    ERR_MESS            input       string
    FORMAT              input       string
    HIST                input       string
    INSTANCE            input       integer
    LEVEL               input       integer
    MODE                input       string
    NELEMENT            input       integer
    PROPERTY            input       string
    ULEN                input       integer

xldel/zldel


call xldel(unit, type, key, status, <optionals>, ' ')
status = zldel(unit, type, key, <optionals>, 0);

unit input integer type input string key input string status output integer

Optionals allowed:


    ELEMENT             input       integer
    ERR_ACT             input       string
    ERR_MESS            input       string
    HIST                input       string
    INSTANCE            input       integer
    NELEMENT            input       integer
    NRET                output      integer
    PROPERTY            input       string

xlget/zlget


call xlget(unit, type, key, value, status, <optionals>, ' ')
status = zlget(unit, type, key, value, <optionals>, 0);

unit input integer type input string key input string value output value array, size NELEMENT status output integer

Optionals allowed:


    ELEMENT             input       integer
    ERR_ACT             input       string
    ERR_MESS            input       string
    FORMAT              input       string
    HIST                input       string
    INSTANCE            input       integer
    LENGTH              output      integer
    LEVEL               output      integer
    NELEMENT            input       integer
    NRET                output      integer
    PROPERTY            input       string
    ULEN                input       integer

xlgetlabel/zlgetlabel


call xlgetlabel(unit, buf, bufsize, status)
status = zlgetlabel(unit, buf, bufsize);

unit input integer buf output string bufsize in/out integer status output integer

xlhinfo/zlhinfo


call xlhinfo(unit, tasks, instances, nhist, status, <optionals>, ' ')
status = zlhinfo(unit, tasks, instances, nhist, <optionals>, 0);

unit input integer tasks output string array, size nhist instances output integer array, size nhist nhist in/out integer status output integer

Optionals allowed:


    ERR_ACT             input       string
    ERR_MESS            input       string
    NRET                output      integer
    ULEN                input       integer

xlinfo/zlinfo


call xlinfo(unit, type, key, format, maxlen, nelement, status, <optionals>, ' ')
status = zlinfo(unit, type, key, format, maxlen, nelement, <optionals>, 0);

unit input integer type input string key input string format output string maxlen output integer nelement output integer status output integer

Optionals allowed:


    ERR_ACT             input       string
    ERR_MESS            input       string
    HIST                input       string
    INSTANCE            input       integer
    MOD                 output      integer
    PROPERTY            input       string
    STRLEN              output      integer

xlninfo/zlninfo


call xlninfo(unit, key, format, maxlength, nelement, status, <optionals>, ' ')
status = zlninfo(unit, key, format, maxlength, nelement, <optionals>, 0);

unit input integer key output string format output string maxlength output integer nelement output integer status output integer

Optionals allowed:


    ERR_ACT             input       string
    ERR_MESS            input       string
    MOD                 output      integer
    STRLEN              output      integer

xlpinfo/zlpinfo


call xlpinfo(unit, properties, nprop, status, <optionals>, ' ')
status = zlpinfo(unit, properties, nprop, <optionals>, 0);

unit input integer properties output string array, size nprop nprop in/out integer status output integer

Optionals allowed:


    ERR_ACT             input       string
    ERR_MESS            input       string
    NRET                output      integer
    ULEN                input       integer

xmove/zmove


call xmove(from, to, len)
zmove(from, to, len);

from input pixel buffer, size len (bytes) to output pixel buffer, size len (bytes) len input integer

xvadd/zvadd


call xvadd(unit, status, <optionals>, ' ')
status = zvadd(unit, <optionals>, 0);

unit input integer status output integer

Optionals allowed:


    BHOST               input       string
    BIN_CVT             input       string
    BINTFMT             input       string
    BLTYPE              input       string
    BREALFMT            input       string
    CLOS_ACT            input       string
    COND                input       string
    CONVERT             input       string
    FORMAT              input       string
    HOST                input       string
    I_FORMAT            input       string
    INTFMT              input       string
    IO_ACT              input       string
    IO_MESS             input       string
    LAB_ACT             input       string
    LAB_MESS            input       string
    METHOD              input       string
    OP                  input       string
    O_FORMAT            input       string
    OPEN_ACT            input       string
    OPEN_MES            input       string
    REALFMT             input       string
    TYPE                input       string
    U_DIM               input       integer
    U_FILE              input       integer
    U_FORMAT            input       string
    U_NB                input       integer
    U_NBB               input       integer
    U_NL                input       integer
    U_NLB               input       integer
    U_NS                input       integer
    U_N1                input       integer
    U_N2                input       integer
    U_N3                input       integer
    U_N4                input       integer
    U_ORG               input       string

xvbands/zvbands


call xvbands(sb, nb, nbi)
zvbands(sb, nb, nbi);

sb output integer nb output integer nbi output integer

xvclose/zvclose


call xvclose(unit, status, <optionals>, ' ')
status = zvclose(unit, <optionals>, 0);

unit input integer status output integer

Optionals allowed:


    CLOS_ACT            input       string

xvcmdout/zvcmdout


call xvcmdout(command, status)
status = zvcmdout(command);

command input string status output integer

xvcommand/zvcommand


call xvcommand(command, status)
status = zvcommand(command);

command input string status output integer

xveaction/zveaction


status = xveaction(action, message)
status = zveaction(action, message);

action input string message input string status output integer

xvend/zvend


call xvend(status)
zvend(status);

status input integer

xvfilpos/zvfilpos


position = xvfilpos(unit)
position = zvfilpos(unit);

unit input integer position output integer

xvget/zvget


call xvget(unit, status, <optionals>, ' ')
status = zvget(unit, <optionals>, 0);

unit input integer status output integer

Optionals allowed:


    BHOST               output      string
    BINTFMT             output      string
    BLTYPE              output      string
    BREALFMT            output      string
    BUFSIZ              output      integer
    DIM                 output      integer
    FLAGS               output      integer
    FORMAT              output      string
    HOST                output      string
    IMG_REC             output      integer
    INTFMT              output      string
    LBLSIZE             output      integer
    NAME                output      string
    NB                  output      integer
    NBB                 output      integer
    NL                  output      integer
    NLB                 output      integer
    NS                  output      integer
    N1                  output      integer
    N2                  output      integer
    N3                  output      integer
    N4                  output      integer
    ORG                 output      string
    PIX_SIZE            output      integer
    REALFMT             output      string
    RECSIZE             output      integer
    TYPE                output      string
    VARSIZE             output      integer

xvhost/zvhost


call xvhost(host, intfmt, realfmt, status)
status = zvhost(host, intfmt, realfmt);

host input string intfmt output string realfmt output string status output integer

xvintract/zvintract


call xvintract(subcmd, prompt)
zvintract(subcmd, prompt);

subcmd input string prompt input string

xvip/zvip


call xvip(name, value, count)
status = zvip(name, value, count);

name input string value output value array, size count count output integer status output integer

xviparm/zviparm


call xviparm(name, value, count, def, maxcnt)
status = zviparm(name, value, count, def, maxcnt, length);

name input string value output value array, size count count output integer def output integer maxcnt input integer length input integer status output integer

xviparmd/zviparmd


call xviparmd(name, value, count, def, maxcnt)
status = zviparmd(name, value, count, def, maxcnt, length);

name input string value output value array, size count count output integer def output integer maxcnt input integer length input integer status output integer

xvipcnt/zvipcnt


call xvipcnt(name, count)
status = zvipcnt(name, count);

name input string count output integer status output integer

xvipone/zvipone


status = xvipone(name, value, instance, maxlen)
status = zvipone(name, value, instance, maxlen);

name input string value output value instance input integer maxlen input integer

xvipstat/zvipstat


call xvipstat(name, count, def, maxlen, type)
status = zvipstat(name, count, def, maxlen, type);

name input string count output integer def output integer maxlen output integer type output string status output integer

xviptst/zviptst


keyword = xviptst(name)
keyword = zviptst(name);

name input string keyword output integer

xvmessage/zvmessage


call xvmessage(message, key)
zvmessage(message, key);

message input string key input string

xvopen/zvopen


call xvopen(unit, status, <optionals>, ' ')
status = zvopen(unit, <optionals>, 0);

unit input integer status output integer

Optionals allowed:


    ADDRESS             output      pixel pointer
    BHOST               input       string
    BIN_CVT             input       string
    BINTFMT             input       string
    BLTYPE              input       string
    BREALFMT            input       string
    CLOS_ACT            input       string
    COND                input       string
    CONVERT             input       string
    FORMAT              input       string
    HOST                input       string
    I_FORMAT            input       string
    INTFMT              input       string
    IO_ACT              input       string
    IO_MESS             input       string
    LAB_ACT             input       string
    LAB_MESS            input       string
    METHOD              input       string
    OP                  input       string
    O_FORMAT            input       string
    OPEN_ACT            input       string
    OPEN_MES            input       string
    REALFMT             input       string
    TYPE                input       string
    U_DIM               input       integer
    U_FILE              input       integer
    U_FORMAT            input       string
    U_NB                input       integer
    U_NBB               input       integer
    U_NL                input       integer
    U_NLB               input       integer
    U_NS                input       integer
    U_N1                input       integer
    U_N2                input       integer
    U_N3                input       integer
    U_N4                input       integer
    U_ORG               input       string

xvp/zvp


call xvp(name, value, count)
status = zvp(name, value, count);

name input string value output value array, size count count output integer status output integer

xvparm/zvparm


call xvparm(name, value, count, def, maxcnt)
status = zvparm(name, value, count, def, maxcnt, length);

name input string value output value array, size count count output integer def output integer maxcnt input integer length input integer status output integer

xvparmd/zvparmd


call xvparmd(name, value, count, def, maxcnt)
status = zvparmd(name, value, count, def, maxcnt, length);

name input string value output value array, size count count output integer def output integer maxcnt input integer length input integer status output integer

xvpblk/zvpblk


call xvpblk(parblk)
zvpblk(parblk);

parblk output void pointer

xvpclose/zvpclose


call xvpclose(status)
status = zvpclose();

status output integer

xvpcnt/zvpcnt


call xvpcnt(name, count)
status = zvpcnt(name, count);

name input string count output integer status output integer

xvpixsize/zvpixsize


status = xvpixsize(pixsize, type, ihost, rhost)
status = zvpixsize(pixsize, type, ihost, rhost);

pixsize output integer type input string ihost input string rhost input string status output integer

xvpixsizeb/zvpixsizeb


status = xvpixsizeb(pixsize, type, unit)
status = zvpixsizeb(pixsize, type, unit);

pixsize output integer type input string unit input integer status output integer

xvpixsizeu/zvpixsizeu


status = xvpixsizeu(pixsize, type, unit)
status = zvpixsizeu(pixsize, type, unit);

pixsize output integer type input string unit input integer status output integer

xvpone/zvpone


status = xvpone(name, value, instance, maxlen)
status = zvpone(name, value, instance, maxlen);

name input string value output value instance input integer maxlen input integer

xvpopen/zvpopen


call xvpopen(status, n_par, max_parm_size, filename, error_act, unit)
status = zvpopen(filename, error_act, unit);

status output integer n_par input integer (obsolete) max_parm_size input integer (obsolete) filename input string error_act input string unit output integer

xvpout/zvpout


call xvpout(status, name, value, format, count)
status = zvpout(name, value, format, count, length);

status output integer name input string value input value array, size count format input string count input integer length input integer

xvpstat/zvpstat


call xvpstat(name, count, def, maxlen, type)
status = zvpstat(name, count, def, maxlen, type);

name input string count output integer def output integer maxlen output integer type output string status output integer

xvptst/zvptst


keyword = xvptst(name)
keyword = zvptst(name);

name input string keyword output integer

xvread/zvread


call xvread(unit, buffer, status, <optionals>, ' ')
status = zvread(unit, buffer, <optionals>, 0);

unit input integer buffer output pixel buffer status output integer

Optionals allowed:


    BAND                input       integer
    IO_MESS             input       string
    LINE                input       integer
    METHOD              input       string
    NBANDS              input       integer
    NLINES              input       integer
    NSAMPS              input       integer
    OP                  input       string
    OPEN_ACT            input       string
    SAMP                input       integer
    U_FORMAT            input       string

xvselpi/zvselpi


call xvselpi(instance)
zvselpi(instance);

instance input integer

xvsfile/zvsfile


status = xvsfile(unit, file)
status = zvsfile(unit, file);

unit input integer file input integer status output integer

xvsignal/zvsignal


call xvsignal(unit, status, abend_flag)
zvsignal(unit, status, abend_flag);

unit input integer status input integer abend_flag input integer

xvsize/zvsize


call xvsize(sl, ss, nl, ns, nli, nsi)
zvsize(sl, ss, nl, ns, nli, nsi);

sl output integer ss output integer nl output integer ns output integer nli output integer nsi output integer

xvsptr/zvsptr


call xvsptr(value, count, offsets, lengths)
zvsptr(value, count, offsets, lengths);

value input string count input integer offsets output integer array, size count lengths output integer array, size count

xvtpinfo/zvtpinfo


status = xvtpinfo(sym_name, dev_name, tfile, trec)
status = zvtpinfo(sym_name, dev_name, tfile, trec);

sym_name input string dev_name output string tfile output integer trec output integer status output integer

xvtpmode/zvtpmode


call xvtpmode(unit, istape)
istape = zvtpmode(unit);

unit input integer istape output integer

xvtpset/zvtpset


status = xvtpset(name, tfile, trec)
status = zvtpset(name, tfile, trec);

name input string tfile input integer trec input integer status output integer

xvtrans/zvtrans


call xvtrans(buf, source, dest, npix)
zvtrans(buf, source, dest, npix);

buf input integer array, size 12 source input pixel buffer, size npix dest output pixel buffer, size npix npix input integer

xvtrans_in/zvtrans_in


call xvtrans_in(buf, stype, dtype, sihost, srhost, status)
status = zvtrans_in(buf, stype, dtype, sihost, srhost);

buf output integer array, size 12 stype input string dtype input string sihost input string srhost input string status output integer

xvtrans_inb/zvtrans_inb


call xvtrans_inb(buf, stype, dtype, unit, status)
status = zvtrans_inb(buf, stype, dtype, unit);

buf output integer array, size 12 stype input string dtype input string unit input integer status output integer

xvtrans_inu/zvtrans_inu


call xvtrans_inu(buf, stype, dtype, unit, status)
status = zvtrans_inu(buf, stype, dtype, unit);

buf output integer array, size 12 stype input string dtype input string unit input integer status output integer

xvtrans_out/zvtrans_out


call xvtrans_out(buf, stype, dtype, dihost, drhost, status)
status = zvtrans_out(buf, stype, dtype, dihost, drhost);

buf output integer array, size 12 stype input string dtype input string dihost input string drhost input string status output integer

xvtrans_set/zvtrans_set


call xvtrans_set(buf, stype, dtype, status)
status = zvtrans_set(buf, stype, dtype);

buf output integer array, size 12 stype input string dtype input string status output integer

xvunit/zvunit


call xvunit(unit, name, instance, status, <optionals>, ' ')
status = zvunit(unit, name, instance, <optionals>, 0);

unit output integer name input string instance input integer status output integer

Optionals allowed:


    U_NAME              input       string

xvwrit/zvwrit


call xvwrit(unit, buffer, status, <optionals>, ' ')
status = zvwrit(unit, buffer, <optionals>, 0);

unit input integer buffer input pixel buffer status output integer

Optionals allowed:


    BAND                input       integer
    LINE                input       integer
    NBANDS              input       integer
    NLINES              input       integer
    NSAMPS              input       integer
    SAMP                input       integer
    U_NL                input       integer

xvzinit


call xvzinit(lun, flag, debug)

lun input integer flag output integer debug output integer

zvpinit


zvpinit(parb);

parb input void pointer

zv_rtl_init


status = zv_rtl_init();

status output integer

rgd059@ipl.jpl.nasa.gov