!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_z_include )

   !DEC$ DEFINE __sig_z_include

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

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

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

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

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

   INTERFACE
      FUNCTION zfft_exit(fft_struct)
         !DEC$ ATTRIBUTES DEFAULT :: zfft_exit
         STRUCTURE /dxml_z_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_z_fft_structure/ :: fft_struct
         !DEC$ ATTRIBUTES NO_ARG_CHECK :: fft_struct
         INTEGER(KIND=4) :: zfft_exit
      END FUNCTION zfft_exit
   END INTERFACE

   INTERFACE
      FUNCTION zfft_exit_2d(fft_struct)
         !DEC$ ATTRIBUTES DEFAULT :: zfft_exit_2d
         STRUCTURE /dxml_z_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_z_fft_structure_2d/ :: fft_struct
         !DEC$ ATTRIBUTES NO_ARG_CHECK :: fft_struct
         INTEGER(KIND=4) :: zfft_exit_2d
      END FUNCTION zfft_exit_2d
   END INTERFACE

   INTERFACE
      FUNCTION zfft_exit_3d(fft_struct)
         !DEC$ ATTRIBUTES DEFAULT :: zfft_exit_3d
         STRUCTURE /dxml_z_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_z_fft_structure_3d/ :: fft_struct
         !DEC$ ATTRIBUTES NO_ARG_CHECK :: fft_struct
         INTEGER(KIND=4) :: zfft_exit_3d
      END FUNCTION zfft_exit_3d
   END INTERFACE

   INTERFACE
      FUNCTION zfft_exit_grp(fft_struct)
         !DEC$ ATTRIBUTES DEFAULT :: zfft_exit_grp
         STRUCTURE /dxml_z_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_z_grp_fft_structure/ :: fft_struct
         !DEC$ ATTRIBUTES NO_ARG_CHECK :: fft_struct
         INTEGER(KIND=4) :: zfft_exit_grp
      END FUNCTION zfft_exit_grp
   END INTERFACE

   INTERFACE
      FUNCTION zfft_init(n,fft_struct,stride_1_flag)
         !DEC$ ATTRIBUTES DEFAULT :: zfft_init
         STRUCTURE /dxml_z_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_z_fft_structure/ :: fft_struct
         !DEC$ ATTRIBUTES NO_ARG_CHECK :: fft_struct
         LOGICAL(KIND=4) :: stride_1_flag
         INTEGER(KIND=4) :: zfft_init
      END FUNCTION zfft_init
   END INTERFACE

   INTERFACE
      FUNCTION zfft_init_2d(nx,ny,fft_struct,stride_x_1_flag)
         !DEC$ ATTRIBUTES DEFAULT :: zfft_init_2d
         STRUCTURE /dxml_z_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_z_fft_structure_2d/ :: fft_struct
         !DEC$ ATTRIBUTES NO_ARG_CHECK :: fft_struct
         LOGICAL(KIND=4) :: stride_x_1_flag
         INTEGER(KIND=4) :: zfft_init_2d
      END FUNCTION zfft_init_2d
   END INTERFACE

   INTERFACE
      FUNCTION zfft_init_3d(nx,ny,nz,fft_struct,stride_x_1_flag)
         !DEC$ ATTRIBUTES DEFAULT :: zfft_init_3d
         STRUCTURE /dxml_z_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_z_fft_structure_3d/ :: fft_struct
         !DEC$ ATTRIBUTES NO_ARG_CHECK :: fft_struct
         LOGICAL(KIND=4) :: stride_x_1_flag
         INTEGER(KIND=4) :: zfft_init_3d
      END FUNCTION zfft_init_3d
   END INTERFACE

!DEC$ ENDIF
