Список данных Fortran 95 на нескольких строках

   integer M

   character (len = 20) dict(50)

   data dict/'gum','sin','for','cry','lug','bye','fly','ugly', 
 M           'each','from','work','talk','with','self',
 M           'pizza','thing','feign','fiend','elbow','fault',
 M           'dirty','budget','spirit','quaint','maiden',
 M           'escort','pickax','example','tension','quinine',
 M           'kidney','replica','sleeper','triangle',
 M           'kangaroo','mahogany','sergeant','sequence',
 M           'moustache','dangerous','scientist','different',
 M           'quiescent','magistrate','erroneously',
 M           'loudspeaker','phytotoxic','matrimonial',
 M           'parasympathomimetic','thigmotropism'/

Мне дали некоторый код на Fortran 77, и я должен преобразовать его в 95. Я знаю очень простые вещи по ключевому слову данных, например

character (len = 5) arr (5)
data arr /'aaa','bbb','ccc','ddd','eee'/

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


person TreeTree    schedule 01.02.2013    source источник


Ответы (1)


В Fortran 77 любой символ в столбце 6 обозначает строку продолжения. "М" в данном случае. В Fortran 95 вы вместо этого используете амперсанд в конце строки для продолжения.

person user2034179    schedule 01.02.2013
comment
Я понимаю. Я только что внес изменения и получил синтаксические ошибки в символе &. Я изменил расширение файла с .for на .f95, и это устранило ошибку. Я предположил, что расширения файлов не имеют значения, потому что это просто текстовый файл. - person TreeTree; 02.02.2013
comment
Некоторые компиляторы используют расширение файла для идентификации формы исходного кода. - person M. S. B.; 02.02.2013
comment
Это неправильно. Вы проводите различие не между fortran 77 и fortran 95, а между формой с фиксированным исходным кодом и формой со свободным исходным кодом. Конечно, в фортране 77 была допустима только фиксированная форма (то, что сейчас называется), а в фортране 90 введена свободная форма, но фиксированная форма остается частью стандарта. - person eriktous; 02.02.2013
comment
Руководство gfortran со ссылкой на -ffree-form и -ffixed-form: если ни одна из опций не указана, исходная форма определяется расширением файла. Если вам нужна необычная комбинация (исходник в свободной форме с F77 или фиксированный с F95), это возможно, в противном случае gfortran выберет разумное значение по умолчанию на основе расширения файла. - person M. S. B.; 02.02.2013
comment
В качестве примечания: если вы хотите, чтобы код был совместим как с формой free, так и с формой fixed, вы можете поставить амперсанд в конце строки, которую вы хотите продолжить в столбце 73 И амперсанд в конце следующую строку в столбце 6. - person mgilson; 03.02.2013