Определение типа переменных, не объявленных в верхней части подпрограммы Fortran

Я работаю с устаревшей подпрограммой кода Fortran 77, где типы параметров не объявлены в верхней части блока кода.

Вот фрагмент, показывающий самый верх подпрограммы.

   SUBROUTINE BPASS(F1,F2,F3,F4,SI,N,A,IERR)
REAL * 4 A( N ),FV( 4 )

Исходя из вышесказанного, я думаю, что A это массив длины N с типом REAL *4, эквивалентный по размеру C float, С другой стороны, FV(4) это массив длины 4 с типом REAL *4,

Тем не менее, какие типы F1,F2,F3,F4,SI,N,IERR, если типы не указаны? Похоже, что N должен быть integer,

Мне нужно знать типы, чтобы я мог вызывать подпрограмму из кода C ++. Существует ли соглашение Фортрана для типов, которые не объявлены?

1

Решение

По умолчанию Фортран назначит тип integer переменным, имена которых начинаются с букв I,J,K,L,M,N и введите real для всех других необъявленных переменных.

Я согласен с вашим разбором определений A а также FV,

Современный Фортран обеспечивает выражение implicit none для гарантии того, что правила по умолчанию не применяются, но при работе со старыми кодами иногда невозможно избежать знакомства со старыми темными способами.

6

Другие решения

В FORTRAN77по умолчанию переменные, начинающиеся с I, J, K, L, M или N, INTEGERиначе они REAL, FORTRAN90и некоторые варианты FORTRAN77предоставить механизм для отключения этого с помощью IMPLICIT NONE,

4

По вопросам рекламы [email protected]