het doorgeven van 2d array van C naar fortran77

Ik heb de volgende array in fortran77 dec (3, 25000), zelfs als alleen de 8898 van de 25000 posities in de tweede dimensie worden gebruikt.

Ik geef deze array door als een parameter, samen met andere arrays, aan een C-functie. Hoewel de waarden van de andere parameter juist lijken, zijn de dec() -waarden verkeerd.

Ik heb geprobeerd alleen de dec() array door te geven en de resultaten zijn hetzelfde. De waarde in dec (1,1) (fortran77) is gelijk aan de waarde in dec [0] [0] (C), maar voor willekeurige posities in de array krijg ik niet dezelfde waarden in fortran77 net voor het callen van de C functie en in de C-functie.

Enig idee waarom dit gebeurt?

De array wordt gedeclareerd als reëel * 8 dec (3,25000) in fortran en als int dec [3] [25000] in C.

Bij voorbaat dank

0
Houd er rekening mee dat de hoofdvolgorde voor tweedimensionale arrays wordt uitgewisseld tussen de twee talen. Dus dec [i] [j] in één taal is dec [j] [i] in de andere taal, plus indexbasis aanpassen zoals je al hebt ontdekt.
toegevoegd de auteur K-ballo, de bron
Ik plaatste mijn opmerking als een antwoord, zodat je het kunt accepteren.
toegevoegd de auteur K-ballo, de bron
Het probleem was in de hoofdorde omwisselen, daar wist ik niets van ... bedankt! ;)
toegevoegd de auteur dx_mrt, de bron

1 antwoord

Houd er rekening mee dat de hoofdvolgorde voor tweedimensionale arrays wordt uitgewisseld tussen de twee talen. Dus dec [i] [j] in één taal is dec [j] [i] in de andere taal, plus indexbasis aanpassen zoals je al hebt ontdekt.

5
toegevoegd