Есть ли простой способ инициировать группу переменных в подпрограммах Fortran? Что-то вроде DATA, но работает каждый раз при вызове подпрограммы. Или единственное решение — использовать x = 0.0
для всех переменных?
Как обнулить все переменные при каждом вызове подпрограммы?
Ответы (2)
Да, чтобы установить значение переменной, используйте присваивание (=
).
Вы можете создать производный тип и пользовательское назначение для упрощения синтаксиса.
Мне также нужно было обнулить несколько переменных в начале подпрограммы, которую нужно было вызывать более одного раза. Я просто скопировал текст, используемый в объявлении переменных, в пустой новый файл в редакторе кода и использовал функцию «Найти и заменить», чтобы заменить все ,
на =0;
или =0.0DE0;
Вот пример:
Double precision AP(nPor), ACCor(nThr,4), ...
Замена всех (nPor),
и (nThr,4),
на =0.0D0;
AP=0.0D0; ACCor=0.0D0;
Затем все переменные были немедленно установлены в ноль. Мне только не удалось использовать подстановочные знаки, такие как (*),
, чтобы сэкономить время на просмотр каждого типа аргументов, используемых в переменных.
Если этот поворот совсем не подходит, вы можете попытаться избежать атрибута SAVE в подпрограммах, как указано в Сохраняет ли fortran значение внутренних переменных через функцию и подпрограммы
ACCor=0
. Сложности с dim
не нужны.
- person Vladimir F; 08.02.2015