bastian1985
-
Gesamte Inhalte
4 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von bastian1985
-
-
hi danke für die Antwort
du hast das richtig verstanden, mit 3 dim meine ich dim(3).
Das mit dem nur als 3D Array zu deklarieren darüber denke ich gerade auch nach. Dies würde aber auch einiges erschweren, da das Programm Daten aus einer Datei einließt, die im 2D Fall halt eine andere Form hat, als im 3D Fall.
Aber wenn es sowieso keinen Befehl dafür gibt ist es ja meine einzige Lösung
Vielen Dank für deine Hilfe
-
mmh hat keiner eine Ahnung oder ein Tipp?
habe es ja schon mit dem Aufruf "reshape" oder "spread" versucht,
nur da erstellt man ja auch ein neues Array,
will ja das das Array genau den selben Namen hat, nur um eine Dimension erweitert wird.
-
Guten Tag,
sitzte gerade an meiner Diplomarbeit, in welcher ich ein Programm in Fortran umschreiben muss. Es soll später soll 2D als auch 3D Berechnungen durchführen können.
Mein Problem die Variable ist die Zellnummerierung, da sie ja einmal 2d und einmal 3d sein muss
das steht in meiner Varialbendeklaration
integer,pointer,dimension(:,: ) CellNum
jetzt möchte ist das wenn
if (dim3d=.True.) !es wird als 3dimensional gerechnet
dass dann die Variable Cellnum folgende form hat
integer,pointer,dimension(:,:,: ) CellNum
hätte vielleicht einer eine Ahnung wie das geht.
Vielen Dank für die Hilfe!
[FORTRAN90] Arrays um eine Dimension erweitern
in Delphi/RPG+CL/Sonstige
Geschrieben
Hey Danke Casioi für die vielen Ideen
wie dein Tipp schon sagt, ist das wohl der einzige weg:
***
if(2d) then
berechnung mit CellNum2d
else
berechnung mit CellNum3d
endif
***
so habe ich das im Programm jetzt auch ausgeführt, das wollte ich halt umgehen
dass ich dafür zwei Variablen benutzen muss, da im Programm dann sehr oft die Unterscheidung kommt, ob jetzt CellNum2d oder CellNum3d benutzt wird
wie hier:
if (dim3log) then
NumZ=1
endif
do i=1,NumX
do j=1,NumY
do k=1,NumZ !für 3D
if (dim3log) then
ic=CellNum3d(i,j,k) !für 3D
else
ic=CellNum2d(i,j)
endif
enddo
enddo
enddo
und ich hatte halt Angst, dass dadurch dadurch die Rechnendauer ansteigt, da er immer wieder die if-Abfrage behandeln muss.
Aber wie gesagt ist das der einzige Weg.
Vielen Dank nochmal!