Я новичок в Фортране, и для этого мне нужно создать интерфейс между C # и Фортраном.
Передача аргумента из C # в Fortran работает без проблем, но более легкая задача, передача значений внутри кода Fortran не хочет работать ...
Когда я хочу передать параметры из одной функции Fortran в другую, в данном случае из VdiFunctionRunner в TGA_810, вызываемая функция не имеет правильных значений параметров.
Это урезанная версия моего кода:
module VdiFunctionRunnerMain
implicit none
contains
integer function VdiFunctionRunner ()
!DEC$ ATTRIBUTES DLLEXPORT, StdCall :: VdiFunctionRunner
implicit none
CHARACTER (256) :: inXTGA, copyXTGA
CHARACTER (256) :: ARRAY_810(10)
copyXTGA = 'test'
nrReturnValues = tga_810(copyXTGA, 1)
VdiFunctionRunner = nrReturnValues
return
end function VdiFunctionRunner
integer function tga_810(xtga, testNr)
character (256), intent(in) :: xtga
integer, intent(in) :: testNr
tga_810=2
end function tga_810
end module VdiFunctionRunnerMain
Как видите, переданные значения должны быть 'test' и 1, но в отладчике я получаю только первый символ массива ('t') и testNr = 0.
Я думаю, что нет ошибки в написании кода, не так ли?
Когда код верен, кто-нибудь знает, может ли это быть проблемой компилятора или что-то в этом роде?
Я использую компилятор Intel 11.
Помощь очень ценится.