Skip to content

Commit 3f5ff6d

Browse files
authored
Merge pull request #280 from sethrj/swig-update
Update ForTrilinos for SWIG 4.0.2+fortran release
2 parents 54a5eda + 9a8a8f4 commit 3f5ff6d

20 files changed

+5514
-6748
lines changed

src/forbelos/forbelos.i

+5
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,9 @@
1818
%rename("Belos%s", %$isenumitem) "";
1919
%rename("Belos%s", %$isenum) "";
2020

21+
// Use link-time wrappers for enums with C-only values
22+
%nofortranconst Belos::MsgType;
23+
%nofortranconst Belos::StatusType;
24+
%nofortranconst Belos::ResetType;
25+
2126
%include "Belos_Types.i"

src/forbelos/generated/forbelos.F90

+41-42
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
! This file was automatically generated by SWIG (http://www.swig.org).
2-
! Version 4.0.0
2+
! Version 4.0.2+fortran
33
!
44
! Do not make changes to this file unless you know what you are doing--modify
55
! the SWIG interface file instead.
@@ -116,7 +116,6 @@ module forbelos
116116

117117
integer, parameter :: swig_cmem_own_bit = 0
118118
integer, parameter :: swig_cmem_rvalue_bit = 1
119-
integer, parameter :: swig_cmem_const_bit = 2
120119
type, bind(C) :: SwigClassWrapper
121120
type(C_PTR), public :: cptr = C_NULL_PTR
122121
integer(C_INT), public :: cmemflags = 0
@@ -130,12 +129,12 @@ module forbelos
130129
procedure, nopass :: get_orthoKappa => swigf_DefaultSolverParameters_orthoKappa_get
131130
procedure, nopass :: get_resScaleFactor => swigf_DefaultSolverParameters_resScaleFactor_get
132131
procedure, nopass :: get_impTolScale => swigf_DefaultSolverParameters_impTolScale_get
133-
procedure :: release => swigf_release_DefaultSolverParameters
132+
procedure :: release => swigf_DefaultSolverParameters_release
134133
procedure, private :: swigf_DefaultSolverParameters_op_assign__
135134
generic :: assignment(=) => swigf_DefaultSolverParameters_op_assign__
136135
end type DefaultSolverParameters
137136
interface DefaultSolverParameters
138-
module procedure swigf_create_DefaultSolverParameters
137+
module procedure swigf_new_DefaultSolverParameters
139138
end interface
140139

141140
! WRAPPER DECLARATIONS
@@ -263,7 +262,7 @@ subroutine swigc_DefaultSolverParameters_op_assign__(farg1, farg2) &
263262
use, intrinsic :: ISO_C_BINDING
264263
import :: swigclasswrapper
265264
type(SwigClassWrapper), intent(inout) :: farg1
266-
type(SwigClassWrapper) :: farg2
265+
type(SwigClassWrapper), intent(in) :: farg2
267266
end subroutine
268267

269268
end interface
@@ -272,75 +271,75 @@ subroutine swigc_DefaultSolverParameters_op_assign__(farg1, farg2) &
272271
contains
273272
! MODULE SUBPROGRAMS
274273

275-
subroutine SWIG_chararray_to_string(wrap, string)
274+
subroutine SWIGTM_fout_char_Sm_(imout, fout)
276275
use, intrinsic :: ISO_C_BINDING
277-
type(SwigArrayWrapper), intent(IN) :: wrap
278-
character(kind=C_CHAR, len=:), allocatable, intent(OUT) :: string
276+
type(SwigArrayWrapper), intent(in) :: imout
277+
character(len=:), allocatable, intent(out) :: fout
279278
character(kind=C_CHAR), dimension(:), pointer :: chars
280279
integer(kind=C_SIZE_T) :: i
281-
call c_f_pointer(wrap%data, chars, [wrap%size])
282-
allocate(character(kind=C_CHAR, len=wrap%size) :: string)
283-
do i=1, wrap%size
284-
string(i:i) = chars(i)
280+
call c_f_pointer(imout%data, chars, [imout%size])
281+
allocate(character(len=imout%size) :: fout)
282+
do i=1, imout%size
283+
fout(i:i) = char(ichar(chars(i)))
285284
end do
286285
end subroutine
287286

288287
function convertReturnTypeToString(result) &
289288
result(swig_result)
290289
use, intrinsic :: ISO_C_BINDING
291-
character(kind=C_CHAR, len=:), allocatable :: swig_result
290+
character(len=:), allocatable :: swig_result
292291
integer(BelosReturnType), intent(in) :: result
293292
type(SwigArrayWrapper) :: fresult
294293
integer(C_INT) :: farg1
295294

296295
farg1 = result
297296
fresult = swigc_convertReturnTypeToString(farg1)
298-
call SWIG_chararray_to_string(fresult, swig_result)
297+
call SWIGTM_fout_char_Sm_(fresult, swig_result)
299298
call SWIG_free(fresult%data)
300299
end function
301300

302301
function convertStatusTypeToString(status) &
303302
result(swig_result)
304303
use, intrinsic :: ISO_C_BINDING
305-
character(kind=C_CHAR, len=:), allocatable :: swig_result
304+
character(len=:), allocatable :: swig_result
306305
integer(BelosStatusType), intent(in) :: status
307306
type(SwigArrayWrapper) :: fresult
308307
integer(C_INT) :: farg1
309308

310309
farg1 = status
311310
fresult = swigc_convertStatusTypeToString(farg1)
312-
call SWIG_chararray_to_string(fresult, swig_result)
311+
call SWIGTM_fout_char_Sm_(fresult, swig_result)
313312
call SWIG_free(fresult%data)
314313
end function
315314

316315

317-
subroutine SWIG_string_to_chararray(string, chars, wrap)
316+
subroutine SWIGTM_fin_char_Sm_(finp, iminp, temp)
318317
use, intrinsic :: ISO_C_BINDING
319-
character(kind=C_CHAR, len=*), intent(IN) :: string
320-
character(kind=C_CHAR), dimension(:), target, allocatable, intent(OUT) :: chars
321-
type(SwigArrayWrapper), intent(OUT) :: wrap
318+
character(len=*), intent(in) :: finp
319+
type(SwigArrayWrapper), intent(out) :: iminp
320+
character(kind=C_CHAR), dimension(:), target, allocatable, intent(out) :: temp
322321
integer :: i
323322

324-
allocate(character(kind=C_CHAR) :: chars(len(string) + 1))
325-
do i=1,len(string)
326-
chars(i) = string(i:i)
323+
allocate(character(kind=C_CHAR) :: temp(len(finp) + 1))
324+
do i=1,len(finp)
325+
temp(i) = char(ichar(finp(i:i)), kind=C_CHAR)
327326
end do
328-
i = len(string) + 1
329-
chars(i) = C_NULL_CHAR ! C string compatibility
330-
wrap%data = c_loc(chars)
331-
wrap%size = len(string)
327+
i = len(finp) + 1
328+
temp(i) = C_NULL_CHAR ! C finp compatibility
329+
iminp%data = c_loc(temp)
330+
iminp%size = len(finp, kind=C_SIZE_T)
332331
end subroutine
333332

334333
function convertStringToStatusType(status) &
335334
result(swig_result)
336335
use, intrinsic :: ISO_C_BINDING
337336
integer(BelosStatusType) :: swig_result
338-
character(kind=C_CHAR, len=*), target :: status
339-
character(kind=C_CHAR), dimension(:), allocatable, target :: farg1_chars
337+
character(len=*), target :: status
340338
integer(C_INT) :: fresult
339+
character(kind=C_CHAR), dimension(:), allocatable, target :: farg1_temp
341340
type(SwigArrayWrapper) :: farg1
342341

343-
call SWIG_string_to_chararray(status, farg1_chars, farg1)
342+
call SWIGTM_fin_char_Sm_(status, farg1, farg1_temp)
344343
fresult = swigc_convertStringToStatusType(farg1)
345344
swig_result = fresult
346345
end function
@@ -349,12 +348,12 @@ function convertStringToNormType(normtype) &
349348
result(swig_result)
350349
use, intrinsic :: ISO_C_BINDING
351350
integer(BelosNormType) :: swig_result
352-
character(kind=C_CHAR, len=*), target :: normtype
353-
character(kind=C_CHAR), dimension(:), allocatable, target :: farg1_chars
351+
character(len=*), target :: normtype
354352
integer(C_INT) :: fresult
353+
character(kind=C_CHAR), dimension(:), allocatable, target :: farg1_temp
355354
type(SwigArrayWrapper) :: farg1
356355

357-
call SWIG_string_to_chararray(normtype, farg1_chars, farg1)
356+
call SWIGTM_fin_char_Sm_(normtype, farg1, farg1_temp)
358357
fresult = swigc_convertStringToNormType(farg1)
359358
swig_result = fresult
360359
end function
@@ -363,41 +362,41 @@ function convertStringToScaleType(scaletype) &
363362
result(swig_result)
364363
use, intrinsic :: ISO_C_BINDING
365364
integer(BelosScaleType) :: swig_result
366-
character(kind=C_CHAR, len=*), target :: scaletype
367-
character(kind=C_CHAR), dimension(:), allocatable, target :: farg1_chars
365+
character(len=*), target :: scaletype
368366
integer(C_INT) :: fresult
367+
character(kind=C_CHAR), dimension(:), allocatable, target :: farg1_temp
369368
type(SwigArrayWrapper) :: farg1
370369

371-
call SWIG_string_to_chararray(scaletype, farg1_chars, farg1)
370+
call SWIGTM_fin_char_Sm_(scaletype, farg1, farg1_temp)
372371
fresult = swigc_convertStringToScaleType(farg1)
373372
swig_result = fresult
374373
end function
375374

376375
function convertScaleTypeToString(scaletype) &
377376
result(swig_result)
378377
use, intrinsic :: ISO_C_BINDING
379-
character(kind=C_CHAR, len=:), allocatable :: swig_result
378+
character(len=:), allocatable :: swig_result
380379
integer(BelosScaleType), intent(in) :: scaletype
381380
type(SwigArrayWrapper) :: fresult
382381
integer(C_INT) :: farg1
383382

384383
farg1 = scaletype
385384
fresult = swigc_convertScaleTypeToString(farg1)
386-
call SWIG_chararray_to_string(fresult, swig_result)
385+
call SWIGTM_fout_char_Sm_(fresult, swig_result)
387386
call SWIG_free(fresult%data)
388387
end function
389388

390389
function convertMsgTypeToString(msgtype) &
391390
result(swig_result)
392391
use, intrinsic :: ISO_C_BINDING
393-
character(kind=C_CHAR, len=:), allocatable :: swig_result
392+
character(len=:), allocatable :: swig_result
394393
integer(BelosMsgType), intent(in) :: msgtype
395394
type(SwigArrayWrapper) :: fresult
396395
integer(C_INT) :: farg1
397396

398397
farg1 = msgtype
399398
fresult = swigc_convertMsgTypeToString(farg1)
400-
call SWIG_chararray_to_string(fresult, swig_result)
399+
call SWIGTM_fout_char_Sm_(fresult, swig_result)
401400
call SWIG_free(fresult%data)
402401
end function
403402

@@ -451,7 +450,7 @@ function swigf_DefaultSolverParameters_impTolScale_get() &
451450
swig_result = fresult
452451
end function
453452

454-
function swigf_create_DefaultSolverParameters() &
453+
function swigf_new_DefaultSolverParameters() &
455454
result(self)
456455
use, intrinsic :: ISO_C_BINDING
457456
type(DefaultSolverParameters) :: self
@@ -461,7 +460,7 @@ function swigf_create_DefaultSolverParameters() &
461460
self%swigdata = fresult
462461
end function
463462

464-
subroutine swigf_release_DefaultSolverParameters(self)
463+
subroutine swigf_DefaultSolverParameters_release(self)
465464
use, intrinsic :: ISO_C_BINDING
466465
class(DefaultSolverParameters), intent(inout) :: self
467466
type(SwigClassWrapper) :: farg1

0 commit comments

Comments
 (0)