2015-01-29 2 views
0

Я пишу код, где мне нужны массивы, определенные как u1, u2, u3. Я требую, чтобы определенное количество переменных определялось пользователем. например, если пользователь вводит целочисленное значение «7». Тогда определены переменные u1, u2, u3, u4, u5, u6, u7. Таким образом, имена переменных для массивов определяются тем значением, которое вводит пользователь.имена динамических переменных fortran

+0

Возможный дубликат [FORTRAN - имена динамических переменных] (http://stackoverflow.com/questions/9536346/fortran-dynamic-variable-names) – francescalus

+0

@francescalus Я не понимаю ответ на вопрос, похожий на этот вопрос и я не могу прокомментировать там из-за меньшей репутации. –

+0

Я также не могу открыть эту ссылку: http://web.mse.uiuc.edu/courses/mse485/comp_info/derived.html –

ответ

1

Из описания вашей проблемы вы просто хотите выделить массив.

TYPE(whatever), ALLOCATABLE :: u(:) 
INTEGER :: some_number 
PRINT *, 'Enter the number of things you want:' 
READ *, some_number 
ALLOCATE(u(some_number)) 
! work with u(1) through to u(some_number) 

Стандарт Fortran не предлагает динамическое имя переменной «из коробки».

+0

Я хочу иметь количество массивов в зависимости от ввода пользователя. например u1 (10), u2 (10), u3 (10). Однако количество заданных массивов зависит от пользовательского ввода. если пользователь вводит i = 3, тогда он определяет три массива .... –

+0

@SyedMoez использует двумерный распределяемый массив. Если вам нужны 3 массива из 10 значений, delcare как 'allocatable, u (:, :)' и выделите его с помощью 'allocate (u (3,10))'. – casey

+1

... или иметь массивный элемент размера 10 внутри типа 'whatever'. – IanH

Смежные вопросы