Как я могу получить значение из ссылки в Фортран? - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь обновить часть кода на Фортране, который выполняет вычисления на основе входных данных из процедуры 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 несколько сомнительно.

Если это может вызвать проблемы, что я могу использовать, чтобы получить значения, которые не будут выдавать предупреждения везде, не так ли?не требует, чтобы у меня была подпрограмма просто для передачи ссылок, или, по крайней мере, она будет работать на любом компиляторе?

Кроме того, если кто-то может просто уточнить, что на самом деле происходит здесь или почему, я был бы также признателен за это..

...