Я новичок в Фортране. Может ли any1 сказать мне, как определить целочисленный массив в предыдущем. Например. Я хочу определить массив с количеством дней в 12 месяцев. как ...
integer,allocatable(12,1) :: days days=[31,28,31,30,31,30,31,31,30,31,30,31]
Это правильный синтаксис? Если нет, пожалуйста, дайте мне знать правильный.
Спасибо Praveen
Если вы хотите динамически распределенный массив, попробуйте следующее:
program arraytest implicit none integer, allocatable :: a(:) allocate(a(12)) a = (/31,28,31,30,31,30,31,31,30,31,30,31/) print *, a end program arraytest
integer, dimension(12) :: a = (/ 31, 28, 31, 30, ... /)
для "статического" массива. [ ] вместо (/ /) правильно для Fortran 2003 и более поздних версий; все известные мне компиляторы допускают такой синтаксис, хотя они не полностью реализуют F2003. Для динамического массива:
[ ]
(/ /)
integer, dimension(:) :: a ! ... allocate(a(12)) a = (/ .... /) ! ... deallocate(a)
тоже вариант.
Вероятно, не нужно выделять, ведь это просто константный массив:
INTEGER :: a(12) = (/ 31,28,31,30,31,30,31,31,30,31,30,31 /)
В Фортране 77 я бы сказал
INTEGER DAYS(12) / 31,28,31,30,31,30,31,31,30,31,30,31 /
Это объявление и инициализация в одном.
Если вы хотите, вы также можете разделить два:
INTEGER DAYS(12) DATA DAYS / 31,28,31,30,31,30,31,31,30,31,30,31 /