Fortran Need help for error in Fortran90

  • Thread starter Thread starter VSan
  • Start date Start date
  • Tags Tags
    Error Fortran90
AI Thread Summary
The discussion revolves around a student encountering errors while trying to run an old Fortran90 code using gfortran on a Mac. The errors primarily involve obsolete ASSIGN and GOTO statements, which are deprecated in modern Fortran standards. Participants suggest rewriting the code to eliminate these outdated constructs, emphasizing that ASSIGN and GOTO can lead to confusing programming practices. They recommend using computed GOTO syntax for any necessary jumps. Additionally, there are mentions of compiler switches that can force compatibility with older Fortran standards, and a note that file extensions may affect how the code is processed. The student also expresses confusion about executing the code in Visual Studio on Windows, particularly regarding the location of output files after successful execution.
VSan
Messages
4
Reaction score
0
Hi everyone,

I'm a student and I'm new in this language but I have to run a fortran90 code for my advisor. However, there is some error as provide below (I got the completed code to run for the results, which means that it doesn't suppose to have any error - but it's quite old. I run it on Mac using gfortran and Xcode)

--------------------------------------------------------------------------
FF.f90:8263.23:

10 ASSIGN 30 TO NEXT
1
Warning: Obsolete: ASSIGN statement at (1)
FF.f90:8272.19:

GO TO NEXT,(30, 50, 70, 90, 110)
1
Warning: Obsolete: Assigned GOTO statement at (1)
FF.f90:8274.23:

ASSIGN 50 TO NEXT
1
Warning: Obsolete: ASSIGN statement at (1)
FF.f90:8284.23:

ASSIGN 70 TO NEXT
1
Warning: Obsolete: ASSIGN statement at (1)
FF.f90:8289.24:

100 ASSIGN 110 TO NEXT
1
Warning: Obsolete: ASSIGN statement at (1)
FF.f90:8315.23:

85 ASSIGN 90 TO NEXT
1
Warning: Obsolete: ASSIGN statement at (1)
FF.f90:8334.35:

GO TO NEXT,( 50, 70, 90, 110 )
1
Error: Syntax error in GOTO statement at (1)


-----------------------------------------------------------

Thank you very very much for your help. I don't have any knowledge in this language so I cannot figure it out what's wrong.

Regards,
 
Technology news on Phys.org
We could probably be more helpful if you linked or pasted your code. Just from seeing that you're using ASSIGN and GOTO statements, I'm going to suggest that you rewrite your program. ASSIGN and GOTO are horrible ways to program in FORTRAN.
 
Thanks so much... I'll try to rewrite it again!
 
Yeah, ASSIGN has been depreciated and should be avoided. This code technique is old and can be very confusing (sort of reminds me of original BLAS routine for DNRM2 before its re-write). Try to avoid the GOTOs as well if you can. But if you must, I believe the correct syntax for the computed GOTO is (for example):

Code:
GO TO (50, 70, 90, 110), NEXT
 
Thank you very much

I know what's wrong with it now but I still didn't find the right way to run it :(

The command ASSIGN GO TO was deleted in Fortran95 and I don't know why gfortran cannot run it, since it said it can run for g90 as well.

Again thank you
 
There are switches you can specify to force compilier to use fortran90 or earlier (see doc's). On Windows version, you can also just rename file extension to (lower case) .f or .f90 to achieve this result automatically. In any event, be careful if you're using free-format code, as some earlier versions do not support this format.
 
Hi TheoMcCloskey,

Thank you for your advice!
Actually I'm also using Inter Fortran in Windows... But I'm confused for the Visual Studio and when I executed my code, it succeed but I cannot find the result files!
 

Similar threads

Replies
16
Views
2K
Replies
5
Views
5K
Replies
16
Views
2K
Replies
4
Views
2K
Replies
13
Views
2K
Replies
19
Views
2K
Replies
11
Views
12K
Replies
11
Views
3K
Back
Top