CALL

examples

 For examples of user written subroutines, copy the source code:
 PHYSICA$DIR:PHYSICA_USER_FUNCTIONS.FOR  to your own space and modify the
 routines to suit your own needs. You will also need to copy the DCL command
 procedure PHYSICA$DIR:PHYSICA_USER_FUNCTIONS.COM  to your own space, modify
 it according to directions as explained in that file, and then execute it.

numeric_arguments

 All the numeric arguments of your subroutine, except for the integer
 arguments IATYPE, ICODE, IUPDATE, and IER, must be REAL*8. A character
 argument is passed as a LOGICAL*1 array. Dimension numeric array
 arguments with length 1, e.g.,  REAL*8 X(1), Y(1), Z(1)

character_arguments

 All the character arguments of your subroutine must be LOGICAL*1, and should
 be dimensioned 1, e.g., LOGICAL*1 LFILE(1).  You can convert this to a 
 character string, e.g., CHARACTER*80 CFILE, using the following method:
      LENF = ICODE(1,i)
      DO I = 1, LENF
        CFILE(I:I) = CHAR(LFILE(I))
      END DO
 where LFILE is the i'th argument.

user_routine

 PHYSICA expects to find a user routine of the form:

 SUBROUTINE subname(IATYPE,ICODE,IUPDATE,IER,ARG1,ARG2,...,ARGM)
 INTEGER*4 IATYPE(15),ICODE(3,15),IUPDATE(15),IER

 If the subroutine is to loaded via the sharable image, its name must be
 one of SUB1, SUB2, ..., SUB8.  If the subroutine is to be loaded at run-
 time via the LOAD command, its name is irrelevant. All of the numeric
 arguments, except for the integer arguments IATYPE, ICODE, IUPDATE, and
 IER, must be REAL*8. A character argument is passed as a LOGICAL*1 array.

Additional Information on:

  • IATYPE
  • ICODE
  • IUPDATE
  • IER
  • numeric_arguments
  • character_arguments