Методы решения: fortran
"В Фортране существует две возможности задания начальных значений переменных: в операторах объявления типа и оператором DATA. Начальные значения присваиваются переменным на этапе компиляции программы."
О.В. Бартеньев "Современный ФОРТРАН", стр. 63
program test_data
real a
do i = 1,3
call a1
print*, a
enddo
end program
subroutine a1
real a
do i = 1,3
call a1
print*, a
enddo
end program
subroutine a1
real a
data a/36.6/
print*, '1',a
a = -10.4
print*, '2',a
return
end subroutine
В этой программе мы объявляем действительную переменную a, в цикле печатаем значение a и вызываем подпрограмму a1. В подпрограмме a1 переменная a (локальная, в основной программе её "не видно", т. к. мы её не передаём) задается через оператор data (a = 36.6), значение а выводится на экран (1), затем изменяется на отрицательное значение и снова печатается на экран (2). В результате выполнения программы на экране появляется следующее:
1 36.5999998
2 -10.400000
NaN
1 -10.400000
2 -10.400000
NaN
1 -10.400000
2 -10.400000
NaN
Таким образом, оператор data в составе подпрограммы не восстанавливает начальное значение переменной на каждом шаге цикла, но сохраняет в памяти изменившееся значение переменной для последующих шагов цикла. Переменные и массивы, заданные оператором data, по умолчанию имеет атрибут save: "переменные, неявно ставшие автоматическими и появившиеся в операторе DATA или инициализированные в операторе объявления типа, получат атрибут SAVE и будут помещены в статическую память." (О.В. Бартеньев, Современный Фортран, стр. 278). Это важно помнить, чтобы не допустить досадных run-time ошибок.
ВСЕ ПРОЧИТАЙТЕ НАСТОЯЩЕЕ ОТЗЫВ О том, КАК Я ПОЛУЧИЛ СВОЙ КРЕДИТ ОТ КОМПАНИИ LEGIT И ДОВЕРЕННОЙ КРЕДИТНОЙ СРЕДИ Меня зовут Kjerstin Lis, я искал кредит для погашения своих долгов, все, кого я встречал, мошенничали и брали свои деньги, пока я наконец не встретил мистера Бенджамина Брейл Ли Он смог дать мне кредит в размере 450 000 рублей. Он также помог другим моим коллегам. Я говорю как самый счастливый человек во всем мире сегодня, и я сказал себе, что любой кредитор, который спасает мою семью от нашей бедной ситуации, я скажу имя всему миру, и я так счастлив сказать, что моя семья вернулся навсегда, потому что я нуждался в кредите, чтобы начать свою жизнь заново, потому что я одинокая мама с 3 детьми, и весь мир, казалось, висел на мне, пока я не имел в виду, что БОГ послал кредитора, который изменил мою жизнь и член моей семьи, БОЖИЙ кредитор, мистер Бенджамин, он был Спасителем БОГом, посланным для спасения моей семьи, и сначала я подумал, что это будет невозможно, пока я не получу кредит, я пригласил его к себе в семью -все вечеринка, от которой он не отказался, и я посоветую всем, кто действительно нуждается в кредите, связаться с г-ном Бенджамином Брейлом Ли по электронной почте (lfdsloans@outlook.com), потому что он самый понимающий и добрый кредитор. когда-либо встречал с заботливым сердцем. Он не знает, что я делаю это, распространяя свою добрую волю ко мне, но я чувствую, что должен поделиться этим со всеми вами, чтобы освободить себя от мошенников, пожалуйста, остерегайтесь подделок и свяжитесь с правильной кредитной компанией. com или whatsapp + 1-989-394-3740. ,
ОтветитьУдалить