2009-11-09 4 views
1

Je suis un débutant dans Fortran. Peut any1 me dire comment définir un tableau d'entiers dans le préalable. E.g. Je veux définir un tableau avec no.of days dans 12 mois. comme ...define integer array fortran

integer,allocatable(12,1) :: days 

days=[31,28,31,30,31,30,31,31,30,31,30,31] 

Est-ce une syntaxe correcte? Si ce n'est pas le cas, faites le moi savoir.

Merci Praveen

Répondre

0

Fortran 77, je dirais que

INTEGER DAYS(12)/31,28,31,30,31,30,31,31,30,31,30,31/

déclaration de cette initialisation et en un.

Si vous voulez, vous pouvez aussi séparer les deux:

INTEGER DAYS(12) 
    DATA DAYS/31,28,31,30,31,30,31,31,30,31,30,31/
2

Si vous voulez un tableau alloué dynamiquement, procédez comme suit:


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 
0

n'a probablement pas besoin d'être allocatable, il le fait, car il est juste une constante tableau:

INTEGER :: a(12) = (/ 31,28,31,30,31,30,31,31,30,31,30,31 /) 
1

integer, dimension(12) :: a = (/ 31, 28, 31, 30, ... /)

pour tableau "statique". le [ ] au lieu de (/ /) est correct pour Fortran 2003 et plus tard; tous les compilateurs que je connais permettent cette syntaxe même s'ils n'implémentent pas pleinement F2003. Pour tableau dynamique:

 
integer, dimension(:) :: a 
! ... 
allocate(a(12)) 
a = (/ .... /) 
! ... 
deallocate(a) 

est également une option.