Topic: Fortran 77

Before to purchase simply FORTRAN I am checking its work with trial version. I have tried to perform build  of FORTRAN 77  file without any success. If simply FORTRAN can build FORTRAN 77 file?

Re: Fortran 77

Simply Fortran fully supports the Fortran 77 standard.  Can you provide any more information about your problem?  I'm sure I'd be able to help.

Jeff Armstrong
Approximatrix, LLC

Re: Fortran 77

Thank you for answer. How can I send you small .for file?
The build results are presented below


==============================================================================
Generating Makefile... Okay
==============================================================================
Compiling .\Refrig.for
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.\Refrig.for:117:33:

  117 |     1 FORMAT(2X,'FLUID NUMBER=',\)
      |                                 1
Error: Unexpected element '\' in format string at (1)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.\Refrig.for:118:36:

  118 |     2 FORMAT(2X,'TEMPERATURE,[C]=',\)
      |                                    1
Error: Unexpected element '\' in format string at (1)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.\Refrig.for:122:28:

  122 |     5 FORMAT(2X,'FLUID - ',\)
      |                            1
Error: Unexpected element '\' in format string at (1)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.\Refrig.for:135:72:

  135 |       PAUSE
      |                                                                        1
Warning: Deleted feature: PAUSE statement at (1)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.\Refrig.for:24:72:

   24 |       WRITE(*,1)
      |                                                                        1
Error: FORMAT label 1 at (1) not defined
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.\Refrig.for:26:72:

   26 |       WRITE(*,2)
      |                                                                        1
Error: FORMAT label 2 at (1) not defined
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.\Refrig.for:113:72:

  113 |       WRITE(*,5)
      |                                                                        1
Error: FORMAT label 5 at (1) not defined
Error: Last command making (build\Refrig.o) returned a bad status
Error: Make execution terminated

* Failed *

Re: Fortran 77

The backslash in your FORMAT statements is a non-standard extension provided by Intel's compiler which probably originated with DEC compilers since that's all the Intel compiler actually is.  This extension isn't supported by our compiler.

It appears, though, that the backslash is merely attempting to stop the WRITE statements from advancing to a new line (technically it stops "advancing a record," which is a line in this case, I'm guessing).  You can change this easily to standards-compliant Fortran, though it will be a modern Fortran standard.  First, remove the backslashes from all the FORMAT statements:

     1 FORMAT(2X,'FLUID NUMBER=')

Next, you'll need to modify the WRITE statements as well with the modern, standards-compliant change:

       WRITE(*, 1, ADVANCE='NO')

That's the quickest way to fix this.  Luckily, it appears you only have a handful of places that needs changes.

If you don't care about everything being on the same line, though, you can always just delete the backslashes and take no other action.

If you do need to send code, you can always contact me at support@approximatrix.com.

Jeff Armstrong
Approximatrix, LLC

Re: Fortran 77

Jeff, Thank you for response.
I corrected Format and CHARACTER operators. Build is OK and was completed without mistakes. However, when I run the exe file, the program does not stop to read the input data.
Below presented part of soft where the requested data were not red.

  CHARACTER (len=80) WORD80
      CHARACTER(len=80) MTLNAME
      CHARACTER(len=16) WORD16
      CHARACTER(len=21) WORD21
      CHARACTER(len=39) WORD39
     
      CHARACTER(len=1) YN
C
      DIMENSION   TMPDAT(15), FTUDAT(15),FTYDAT(15),
     +            CRPDAT(15)
C
      OPEN(UNIT = 10, FILE = 'METAL.DAT', STATUS = 'OLD')

C       --------------------------------------------------------------
C        ---request for metal number from data,and preparing a list --
C         --------- of metals for the user ----------------------------
C
      WRITE(*,1)
      REWIND 10
              DO ILINE = 1, 10              ! read 10 lines of comments
                 READ(10,5) WORD80
              END DO
  200 CONTINUE             
              READ(10,5,ERR=800) WORD80     ! skip line of:123345....
              READ(10,5) WORD80
              WRITE(*,5) WORD80             ! print metals name
                 DO JLINE = 1 , 28          ! skip remaining lines
                    READ(10,5) WORD80
                 END DO
              GO TO 200         
C     
  800 CONTINUE 
C     ------------- entering  requested metal ------------------
      WRITE(*,2)
      READ(*,*) NMT
C             
C      -------reading data for request metal--




  2 FORMAT(/,2X,'Select the sequential number of metal = ',/)

Re: Fortran 77

My first guess is that the first data read at:

              READ(10,5,ERR=800) WORD80     ! skip line of:123345....

fails and the program correctly jumps to label 800.  I don't know why it fails, though, without knowing what the FORMAT statement at label 5 is.  Could you provide a bit more?

Jeff Armstrong
Approximatrix, LLC

Re: Fortran 77

2 FORMAT(/,2X,'Select the sequential number of metal = ',/)

    5 FORMAT(A80)

The soft read from file 10 (metal.dat) and after that jump to label 800 when reading data presented in file was completed. It is OK. It is right work. The question is why the soft does not stop to "entering requested metal" after label 800. I will send you full code file to support@approximatrix.com.