Kompilera Fortran-kod

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
Mickecarlsson
EF Sponsor
Inlägg: 3746
Blev medlem: 15 april 2017, 18:06:15
Ort: Malmö
Kontakt:

Kompilera Fortran-kod

Inlägg av Mickecarlsson »

Bakgrund;
En RS 6000 kör AIX 4.3 och på denna ligger ett stenålders Fortran-program (Fortran 77) som gör vissa beräkningar.
Denna server har Powersupply-fel. Se tråd i Köp/Sälj
Jag har testat att kompilera koden i Linux men får detta fel:

Kod: Markera allt

gfortran -ffixed-form -std=legacy -fdump-fortran-original minkod.f
      IF(J5.EQ.0)IX2=IX2-1
                                                                        1
minkod.f:321.72:
      DO 80 IX2=1,M3
                                                                        2
Error: Variable 'ix2' at (1) cannot be redefined inside loop beginning at (2)
Och här tar min kunskap slut på Fortran. Dock ska detta funka i AIX Fortran och inte ge detta fel.
Jag testade koden i PDP8 men den har flera nya tillägg som gör att den inte snurrar på den plattformen.
Just nu testar jag att installera AIX 4.3 i qemu och har kommit så långt att jag har en prompt och kan logga på som root.
Jag har skivan med Fortran men vet inte hur jag installerar via "smitty".
Dokumentationen för AIX 4.3 är inte helt klar (för mig).

Får jag igång AIX 4.3 i qemu kan jag ev köra detta virtuellt.
Jag behöver lite hjälp med att få in Fortran i AIX'en jag har snurrande, mest hur jag installerar det.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43149
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Kompilera Fortran-kod

Inlägg av sodjan »

Om koden inte är hemlig, och inte är allt för plattformsberoende, så kan jag testa på en annan plattform och kanske hitta en work around.
Användarvisningsbild
hawkan
Inlägg: 2586
Blev medlem: 14 augusti 2011, 10:27:40

Re: Kompilera Fortran-kod

Inlägg av hawkan »

När man läst felmeddelandet ett par gånger framgår det ju klart att du modifierar IX2 inne i en loop och det får man inte. Loop-variabler i fortran är speciella ska behandlas väl, ja låt de vara ifred.
Zkronk
Inlägg: 1423
Blev medlem: 23 augusti 2005, 16:44:36
Ort: Uppsala

Re: Kompilera Fortran-kod

Inlägg av Zkronk »

Alltid spännande när man hittar gamla potentiella buggar när man uppdaterar kompilatorn :)
Användarvisningsbild
Mickecarlsson
EF Sponsor
Inlägg: 3746
Blev medlem: 15 april 2017, 18:06:15
Ort: Malmö
Kontakt:

Re: Kompilera Fortran-kod

Inlägg av Mickecarlsson »

Det verkar vara tillåtet att modifiera variabler inne i en loop i stenålder-fortran. Denna kod är gammal, riktigt gammal, och kompilerad i AIX 4.3.3 och den version av Fortran som följde med där. Den kompilerade filen ligger på den server vars nätdel havererat. Dock är jag inte 100% säker på att jag har fått den senaste versionen av källkoden.
Jag har, i går, lyckats att få igång AIX 4.3.3 i qemu under Linux.
Jag har också fått tag på ett antal Bonus Pack till AIX 4.3.3 och på en av dessa Bonus Pack ska det ligga en Fortran kompilator.
Så fort jag fått installerat detta kan jag testa att kompilera och se om källkoden jag fått är den som går att kompilera.
Det är nästan 1000 rader kod och den är just nu klassad som företagshemlig. Den räknar fram kritiska värde för en viss typ av maskin baserat på en massa indata.
Koden är spagetti-kod och skriven med fixed-form Och modifierad ett antal gånger. Jag har identifierat minst en bugg som beror på hur Fortran tolkar radbrytning på långa rader.
Nästa steg i detta är att jag ska försöka få igång servern igen så jag kan kopiera ut binären och se om den kan snurra i min qemu-AIX.
Funkar detta har jag en riktig QD som kan fungera tills jag får tid att skriva om koden till C.
@Sodjan, jag kollar med ägaren till koden om jag får skicka den till dig.
Jag återkommer i veckan.
Användarvisningsbild
hawkan
Inlägg: 2586
Blev medlem: 14 augusti 2011, 10:27:40

Re: Kompilera Fortran-kod

Inlägg av hawkan »

Nej det är inte tillåtet att ändra loop index varken i fortran iv eller fortran 77. Möjligen kan det vara kompilatorberoende.
Man får använda men inte ändra loop index. Och inte ändra start,stopp eller inkrement-parametrarna till loopen heller.
Användarvisningsbild
Mickecarlsson
EF Sponsor
Inlägg: 3746
Blev medlem: 15 april 2017, 18:06:15
Ort: Malmö
Kontakt:

Re: Kompilera Fortran-kod

Inlägg av Mickecarlsson »

Tack hawkan, då vet jag detta. Jag kollar med ”ägaren” av koden och ser om det finns någon annan källkod, Risken är att den ligger på servern :(
Skriv svar