home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / Fortran.51 / DISK6 / FLIB.FI$ / FLIB.bin
Text File  |  1991-04-24  |  8KB  |  253 lines

  1. C****************************** Module Header ******************************
  2. C*
  3. C* Copyright (c) 1990  Microsoft Corporation
  4. C*
  5. C* Module Name: FLIB.FI
  6. C*
  7. C* This module provides interface descriptions for subprograms found
  8. C* in the various FORTRAN libraries.  Each of the functional areas
  9. C* covered by these interfaces are small enough that separate include
  10. C* files for each are not warranted.
  11. C*
  12. C* The functional areas covered are the following.
  13. C*
  14. C* Math error support.
  15. C*
  16. C* Signal handling.
  17. C*
  18. C* Intdos/Intdosx.
  19. C*
  20. C* Windows Applications Suuport.
  21. C*
  22. C* Date and Time
  23. C*
  24. C* Command Line Arguments
  25. C*
  26. C* Random Numbers
  27. C*
  28. C***************************************************************************
  29. C -----------------------------------------------------------------
  30. C Math Error Support
  31. C -----------------------------------------------------------------
  32.       INTERFACE TO SUBROUTINE MATHERRQQ[alias:'FMATHERRQQ']
  33.      +                                 (NAME, NLEN, INFO, RETCODE)
  34.       INTEGER*2 NLEN
  35.       CHARACTER NAME(NLEN)       ! INPUT : Name of function causing error.
  36.       STRUCTURE /MTH$E_INFO/
  37.         INTEGER*2 ERRCODE        ! INPUT : One of the MTH$ values in flib.fd
  38.         INTEGER*2 FTYPE          ! INPUT : One of the TY$ values in flib.fd
  39.         UNION
  40.         MAP
  41.             REAL*4 R4ARG1        ! INPUT : FIrst argument
  42.             REAL*4 R4ARG2        ! INPUT : Second argument (if any)
  43.             REAL*4 R4RES         ! OUTPUT : Desired result
  44.         END MAP
  45.         MAP
  46.             REAL*8 R8ARG1        ! INPUT : FIrst argument
  47.             REAL*8 R8ARG2        ! INPUT : Second argument (if any)
  48.             REAL*8 R8RES         ! OUTPUT : Desired result
  49.         END MAP
  50.         MAP
  51.             COMPLEX*8 C8ARG1     ! INPUT : FIrst argument
  52.             COMPLEX*8 C8ARG2     ! INPUT : Second argument (if any)
  53.             COMPLEX*8 C8RES      ! OUTPUT : Desired result
  54.         END MAP
  55.         MAP
  56.             COMPLEX*16 C16ARG1   ! INPUT : FIrst argument
  57.             COMPLEX*16 C16ARG2   ! INPUT : Second argument (if any)
  58.             COMPLEX*16 C16RES    ! OUTPUT : Desired result
  59.         END MAP
  60.         END UNION
  61.       END STRUCTURE
  62.       RECORD /MTH$E_INFO/ INFO
  63.       INTEGER*2 RETCODE          ! OUTPUT : 0 for failure, non 0 for success
  64.       END
  65.  
  66. C -----------------------------------------------------------------
  67. C Signal support
  68. C -----------------------------------------------------------------
  69.       INTERFACE TO INTEGER FUNCTION SIGNALQQ[c,loadds,alias:'_signal']
  70.      +                                      (SIGNAL, HANDLER)
  71.       INTEGER*2 SIGNAL[value]
  72.       EXTERNAL HANDLER
  73.       END
  74.  
  75.       INTERFACE TO INTEGER*2 FUNCTION RAISEQQ(SIGNAL)
  76.       INTEGER*2 SIGNAL[value]
  77.       END
  78.  
  79. C -----------------------------------------------------------------
  80. C Intdos/Intdosx support.
  81. C -----------------------------------------------------------------
  82.       INTERFACE TO SUBROUTINE INTDOSQQ[c,alias:'_intdos']
  83.      +                                (REGS1, REGS2)
  84.       STRUCTURE /REGS$WORD/
  85.         INTEGER*2 AX
  86.         INTEGER*2 BX
  87.         INTEGER*2 CX
  88.         INTEGER*2 DX
  89.         INTEGER*2 SI
  90.         INTEGER*2 DI
  91.         INTEGER*2 CFLAG
  92.       END STRUCTURE
  93.       STRUCTURE /REGS$BYTE/
  94.         INTEGER*1 AL
  95.         INTEGER*1 AH
  96.         INTEGER*1 BL
  97.         INTEGER*1 BH
  98.         INTEGER*1 CL
  99.         INTEGER*1 CH
  100.         INTEGER*1 DL
  101.         INTEGER*1 DH
  102.       END STRUCTURE
  103.       STRUCTURE /REGS$INFO/
  104.         UNION
  105.         MAP
  106.             RECORD /REGS$WORD/ WREGS
  107.         END MAP
  108.         MAP
  109.             RECORD /REGS$BYTE/ BREGS
  110.         END MAP
  111.         END UNION
  112.       END STRUCTURE
  113.       RECORD /REGS$INFO/ REGS1[reference]
  114.       RECORD /REGS$INFO/ REGS2[reference]
  115.       END
  116.  
  117.       INTERFACE TO SUBROUTINE INTDOSXQQ[c,alias:'_intdosx']
  118.      +                                 (REGS1, REGS2, SREGS)
  119.       STRUCTURE /REGS$WORD/
  120.         INTEGER*2 AX
  121.         INTEGER*2 BX
  122.         INTEGER*2 CX
  123.         INTEGER*2 DX
  124.         INTEGER*2 SI
  125.         INTEGER*2 DI
  126.         INTEGER*2 CFLAG
  127.       END STRUCTURE
  128.       STRUCTURE /REGS$BYTE/
  129.         INTEGER*1 AL
  130.         INTEGER*1 AH
  131.         INTEGER*1 BL
  132.         INTEGER*1 BH
  133.         INTEGER*1 CL
  134.         INTEGER*1 CH
  135.         INTEGER*1 DL
  136.         INTEGER*1 DH
  137.       END STRUCTURE
  138.       STRUCTURE /REGS$INFO/
  139.         UNION
  140.         MAP
  141.             RECORD /REGS$WORD/ WREGS
  142.         END MAP
  143.         MAP
  144.             RECORD /REGS$BYTE/ BREGS
  145.         END MAP
  146.         END UNION
  147.       END STRUCTURE
  148.       STRUCTURE /SREGS$INFO/
  149.         INTEGER*2 ES
  150.         INTEGER*2 CS
  151.         INTEGER*2 SS
  152.         INTEGER*2 DS
  153.       END STRUCTURE
  154.       RECORD /REGS$INFO/ REGS1
  155.       RECORD /REGS$INFO/ REGS2
  156.       RECORD /SREGS$INFO/ SREGS
  157.       END
  158.  
  159. C -----------------------------------------------------------------
  160. C FORTRAN Windows App Support
  161. C -----------------------------------------------------------------
  162.       INTERFACE TO INTEGER*2 FUNCTION ABOUTBOXQQ(STR)
  163.       CHARACTER*(*) STR
  164.       END
  165.  
  166.       INTERFACE TO INTEGER*2 FUNCTION CLICKQQ(ITEM)
  167.       INTEGER*2 ITEM
  168.       END
  169.  
  170.       INTERFACE TO INTEGER*2 FUNCTION FOCUSQQ(IUNIT)
  171.       INTEGER*2 IUNIT
  172.       END
  173.  
  174.       INTERFACE TO INTEGER*2 FUNCTION INQFOCUSQQ(IUNIT)
  175.       INTEGER*2 IUNIT
  176.       END
  177.  
  178.       INTERFACE TO INTEGER*2 FUNCTION SETWSIZEQQ(IUNIT,WINFO)
  179.       STRUCTURE /QWINFO/
  180.           INTEGER*2 TYPE          ! request type
  181.           INTEGER*2 X             ! x coordinate for upper left
  182.           INTEGER*2 Y             ! y coordinate for upper left
  183.           INTEGER*2 H             ! window height
  184.           INTEGER*2 W             ! window width
  185.       END STRUCTURE
  186.       INTEGER*2 IUNIT
  187.       RECORD /QWINFO/ WINFO
  188.       END
  189.  
  190.       INTERFACE TO INTEGER*2 FUNCTION GETWSIZEQQ(IUNIT,IREQ,WINFO)
  191.       STRUCTURE /QWINFO/
  192.           INTEGER*2 TYPE          ! request type
  193.           INTEGER*2 X             ! x coordinate for upper left
  194.           INTEGER*2 Y             ! y coordinate for upper left
  195.           INTEGER*2 H             ! window height
  196.           INTEGER*2 W             ! window width
  197.       END STRUCTURE
  198.       INTEGER*2 IUNIT
  199.       INTEGER*2 IREQ
  200.       RECORD /QWINFO/ WINFO
  201.       END
  202.  
  203.       INTERFACE TO INTEGER*2 FUNCTION MESSAGEBOXQQ(MSG,CAPTION,MTYPE)
  204.       CHARACTER*(*) MSG
  205.       CHARACTER*(*) CAPTION
  206.       INTEGER*2 MTYPE
  207.       END
  208.  
  209.       INTERFACE TO SUBROUTINE YIELDQQ()
  210.       END
  211.  
  212. C -----------------------------------------------------------------
  213. C Time and Date Support
  214. C -----------------------------------------------------------------
  215.       INTERFACE TO SUBROUTINE GETTIM(IHR, IMIN, ISEC, I100TH)
  216.       INTEGER*2 IHR, IMIN, ISEC, I100TH
  217.       END
  218.  
  219.       INTERFACE TO LOGICAL FUNCTION SETTIM(IHR, IMIN, ISEC, I100TH)
  220.       INTEGER*2 IHR, IMIN, ISEC, I100TH
  221.       END
  222.  
  223.       INTERFACE TO SUBROUTINE GETDAT(IYR, IMON, IDAY)
  224.       INTEGER*2 IYR, IMON, IDAY
  225.       END
  226.  
  227.       INTERFACE TO LOGICAL FUNCTION SETDAT(IYR, IMON, IDAY)
  228.       INTEGER*2 IYR, IMON, IDAY
  229.       END
  230.  
  231. C -----------------------------------------------------------------
  232. C Command Line Arguments
  233. C -----------------------------------------------------------------
  234.       INTERFACE TO INTEGER*4 FUNCTION NARGS()
  235.       END
  236.  
  237.       INTERFACE TO SUBROUTINE GETARG(N, BUFFER, STATUS)
  238.       INTEGER*2 N
  239.       CHARACTER*(*) BUFFER
  240.       INTEGER*2 STATUS
  241.       END
  242.  
  243. C -----------------------------------------------------------------
  244. C Random Numbers
  245. C -----------------------------------------------------------------
  246.       INTERFACE TO SUBROUTINE RANDOM(ARG)
  247.       REAL*4 ARG
  248.       END
  249.  
  250.       INTERFACE TO SUBROUTINE SEED(ARG)
  251.       INTEGER*2 ARG
  252.       END
  253.