next up previous contents index
Next: JZIN - processor Up: Basic calling sequences Previous: Basic calling sequences

JZIN/JZOUT - simplest use

Processor AA transfers control to processor BB with a simple Fortran CALL BB, having readied the contents of its down call-bank at LQDW:

          . . .
          LQ(LQDW-1) =     load parameters of the link type
          LQ(LQDW-2) =
          . . .
          IQ(LQDW+1) =     load parameters of the data type
          IQ(LQDW+2) =
          . . .
          CALL BB          transfer control
          . . .
In the simplest case the processor BB does not call itself another processor, does not have processor constants, and does not use processor flags. It would then look like this:
          SUBROUTINE BB

    +CDE, Q.       this is supposed to declare the store and also /JZUC/
         +,   links, data, last

          CALL JZIN ('BB  ',0,0,0)
          CALL MZWORK (0,data(1),last,0)

              processor body

          CALL JZOUT ('BB  ')
          RETURN
          END
By calling JZIN the processor causes switching of the environment, gaining access to its own data, in particular to its call-bank via the system link LQUP, thus LQ(LQUP-1) is its first link parameter.

The inverse switching is done by JZOUT. The processor name has to be given to JZOUT explicitely. This handshake is a check against forgotten calls.

The call to MZWORK must come after the call to JZIN because JZIN saves the working space parameters of AA, and hence they must still be intact.

For efficiency, JZIN and JZOUT, and also other routines, expect to receive the processor name with 4 characters exactly, with blank-fill if necessary.


Janne Saarela
Mon May 15 08:34:47 METDST 1995