next up previous 65
Next: Link Script Details
Up: ADAM
Previous: SUN/144.15


Example Session

The following session shows the process of compiling, linking and running an example program, derived from SUN/101, on the Sun.

% source /star/etc/login
%
% ls
repdim2.f       repdim2.ifl     example.sdf
%
% cat repdim2.f
*   Program to report the dimensions of an NDF.
*   The CHR package is used to produce a nice output message.
*   See SUN/101, section 11.

      SUBROUTINE REPDIM2 (STATUS)                                
      IMPLICIT NONE
      INCLUDE 'SAE_PAR'                                       
      INTEGER DIM(10), I, NCHAR, NDF1, NDIM, STATUS
      CHARACTER*100 STRING

*   Check inherited global status.
      IF (STATUS.NE.SAI__OK) RETURN

*   Begin an NDF context.    
      CALL NDF_BEGIN                                          
                                                              
*   Get the name of the input NDF file and associate an NDF 
*   identifier with it.
      CALL NDF_ASSOC ('INPUT', 'READ', NDF1, STATUS)
                                                              
*   Enquire the dimension sizes of the NDF.
      CALL NDF_DIM (NDF1, 10, DIM, NDIM, STATUS)

*   Set the token 'NDIM' with the value NDIM.
      CALL MSG_SETI ('NDIM', NDIM)

*   Report the message.
      CALL MSG_OUT (' ', 'No. of dimensions is ^NDIM', STATUS) 

*   Report the dimensions.
      NCHAR = 0
      CALL CHR_PUTC ('Array dimensions are ', STRING, NCHAR)
      DO  I = 1, NDIM
*      Add a `x' between the dimensions if there are more than one.
         IF (I.GT.1) CALL CHR_PUTC (' x ', STRING, NCHAR)
*      Add the next dimension to the string.
         CALL CHR_PUTI (DIM(I), STRING, NCHAR)
      ENDDO
      CALL MSG_OUT ('  ', STRING(1:NCHAR), STATUS) 

*   End the NDF context.                                       
      CALL NDF_END (STATUS)                                  
      END
%
% cat repdim2.ifl
interface REPDIM2
   parameter      INPUT
      position    1 
      prompt      'Input NDF structure'
      default     example
      association '->global.ndf'
   endparameter
endinterface
%
% star_dev
% alink repdim2.f `ndf_link_adam`
f77 -g -c repdim2.f
repdim2.f:
        repdim2:
dtask_applic.f:
        dtask_applic:
%
% repdim2
INPUT - Input NDF structure /@example/ >
No. of dimensions is 1
Array dimensions are 856
%
% ls ~/adam
repdim2.sdf     GLOBAL.sdf
%  
% compifl repdim2
!! COMPIFL: Successful completion
%
% ls
example.sdf   repdim2.f     repdim2.ifl
repdim2       repdim2.ifc   repdim2.o
%
Note that whether or not the file repdim2.o is retained depends upon the compiler used.



next up previous 65
Next: Link Script Details
Up: ADAM
Previous: SUN/144.15

ADAM
Starlink User Note 144
A J Chipperfield
17 August 2001
E-mail:ussc@star.rl.ac.uk

Copyright © 2000 Council for the Central Laboratory of the Research Councils