After an image is connected, a part of it should be brought into virtual memory. The access type for this virtual memory area (ReadOnly or ReadWrite) depends on the type of image connection.
SUBROUTINE GDF_GEMS (MS, IS, BLC, TRC, ADDR, FORM, ERROR)
----------------------------------------------------------------------
GDF Get Memory Slot
MS I Memory Slot number Output
IS I Image Slot number Input
BLC I(4) Bottom Left Corner Input
TRC I(4) Top Right Corner Input
ADDR I Virtual memory address Output
FORM I Type of data Input
ERROR L Logical error flag Output
----------------------------------------------------------------------
GDF_GEMS reads a subset of the image connected to slot IS into a
memory area (memory slot MS) located at address ADDR. The image subset is
"incarnated" into the specified data type FORM, which may be different from
the image data type. When BLC(i) and TRC(i) are set to zero, they default
to the current image dimension (i.e BLC(i)=1 and TRC(i)=Dim(i)). After this
routine, virtual memory address ADDR is the start of an array of type FORM
containing an incarnation of the image subset that can be used for further
processing.
SUBROUTINE GDF_FRMS (MS,ERROR)
----------------------------------------------------------------------
GDF FRee Memory Slot
----------------------------------------------------------------------
GDF_FRMS Frees the memory slot MS. If the connected image was
connected with write access, the image is updated. The memory slot is no
longer available after this operation.
SUBROUTINE GDF_UPMS (MS,ERROR)
----------------------------------------------------------------------
GDF UPdate Memory Slot
----------------------------------------------------------------------
GDF_UPMS Updates the image connected to the memory slot MS. The
memory slot is left unmodified. This routine is provided for safety
measures.
The I/O (or mapping) are thus only done in the GDF_something routines, in a system dependent way. All data format translation (incarnation in a different type, or machine dependent data types) are done at this level. This allows a transparent operation in an heterogeneous environment.