2011-01-14 18 views
4

Gibt es eine intrinsische in Fortran, die ein Array mit einer Folge von Nummern von a bis b, ähnlich wie Python range()erzeugen eine Folgeanordnung in Fortran

>>> range(1,5) 
[1, 2, 3, 4] 
>>> range(6,10) 
[6, 7, 8, 9] 

erzeugt?

+0

Wie range() funktioniert Python? – Rook

+0

@Rook: bearbeitete Frage –

Antwort

16

Nein, gibt es nicht.

Sie können jedoch ein Array mit einem Konstruktor initialisieren, die die gleiche Sache tut,

 

program arraycons 
    implicit none 
    integer :: i 
    real :: a(10) = (/(i, i=2,20, 2)/) 
    print *, a 
end program arraycons 
 
+0

Ist das nicht das Gleiche wie in Bereich() oben? Ich sehe den Unterschied nicht (abgesehen von <= und <, und der Tatsache, dass Fortran keine dynamische Sprache ist). Vielleicht habe ich die Frage falsch verstanden (oder die Antwort). – Rook

+0

@Rook: Es ist ein Array-Konstruktor mit einer impliziten do-Schleife, keine intrinsische. – janneb

+0

A-ah, ja. Ich habe diesen Teil in der Frage völlig vermisst. – Rook