Если вы программист на фортране, вы, вероятно, видели подпрограмму, принимающую 10/15 аргументов. Если вы думаете об этом, это безумие (их слишком много, вы рискуете их поменять), и вы быстро понимаете, что некоторые аргументы всегда идут вместе.
Было бы целесообразно объединить их в единую сущность, которая несет в себе все как единое целое, а не как независимые сущности. Это значительно уменьшит количество аргументов, предоставляя вам только бремя для поиска правильной связи. Эта единая сущность является типом.
В своем коде вы говорите, что Банк является совокупностью этой информации. Теперь вы можете объявить конкретную переменную этого типа, которая будет представлять и предоставлять доступ к отдельным переменным acNumber, acChecks и так далее. Для этого вы должны использовать символ%. так что если ваша банковская переменная называется b, вы можете сказать, например,
b%acNumber = 5
Вы можете представить себе b как шкаф, содержащий разные полки. Вы перемещаете закрытые, все полки и их содержимое перемещаются вместе.
Массив - это группа объектов одного типа (скажем, целое число или символ (len = 1024), или банк), и они располагаются один за другим, поэтому вы можете получить доступ к каждому из них с помощью числового индекса. Помните, что, если не указано иное, индексы массивов в фортране начинаются с 1 (во всех других основных языках вместо этого первый индекс равен нулю)
Что касается вашего кода, я предлагаю вам:
запись
INTEGER, DIMENSION(MaxRow:MaxColum) :: AccountData
а
INTEGER :: AccountData(MaxRow,MaxColum)
это то же самое, но ты пишешь меньше. Также обратите внимание, что есть разница между использованием: и,. Если вы хотите определить матрицу (ваш случай), которая является двумерным массивом, вы должны использовать запятую. То, что вы написали, неверно.
для строк, лучше написать
CHARACTER :: acType*1, acLName*15, acFName*15
как
CHARACTER(LEN=1) :: acType
CHARACTER(LEN=15) :: acLName
CHARACTER(LEN=15) :: acFName
в этом случае вы пишете больше, но ваш синтаксис устарел (хотя я могу ошибаться)
Кроме того, помните, что лучше, если вы пишете одну переменную-член на строку в типах. Это дело вкуса, но я предпочитаю видеть полный размер типа, имея одну строку для каждой переменной-члена.
Для MaxRows и MaxColumns я бы написал их как MAX_ROWS и MAX_COLUMNS. Параметры и прочее, которые по традиции очень постоянны, обозначаются заглавными буквами, подчеркиваемыми в любом главном языке.
Редактировать : чтобы ответить на ваш комментарий, вот пример использования массива
$ more foo.f90
program test
integer :: myarray(10)
myarray = 0 ! equivalent to zeroing the single elements one by one
myarray(2) = 5
myarray(7) = 10
print *, myarray
end program
$ g95 foo.f90 -o foo
$ ./foo
0 5 0 0 0 0 10 0 0 0
массив похож на несколько переменных с одинаковыми именами, идентифицированными индексом. Очень полезно для выражения векторов или матриц.
Конечно, вы можете создать массив определенного вами агрегированного типа вместо предопределенного типа (например, целое число).