[Info-vax] Command Procedure Pipe output to a variable
HCorte
hmmbcorte at gmail.com
Fri Oct 1 12:10:29 EDT 2021
A quinta-feira, 2 de setembro de 2021 à(s) 17:01:43 UTC+1, Stephen Hoffman escreveu:
> On 2021-09-02 13:33:29 +0000, HCorte said:
>
> > One more question finished the command procedure, know whanted to pass
> > a variable/symbol to a program in fortran.
> DCL commonly uses symbols, and logical names, and files. DECnet is also
> easy, IP and SSL/TLS connections lack good support.
>
> For Fortran, reading values from DCL symbols (lib$get_symbol),
> translating values from logical names (lib$get_logical), reading the
> data from the command input (works when in command procedures), reading
> the input from a file (generic Fortran file I/O, or using RMS from
> Fortran), reading the input from the DCL output directly, and reading
> the input from a network link (DECnet, as DCL doesn't play well with
> UDP, TCP, SSL/TLS), etc.
>
> Same as usual for reading input with any other Fortran programs on OpenVMS.
>
> Here, lib$get_symbol and lib$get_logical calls are probably the most
> direct path, though I'd be tempted to use a file (possibly with
> delete-on-close disposition), given you're seemingly working with a
> list, and given the available Fortran sequential file I/O support.
>
> Biggest issue with Fortran for some of these cases tends to be parsing
> data, as Fortran doesn't handle variable-length data all that well.
>
> The Fortran user's manual is probably a good starting point for
> learning about your options and alternatives when using Fortran on
> OpenVMS:
> https://vmssoftware.com/docs/VSI_FORTRAN_USER.pdf
>
> As it can be inferred you're not completely comfortable with OpenVMS
> and particularly with OpenVMS programming, some other documentation:
> https://vmssoftware.com/docs/VSI_USERS_MANUAL.pdf
> https://vmssoftware.com/docs/VSI_PROGRAM_CONCEPTS_VOL_I.pdf
> https://vmssoftware.com/docs/VSI_PROGRAM_CONCEPTS_VOL_II.pdf
>
> And since I've filled this reply with RTL calls, and this in
> conjunction with the Fortran user's manual (above):
> https://vmssoftware.com/docs/VSI_RTL_LIB$_MANUAL.pdf
> > Posted the question in "comp.lang.fortran" but forgoted to specify in
> > the initial inquiry/question that was using OpenVMS.
> >
> > One suggestion was to use "EXECUTE_COMMAND_LINE" that from what could
> > tell its specific to Unix, and also "popen" from what could get also
> > Unix specific is there a equivalent for OpenVMS?
> If you're invoking the procedure directly—and I'm still not entirely
> clear about what this whole thread is trying to achieve—then calling
> lib$spawn is one possibility, though there are others.
> > $ FORTRAN /VERSION
> > HP Fortran V8.2-104939-50H96
> >
> > $ SHOW SYSTEM
> > OpenVMS V8.4
> That's all past a dozen years old, and the HP/HPE OpenVMS versions are
> no longer receiving patches.
>
> V8.4-2L1 (Alpha EV56 and older), V8.4-2L2, (Alpha EV6 and EV7), and
> V8.4-2L3 (Itanium) are current, as is VSI Fortran V8.3-3.
>
>
>
> --
> Pure Personal Opinion | HoffmanLabs LLC
Thanks for the links to the documentation Stephen, reading the "Run-Time Library LIB$ Routines" for the lib$spawn and status that can return SS$_NORMAL,SS$_ACCVIO,SS$_DUPLNAM ,fac$_xxx,LIB$_INVARG ,LIB$_INVSTRDES,LIB$_NOCLI
with INCLUDE '($SSDEF)' know that the values of
SS$_NORMAL: 1
SS$_ACCVIO: 12
SS$_DUPLNAM: 148
but can't find what is the library to include for remaining constants LIB$_INVARG ,LIB$_INVSTRDES,LIB$_NOCLI and fac$_xxx
getting the following value retuned by the SPAWN routine: 231666
know that its not LIB$_INVARG and LIB$_INVSTRDES since was able to run in simple program (lib$spawn) where the params are the same, so most likely is LIB$_NOCLI or fac$_xxx.
could someone help in what is the name of library for the constants Status return by the routine and 231666 means what? perhaps its fac$_xxx "Other error trying to create subprocess." if so a bit vague in the probleam...
More information about the Info-vax
mailing list