!DEC$ FREEFORM

!
!  Copyright 2001 Compaq Computer Corporation
!  
!  Compaq and the Compaq logo Registered in U.S. Patent and Trademark
!  Office.
!  
!  Confidential computer software.  Valid license from Compaq required for
!  possession, use or copying.  Consistent with FAR 12.211 and 12.212,
!  Commerical Computer Software, Computer Software Documentation, and
!  Technical Data for Commmerical Items are licensed to the U.S. Government
!  under vendor's standard commerical license.
!

!DEC$ IF .NOT. DEFINED( __sig_c_include )

   !DEC$ DEFINE __sig_c_include

   !DEC$ IF DEFINED( _DLL )
      !DEC$ OBJCOMMENT LIB: "cxmldll.lib" 
   !DEC$ ELSE
      !DEC$ OBJCOMMENT LIB: "cxml.lib" 
   !DEC$ ENDIF

   INTERFACE
      SUBROUTINE cconv_nonperiodic(a,b,c,n_a,n_b,status)
         !DEC$ ATTRIBUTES DEFAULT :: cconv_nonperiodic
         COMPLEX(KIND=4) :: a(0:*)
         COMPLEX(KIND=4) :: b(0:*)
         COMPLEX(KIND=4) :: c(0:*)
         INTEGER(KIND=4) :: n_a
         INTEGER(KIND=4) :: n_b
         INTEGER(KIND=4) :: status
      END SUBROUTINE cconv_nonperiodic
   END INTERFACE

   INTERFACE
      SUBROUTINE cconv_periodic(a,b,c,n,status)
         !DEC$ ATTRIBUTES DEFAULT :: cconv_periodic
         COMPLEX(KIND=4) :: a(0:*)
         COMPLEX(KIND=4) :: b(0:*)
         COMPLEX(KIND=4) :: c(0:*)
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: status
      END SUBROUTINE cconv_periodic
   END INTERFACE

   INTERFACE
      SUBROUTINE ccorr_nonperiodic(a,b,c,n_a,n_b,status)
         !DEC$ ATTRIBUTES DEFAULT :: ccorr_nonperiodic
         COMPLEX(KIND=4) :: a(0:*)
         COMPLEX(KIND=4) :: b(0:*)
         COMPLEX(KIND=4) :: c(0:*)
         INTEGER(KIND=4) :: n_a
         INTEGER(KIND=4) :: n_b
         INTEGER(KIND=4) :: status
      END SUBROUTINE ccorr_nonperiodic
   END INTERFACE

   INTERFACE
      SUBROUTINE ccorr_periodic(a,b,c,n,status)
         !DEC$ ATTRIBUTES DEFAULT :: ccorr_periodic
         COMPLEX(KIND=4) :: a(0:*)
         COMPLEX(KIND=4) :: b(0:*)
         COMPLEX(KIND=4) :: c(0:*)
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: status
      END SUBROUTINE ccorr_periodic
   END INTERFACE

   INTERFACE
      FUNCTION cfft_exit(fft_struct)
         !DEC$ ATTRIBUTES DEFAULT :: cfft_exit
         STRUCTURE /dxml_c_fft_structure/
	    INTEGER(KIND=4) :: n
	    LOGICAL(KIND=4) :: stride_1_flag
	    INTEGER(KIND=4) :: n_ti(0:16)
	    INTEGER(KIND=4) :: n_k(0:16)
	    INTEGER(KIND=4) :: n_t(0:16)
	    INTEGER(KIND=4) :: type(0:16)
	    INTEGER(KIND=4) :: num_stages
	    INTEGER(KIND=4) :: rotation_vector
	    INTEGER(KIND=4) :: rotation_vector_size
	    INTEGER(KIND=4) :: temp_area
	    INTEGER(KIND=4) :: temp_area_size
	    INTEGER(KIND=4) :: set_block_size
	    INTEGER(KIND=4) :: num_non_special_radix
	    INTEGER(KIND=4) :: non_special_radix(0:16)
	    INTEGER(KIND=4) :: non_spec_rad_twiddle_size
	    INTEGER(KIND=4) :: non_spec_rad_twiddle_vec
	    INTEGER(KIND=4) :: non_special_radix_cos(0:16)
	    INTEGER(KIND=4) :: non_special_radix_sin(0:16)
	    INTEGER(KIND=4) :: num_processors
	    INTEGER(KIND=4) :: future_use(20)
	    INTEGER(KIND=4) :: gk(0:11)
         END STRUCTURE
         RECORD /dxml_c_fft_structure/ :: fft_struct
         !DEC$ ATTRIBUTES NO_ARG_CHECK :: fft_struct
         INTEGER(KIND=4) :: cfft_exit
      END FUNCTION cfft_exit
   END INTERFACE

   INTERFACE
      FUNCTION cfft_exit_2d(fft_struct)
         !DEC$ ATTRIBUTES DEFAULT :: cfft_exit_2d
         STRUCTURE /dxml_c_fft_structure_2d/
	    INTEGER(KIND=4) :: x_structure_ptr
	    INTEGER(KIND=4) :: y_structure_ptr
	    INTEGER(KIND=4) :: nx
	    INTEGER(KIND=4) :: ny
	    CHARACTER(LEN=16) :: x_type
	    INTEGER(KIND=4) :: x_size
	    INTEGER(KIND=4) :: y_size
	    LOGICAL(KIND=4) :: stride_x_1_flag
	    INTEGER(KIND=4) :: temp_area
	    INTEGER(KIND=4) :: temp_area_size
	    INTEGER(KIND=4) :: num_processors
	    INTEGER(KIND=4) :: future_use(20)
	    INTEGER(KIND=4) :: gk(0:11)
         END STRUCTURE
         RECORD /dxml_c_fft_structure_2d/ :: fft_struct
         !DEC$ ATTRIBUTES NO_ARG_CHECK :: fft_struct
         INTEGER(KIND=4) :: cfft_exit_2d
      END FUNCTION cfft_exit_2d
   END INTERFACE

   INTERFACE
      FUNCTION cfft_exit_3d(fft_struct)
         !DEC$ ATTRIBUTES DEFAULT :: cfft_exit_3d
         STRUCTURE /dxml_c_fft_structure_3d/
	    INTEGER(KIND=4) :: x_structure_ptr
	    INTEGER(KIND=4) :: y_structure_ptr
	    INTEGER(KIND=4) :: z_structure_ptr
	    INTEGER(KIND=4) :: nx
	    INTEGER(KIND=4) :: ny
	    INTEGER(KIND=4) :: nz
	    CHARACTER(LEN=16) :: x_type
	    INTEGER(KIND=4) :: x_size
	    INTEGER(KIND=4) :: y_size
	    INTEGER(KIND=4) :: z_size
	    LOGICAL(KIND=4) :: stride_x_1_flag
	    INTEGER(KIND=4) :: temp_area
	    INTEGER(KIND=4) :: temp_area_size
	    INTEGER(KIND=4) :: num_processors
	    INTEGER(KIND=4) :: future_use(20)
	    INTEGER(KIND=4) :: gk(0:11)
         END STRUCTURE
         RECORD /dxml_c_fft_structure_3d/ :: fft_struct
         !DEC$ ATTRIBUTES NO_ARG_CHECK :: fft_struct
         INTEGER(KIND=4) :: cfft_exit_3d
      END FUNCTION cfft_exit_3d
   END INTERFACE

   INTERFACE
      FUNCTION cfft_exit_grp(fft_struct)
         !DEC$ ATTRIBUTES DEFAULT :: cfft_exit_grp
         STRUCTURE /dxml_c_grp_fft_structure/
	    INTEGER(KIND=4) :: n
	    LOGICAL(KIND=4) :: grp_stride_1_flag
	    INTEGER(KIND=4) :: grp_block_size
	    INTEGER(KIND=4) :: n_ti(0:16)
	    INTEGER(KIND=4) :: n_k(0:16)
	    INTEGER(KIND=4) :: n_t(0:16)
	    INTEGER(KIND=4) :: type(0:16)
	    INTEGER(KIND=4) :: num_stages
	    INTEGER(KIND=4) :: rotation_vector
	    INTEGER(KIND=4) :: rotation_vector_size
	    INTEGER(KIND=4) :: temp_area
	    INTEGER(KIND=4) :: temp_area_size
	    INTEGER(KIND=4) :: num_non_special_radix
	    INTEGER(KIND=4) :: non_special_radix(0:16)
	    INTEGER(KIND=4) :: non_spec_rad_twiddle_size
	    INTEGER(KIND=4) :: non_spec_rad_twiddle_vec
	    INTEGER(KIND=4) :: non_special_radix_cos(0:16)
	    INTEGER(KIND=4) :: non_special_radix_sin(0:16)
	    INTEGER(KIND=4) :: num_processors
	    INTEGER(KIND=4) :: future_use(20)
	    INTEGER(KIND=4) :: gk(0:11)
         END STRUCTURE
         RECORD /dxml_c_grp_fft_structure/ :: fft_struct
         !DEC$ ATTRIBUTES NO_ARG_CHECK :: fft_struct
         INTEGER(KIND=4) :: cfft_exit_grp
      END FUNCTION cfft_exit_grp
   END INTERFACE

   INTERFACE
      FUNCTION cfft_init(n,fft_struct,stride_1_flag)
         !DEC$ ATTRIBUTES DEFAULT :: cfft_init
         STRUCTURE /dxml_c_fft_structure/
	    INTEGER(KIND=4) :: n
	    LOGICAL(KIND=4) :: stride_1_flag
	    INTEGER(KIND=4) :: n_ti(0:16)
	    INTEGER(KIND=4) :: n_k(0:16)
	    INTEGER(KIND=4) :: n_t(0:16)
	    INTEGER(KIND=4) :: type(0:16)
	    INTEGER(KIND=4) :: num_stages
	    INTEGER(KIND=4) :: rotation_vector
	    INTEGER(KIND=4) :: rotation_vector_size
	    INTEGER(KIND=4) :: temp_area
	    INTEGER(KIND=4) :: temp_area_size
	    INTEGER(KIND=4) :: set_block_size
	    INTEGER(KIND=4) :: num_non_special_radix
	    INTEGER(KIND=4) :: non_special_radix(0:16)
	    INTEGER(KIND=4) :: non_spec_rad_twiddle_size
	    INTEGER(KIND=4) :: non_spec_rad_twiddle_vec
	    INTEGER(KIND=4) :: non_special_radix_cos(0:16)
	    INTEGER(KIND=4) :: non_special_radix_sin(0:16)
	    INTEGER(KIND=4) :: num_processors
	    INTEGER(KIND=4) :: future_use(20)
	    INTEGER(KIND=4) :: gk(0:11)
         END STRUCTURE
         INTEGER(KIND=4) :: n
         RECORD /dxml_c_fft_structure/ :: fft_struct
         !DEC$ ATTRIBUTES NO_ARG_CHECK :: fft_struct
         LOGICAL(KIND=4) :: stride_1_flag
         INTEGER(KIND=4) :: cfft_init
      END FUNCTION cfft_init
   END INTERFACE

   INTERFACE
      FUNCTION cfft_init_2d(nx,ny,fft_struct,stride_x_1_flag)
         !DEC$ ATTRIBUTES DEFAULT :: cfft_init_2d
         STRUCTURE /dxml_c_fft_structure_2d/
	    INTEGER(KIND=4) :: x_structure_ptr
	    INTEGER(KIND=4) :: y_structure_ptr
	    INTEGER(KIND=4) :: nx
	    INTEGER(KIND=4) :: ny
	    CHARACTER(LEN=16) :: x_type
	    INTEGER(KIND=4) :: x_size
	    INTEGER(KIND=4) :: y_size
	    LOGICAL(KIND=4) :: stride_x_1_flag
	    INTEGER(KIND=4) :: temp_area
	    INTEGER(KIND=4) :: temp_area_size
	    INTEGER(KIND=4) :: num_processors
	    INTEGER(KIND=4) :: future_use(20)
	    INTEGER(KIND=4) :: gk(0:11)
         END STRUCTURE
         INTEGER(KIND=4) :: nx
         INTEGER(KIND=4) :: ny
         RECORD /dxml_c_fft_structure_2d/ :: fft_struct
         !DEC$ ATTRIBUTES NO_ARG_CHECK :: fft_struct
         LOGICAL(KIND=4) :: stride_x_1_flag
         INTEGER(KIND=4) :: cfft_init_2d
      END FUNCTION cfft_init_2d
   END INTERFACE

   INTERFACE
      FUNCTION cfft_init_3d(nx,ny,nz,fft_struct,stride_x_1_flag)
         !DEC$ ATTRIBUTES DEFAULT :: cfft_init_3d
         STRUCTURE /dxml_c_fft_structure_3d/
	    INTEGER(KIND=4) :: x_structure_ptr
	    INTEGER(KIND=4) :: y_structure_ptr
	    INTEGER(KIND=4) :: z_structure_ptr
	    INTEGER(KIND=4) :: nx
	    INTEGER(KIND=4) :: ny
	    INTEGER(KIND=4) :: nz
	    CHARACTER(LEN=16) :: x_type
	    INTEGER(KIND=4) :: x_size
	    INTEGER(KIND=4) :: y_size
	    INTEGER(KIND=4) :: z_size
	    LOGICAL(KIND=4) :: stride_x_1_flag
	    INTEGER(KIND=4) :: temp_area
	    INTEGER(KIND=4) :: temp_area_size
	    INTEGER(KIND=4) :: num_processors
	    INTEGER(KIND=4) :: future_use(20)
	    INTEGER(KIND=4) :: gk(0:11)
         END STRUCTURE
         INTEGER(KIND=4) :: nx
         INTEGER(KIND=4) :: ny
         INTEGER(KIND=4) :: nz
         RECORD /dxml_c_fft_structure_3d/ :: fft_struct
         !DEC$ ATTRIBUTES NO_ARG_CHECK :: fft_struct
         LOGICAL(KIND=4) :: stride_x_1_flag
         INTEGER(KIND=4) :: cfft_init_3d
      END FUNCTION cfft_init_3d
   END INTERFACE

!DEC$ ENDIF
