File: rsb_mod.m4

package info (click to toggle)
librsb 1.3.0.2%2Bdfsg-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 32,792 kB
  • sloc: ansic: 274,405; f90: 108,468; cpp: 16,934; sh: 6,761; makefile: 1,679; objc: 692; awk: 22; sed: 1
file content (107 lines) | stat: -rw-r--r-- 3,612 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
dnl
dnl
include(`rsb_fortran_macros.m4')dnl
dnl
dnl	@author: Michele Martone
dnl
dnl	FIXME: this code is OBSOLETE and marked for deletion.
dnl
!
dnl ! author: Michele Martone
!
! This is a Sparse BLAS interface.
! It has been generated by a M4 script.
!
! supported types       : foreach(`mtype',RSB_M4_MATRIX_TYPES,` RSB_M4_C2F_TYPE(mtype)')
! supported operations  : foreach(`pmop',RSB_M4_RSBLAS_INTERFACE_OPS,` RSB_M4_RSBLAS_INTERFACE_IDENTIFIER(pmop)')
!
!
dnl      module blas_sparse
      module rsb_mod
        implicit none

public
        foreach(`pmop',RSB_M4_RSBLAS_INTERFACE_OPS,`
        interface RSB_M4_RSBLAS_INTERFACE_IDENTIFIER(pmop)
         ! RSB_M4_RSBLAS_SUBROUTINE_HELP_COMMENT(pmop,`*')
         module procedure  RSB_M4_INTERFACE_LIST(RSB_M4_COMMA_LIST((RSB_M4_CHOPTRAILINGSPACES(foreach(`mtype',RSB_M4_MATRIX_TYPES,`RSB_M4_RSBLAS_SUBROUTINE_IDENTIFIER(pmop,mtype) ')))))dnl
        end interface
        ')

        integer, parameter :: rsb_const_success=0
        integer, parameter :: rsb_const_failure=-1 ! value returned by this interface on failure
        integer, parameter :: rsb_const_not_available=-9999 ! value returned by this interface when deactivated

contains

        subroutine RSB_M4_RSBLAS_INTERFACE_RADIX`_'init(info)
          implicit none
          integer::info
          info = rsb_const_success
#ifdef RSB_HAVE_RSB_KERNELS
          call RSB_M4_RSBLAS2VBR_SUBROUTINE_RADIX`'init(info)
          if(info.ne.rsb_const_success)info=psb_rsb_const_failure
#else /* RSB_HAVE_RSB_KERNELS */
          info = rsb_const_not_available
#endif /* RSB_HAVE_RSB_KERNELS */
        end subroutine

        subroutine RSB_M4_RSBLAS_INTERFACE_RADIX`_'exit(info)
          implicit none
          integer::info
          info = rsb_const_success
#ifdef RSB_HAVE_RSB_KERNELS
          call RSB_M4_RSBLAS2VBR_SUBROUTINE_RADIX`'exit(info)
          if(info.ne.rsb_const_success)info=psb_rsb_const_failure
#else /* RSB_HAVE_RSB_KERNELS */
          info = rsb_const_not_available
#endif /* RSB_HAVE_RSB_KERNELS */
        end subroutine

        foreach(`pmop',RSB_M4_RSBLAS_INTERFACE_OPS,`
        foreach(`mtype',RSB_M4_MATRIX_TYPES,`
        subroutine RSB_M4_RSBLAS_SUBROUTINE_IDENTIFIER(pmop,mtype)`'RSB_M4_RSBLAS_SUBROUTINE_ARGS(pmop,mtype)
          ! RSB_M4_RSBLAS_SUBROUTINE_HELP_COMMENT(pmop,mtype)
          implicit none
RSB_M4_RSBLAS_SUBROUTINE_INFO_DECLARATION(info)dnl
RSB_M4_RSBLAS_SUBROUTINE_ARGS_DECLARATION(pmop,mtype)dnl
#ifdef RSB_HAVE_RSB_KERNELS
          info = rsb_const_success
ifelse(pmop,`get_rows_sparse',`dnl
          if(append)appendi=1
          if(has_iren)has_ireni=1
')`'dnl
ifelse(pmop,`ussm',`dnl
dnl          itrans=78 ! FIXME: temporary
')dnl
ifelse(pmop,`usmm',`dnl
dnl          itrans=78 ! FIXME: temporary
')dnl
ifelse(pmop,`usmv',`dnl
dnl          itrans=78 ! FIXME: temporary
')dnl
ifelse(pmop,`infinity_norm',`dnl
dnl          itrans=78 ! FIXME: temporary
')dnl
          call RSB_M4_RSBLAS2VBR_SUBROUTINE_IDENTIFIER(pmop,mtype)RSB_M4_ARGS_TO_ACTUAL_ARGS_FOR_RSB_INTERFACE((RSB_M4_RSBLAS_SUBROUTINE_ARGS(pmop,mtype)))
ifelse(pmop,`destroy_sparse_matrix',`dnl
')`'dnl
ifelse(pmop,`allocate_sparse_matrix',`dnl
')`'dnl
ifelse(pmop,`get_matrix_nnz',`dnl
')`'dnl
ifelse(pmop,`infinity_norm',`dnl
           real_in=in ! FIXME : this is a conversion
')dnl
          if(info.ne.rsb_const_success)info = rsb_const_failure
#else /* RSB_HAVE_RSB_KERNELS */
          info = rsb_const_not_available
#endif /* RSB_HAVE_RSB_KERNELS */
        end subroutine
        ')
        ')
dnl      end module blas_sparse
      end module rsb_mod
dnl
dnl