Я пытаюсь обновить часть кода на Фортране, который выполняет вычисления на основе входных данных из процедуры IDL.Когда процедура IDL выполняет вызов fortran, она передает ссылку для каждой переменной ( документация IDL CALL_EXTERNAL ).Код Fortran в настоящее время пытается передать каждую ссылку во входном массиве к другой подпрограмме вместе с тегами% VAL ().
subroutine full_calc(argc, argv)
implicit none
integer*8 :: argc
integer*8, dimension(24) :: argv
call map_gen(%VAL(argv(1)), %VAL(argv(2)), ...)
end subroutine full_calc
Это прекрасно работало с предыдущим кодом, так как он был скомпилирован в таком видеспособ как это быть полезным;однако новый компилятор выдает предупреждение, что я передаю INTEGER (8) вместо правильного типа переменных.Кроме того, согласно this использование% VAL несколько сомнительно.
Если это может вызвать проблемы, что я могу использовать, чтобы получить значения, которые не будут выдавать предупреждения везде, не так ли?не требует, чтобы у меня была подпрограмма просто для передачи ссылок, или, по крайней мере, она будет работать на любом компиляторе?
Кроме того, если кто-то может просто уточнить, что на самом деле происходит здесь или почему, я был бы также признателен за это..