Why Am I Getting an 'Out of Range in G Table' Error in FORTRAN?

  • Fortran
  • Thread starter Aerospark
  • Start date
  • Tags
    Fortran
In summary: ! ! ! !
  • #1
Aerospark
2
0
Ok so basically I am trying to write code that can call from a fluid properties subroutine similar to refprop but it is called FLUID. I need to call the subroutine with temperature and pressure, and have it come back with density, compressibility, and etc. It should be able to do this, however I keep coming back with errors and I'm not sure why..

The error that I am getting according to the code description is due to being "out of range in G table."

Main Program:
Code:
PROGRAM GasProperties

INTEGER ENTRYdata,ERROR,IGOTO

LOGICAL VAPOR

DIMENSION PROPS(8)
COMMON/FLUIDC/ GAMMA,WL,WG,DENSL,DENSG,ENTL,ENTG,ENTHL,ENTHG
COMMON /FLUDPC/ G,TT,DD,GG,SAT,C,M,NG,N1,N2,N3,NS 

REAL P,T,D,Z,S,H,CV,CP,GAM,Rgas,SONIC,MU,NU,K,Prandtl,RHO
      
CALL DRYAIR

WRITE(*,*) 'Enter P (Mpa):'
READ(*,*) P
WRITE(*,*) 'Enter T (Kelvin):'
READ(*,*) T
ENTRYdata=3
IGOTO=1
CALL FLUID(T,P,RHO,PROPS,8,ENTRYData,VAPOR,ERROR,IGOTO)

!         PERFORM UNITS CONVERSIONS FOR OUTPUT AS FOLLOWS:
!           Pressure              from   MPa     to   Pa
!           Density               from   gm/cm^3 to   kg/m^3
!           Entropy               from   J/gmK   to   J/kgK
!           Enthalpy              from   J/gmK   to   J/kgK
!           Specific Heats        from  kJ/kgK   to   J/kgK
!           Sonic velocity                       to   m/s
!           Viscosity (mu)        from  gm/cm-s  to   kg/m-s
!           Thermal Conductivity  from   W/cmK   to  W/m-K

         D = RHO*1000.0
         Z=PROPS(1)
         S = PROPS(2)*1000.0
         H = PROPS(3)*1000.0
         CV = PROPS(4)*1000.0
         CP = PROPS(5)*1000.0
         GAM = CP/CV
	     Rgas  = CP-CV
         SONIC = PROPS(6)*SQRT(1000.0)
         MU = PROPS(7)*0.1
	     NU = MU/RHO
         K = PROPS(8)*100.0
	     Prandtl = CP*MU/K

WRITE(*,*) 'Error Value: ', ERROR
WRITE(*,*) 
WRITE(*,*) 'Density:                    ', RHO   
WRITE(*,*) 'Compressibility Factor:     ', Z   
WRITE(*,*) 'Entropy                     ', S    
WRITE(*,*) 'Enthalpy:                   ', H
WRITE(*,*) 'Specific Heat, Cv           ', CV
WRITE(*,*) 'Specific Heat, Cp:          ', CP
WRITE(*,*) 'Specific Heat Ratio, Gamma  ', GAMMA
WRITE(*,*) 'Sonic Velocity:             ', SONIC
WRITE(*,*) 'Dynamic Viscosity           ', MU
WRITE(*,*) 'Kinematic Viscosity         ', NU
WRITE(*,*) 'Thermal Conductivity        ', K
WRITE(*,*) 'Prandtl Number, Pr          ', Prandtl

END PROGRAM GasProperties

The subroutine DRYAIR is one of many (theres one for O2,N2,CO2 etc.) But basically it fills G,TT,DD,GG,SAT,C, and M matrices up with coefficients which are used as transport equations in the fluid subroutine:

DRYAIR CODE:
Code:
    SUBROUTINE DRYAIR
                                                        
  INTERFACE
    SUBROUTINE FLUID(T,P,RHO,PROPS,NP,ENTRYdata,VAPOR,ERROR,igoto)
      REAL,INTENT(IN OUT):: t
      REAL,INTENT(IN OUT):: p
      REAL,INTENT(IN OUT):: rho
      REAL,INTENT(OUT),DIMENSION(:):: props
      INTEGER,INTENT(IN):: np
      INTEGER,INTENT(IN):: ENTRYdata
      LOGICAL,INTENT(OUT):: vapor
      INTEGER,INTENT(OUT):: error
      INTEGER,INTENT(IN):: igoto
    END Subroutine Fluid
  END INTERFACE                         
                                                                        
!********************************************************************** 
      REAL G(29,4),TT(27),DD(30),GG(27,30,8),SAT(40,8),C(8)
      INTEGER M(4)
       INTEGER ERROR,ENTRYdata
       DIMENSION PROPS(8) 
       LOGICAL VAPOR 
!********************************************************************** 
                                                                        
      DIMENSION X0001(100),X0101(100),X0201(100),X0301(100),X0401(100), &
     &          X0501(100),X0601(100),X0701(100),X0801(100),X0901(100), &
     &          X1001(100),X1101(100),X1201(100),X1301(100),X1401(100), &
     &          X1501(87)                                               
                                                                        
      DIMENSION Z(1587) 
!********************************************************************** 
       COMMON /FLUDPC/ G,TT,DD,GG,SAT,C,M,NG,N1,N2,N3,NS 
!********************************************************************** 
      EQUIVALENCE (X0001,Z(0001)), (X0101,Z(0101)), (X0201,Z(0201)),    &
     &            (X0301,Z(0301)), (X0401,Z(0401)), (X0501,Z(0501)),    &
     &            (X0601,Z(0601)), (X0701,Z(0701)), (X0801,Z(0801)),    &
     &            (X0901,Z(0901)), (X1001,Z(1001)), (X1101,Z(1101)),    &
     &            (X1201,Z(1201)), (X1301,Z(1301)), (X1401,Z(1401)),    &
     &            (X1501,Z(1501))                                       
                                                                        
!********************************************************************** 

!********************************************************************** 
                                                                        
      DATA X0001/ 1.1300E+0, 1.2000E+0, 1.5000E+0, 1.9000E+0, 2.4000E+0,&
     & 3.1000E+0, 3.9000E+0, 5.0000E+0, 6.3000E+0, 8.0000E+0, 1.0000E+1,&
     & 1.1300E+1, 1.6892E+1, 1.7042E+1, 1.7598E+1, 1.8188E+1, 1.8778E+1,&
     & 1.9422E+1, 2.0011E+1, 2.0670E+1, 2.1312E+1, 2.2013E+1, 2.2701E+1,&
     & 2.3091E+1, 1.1897E+1, 1.2059E+1, 1.2751E+1, 1.3673E+1, 1.4830E+1,&
     & 1.6462E+..... this goes on for a while, I left it out                   
                                                                        
!----------------------------------------------------------------------------

       NG = 12
       N1 = 12 
       N2 = 15 
       N3 = 8 
       NS = 8 
       DO 20 I=1,4 
         DO 10 J=1,12 
           G(J,I) = Z(J+(I-1)*12) 
   10    END DO
   20  END DO

       DO 30 I=1,12 
         TT(I) = Z(I+48) 
   30 END DO

       DO 40 I=1,15
         DD(I) = Z(I+60) 
   40  CONTINUE

       KK=75 
       DO 70 I=1,8 
         DO 60 J=1,15 
           DO 50 K=1,12 
             KK=KK+1 
             GG(K,J,I) = Z(KK) 
   50      CONTINUE 
   60    CONTINUE 
   70  CONTINUE

       DO 90 I=1,8 
         DO 80 J=1,8 
           SAT(J,I) = Z(J+(I-1)*8+1515) 
   80    CONTINUE 
   90  CONTINUE

      DO 100 I=1,8 
        C(I) = Z(I+1579) 
  100  CONTINUE 

      IGOTO = 4
      CALL FLUID(TEMP,PRES,DENS,PROPS,NP,ENTRYdata,VAPOR,ERROR,IGOTO)

      RETURN                                                                        
      END SUBROUTINE DRYAIR

Finally the code for the FLUID subroutine is here:
Code:
C	WRITTEN BY: THEODORE E. FESSLER, NASA TM X-3572, AUGUST 1977
C	REWRITTEN BY: LT. MARK D. KLEM & MARGARET P. PROCTOR, JANUARY 1986
C
C	THE ORIGINAL PROGRAM WAS WRITTEN IN SFTRAN, BUT THIS PROGRAM IS
C	REWRITTEN IN STANDARD FORTRAN 77 TO RUN PRIMARILY ON PERSONAL
C	COMPUTERS AND CAN ALSO RUN ON MAINFRAMES. MUCH OF THE OLD CODE WAS
C	COMMENTED OUT BUT LEFT INTACT FOR DOCUMENTATION AND REFERENCE
C	PURPOSES.
C
      SUBROUTINE FLUID (TEMP,PRES,DENS,PROPS,NP,ENTRY,VAPOR,ERROR,IGOTO)
C     SUBROUTINE FLUID0 (G,NG,GG,TT,DD,N1,N2,N3,SAT,NS,C,L)
C...INTITIALIZING ENTRY FOR FLUID-PROPERTIES PACKAGE.  SETS UP TABLE  
C     POINTERS FOR A PARTICULAR FLUID.  SUBSEQUENT CALLS (TO FLUID) USE 
C     THESE POINTERS.                                                   
                                                                        
C...CALLING ARGUMENTS:                                                
C       G = (NON-DIMENSIONAL) TABLES IN TEMPERATURE ONLY.               
C         G(1,1) = ARGUMENT VALUES (TEMPERATURE).                       
C         G(1,2) = ENTROPY, S0.                                         
C         G(1,3) = ENERGY, U0.                                          
C         G(1,4) = SPECIFIC HEAT AT CONSTANT VOLUME, CV0.               
C       NG = LENGTH OF EACH G TABLE.                                    
C       GG = TABLES IN TEMPERATURE AND DENSITY.                         
C         GG(1,1,1) = Z1, THE MODEL-DEPARTURE FACTOR.                   
C         GG(1,1,2) = Z2 FACTOR FOR ENTROPY (S).                        
C         GG(1,1,3) = Z3 FACTOR FOR ENTHALPY (H).                       
C         GG(1,1,4) = Z4 FACTOR FOR SPECIFIC HEAT (CV).                 
C         GG(1,1,5) = Z5 FACTOR FOR SPECIFIC HEAT (CP).                 
C         GG(1,1,6) = Z6 FACTOR FOR VELOCITY OF SOUND.                  
C         GG(1,1,N) = OTHER FACTORS (EG. TRANSPORT PROPERTIES).         
C       TT = TEMPERATURE ARGUMENTS (REDUCED) FOR GG TABLES.             
C       DD = DENSITY ARGUMENTS (REDUCED) FOR GG TABLES.                 
C       N1 = LENGTH OF TT TABLE AND FIRST DIMENSION OF GG TABLE.        
C       N2 = LENGTH OF DD TABLE AND SECOND DIMENSION OF GG TABLE.       
C       N3 = THIRD DIMENSION (NUMBER OF) GG TABLES.                     
C       SAT = (NON-DIMENSIONAL) SATURATION TABLES.                      
C         SAT(1,1) = SATURATION TEMPERATURE.                            
C         SAT(1,2) = SATURATION PRESSURE.                               
C         SAT(1,3) = SATURATED LIQUID DENSITY.                          
C         SAT(1,4) = SATURATED GAS DENSITY.                             
C         SAT(1,5) = SATURATED LIQUID ENTROPY.                          
C         SAT(1,6) = SATURATED GAS ENTROPY.                             
C         SAT(1,7) = SATURATED LIQUID ENTHALPY.                         
C         SAT(1,8) = SATURATED GAS ENTHALPY.                            
C       NS = LENGTH OF EACH SATURATION TABLE.                           
C       C = MISCELLANEOUS CONSTANTS:                                    
C         C(1) = SPECIFIC GAS CONSTANT, R.                              
C         C(2) = CRITICAL TEMPERATURE, TC.                              
C         C(3) = CRITICAL PRESSURE, PC.                                 
C         C(4) = CRITICAL DENSITY, DC (OR PSEUDO VALUE FOR BEST RANGE). 
C         C(5) = CONVERGENCE REQUIREMENT FOR TEMPERATURE.               
C         C(6) = CONVERGENCE REQUIREMENT FOR DENSITY.                   
C         C(7) = CONVERGENCE REQUIREMENT FOR ENTROPY.                   
C         C(8) = CONVERGENCE REQUIREMENT FOR ENTHALPY.                  
C       L = MEMORY (4 WORDS) FOR TABLE INDICES.                         
                                                                        
C...VARIABLES IN COMMON BLOCK /FLUIDC/:                               
C       GAMMA = RATIO OF SPECIFIC HEATS, CP/CV.                         
C       WL = MASS-FRACTION IN THE LIQUID PHASE.                         
C       WG = MASS-FRACTION IN THE GAS PHASE.                            
C       DENSL = DENSITY OF SATURATED LIQUID,  SAME UNITS AS DC.         
C       DENSG = DENSITY OF SATURATED GAS,     SAME UNITS AS DC.         
C       ENTL = ENTROPY OF SATURATED LIQUID,   SAME UNITS AS R.          
C       ENTG = ENTROPY OF SATURATED GAS,      SAME UNITS AS R.          
C       ENTHL = ENTHALPY OF SATURATED LIQUID, SAME UNITS AS R*TC.       
C       ENTHG = ENTHALPY OF SATURATED GAS,    SAME UNITS AS R*TC.       
                                                                        
C...EXTERNAL SUBROUTINES:                                             
C       NTRP;  CALCULATION OF INTERPOLATION COEFFICIENTS FOR SINGLE-
C              VARIABLE INTERPOLATIONS,                                 
C       NTRP1; CALCULATION OF INTERPOLATION COEFFICIENTS FOR FIRST      
C              VARIABLE IN 2-VARIABLE INTERPOLATIONS,                   
C       NTRP2; CALCULATION OF INTERPOLATION COEFFICIENTS FOR SECOND     
C              VARIABLE IN 2-VARIABLE INTERPOLATIONS,                   
C       GNTRP;  GETS VALUE IN SINGLE-VARIABLE INTERPOLATIONS,           
C       GGNTRP;  GETS VALUE IN 2-VARIABLE INTERPOLATIONS,               
C       CUBIC;  SOLVES VAN DER WAALS' EQUATION OF STATE FOR DENSITY.    
                                                                        
C     INCLUDE (TYPE STATEMENTS, ETC. FOR INITIALIZING ENTRY)
C     INCLUDE (TYPE STATEMENTS, ETC. FOR MAIN ENTRY)
C     DEFINITION (TYPE STATEMENTS, ETC. FOR MAIN ENTRY)
C     DEFINITION (TYPE STATEMENTS, ETC. FOR INITIALIZING ENTRY)
      REAL PROPS(NP)                                                    
      INTEGER ENTRY,ERROR,ERROUT,BIT1,BIT2,BIT3,BIT4,BIT5               
	INTEGER DUMN0,DUMIA
	DIMENSION DUMF(35),DUMFF(27,30),DUMA(1)
      LOGICAL VAPOR,GAS                                                 
      INTEGER L(4)                                                      
C     REAL G(NG,4),GG(N1,N2,N3),TT(N1),DD(N2),SAT(NS,8),C(8),ROOTS(2)
      REAL G(29,4),GG(27,30,8),TT(27),DD(30),SAT(40,8),C(8),ROOTS(2)
	COMMON /FLUDPC/ G,TT,DD,GG,SAT,C,L,NG,N1,N2,N3,NS
      COMMON /FLUIDC/ GAMMA,WL,WG,DENSL,DENSG,ENTL,ENTG,ENTHL,ENTHG     
      DATA BIT1,BIT2,BIT3,BIT4,BIT5,MAX2,MAX3/1,2,4,8,16,12,12/,        
     1     MAX4,MAX5,DXMAX,HUGE,SMALL,BIG/12,12,3.0,1.0E37,.001,1000./, 
     2     ERROUT / 6 /                                                 
C
C     INCLUDE (FUNCTION DEFINITIONS)
      RLIMIT(XMIN,X,XMAX)=AMAX1(XMIN,AMIN1(X,XMAX))                     
      TF(P,D)=(P+3.0*D**2)*(3.0-D)/(8.0*Z*D)                            
      PF(T,D)=8.0*Z*D*T/(3.0-D)-3.0*D**2                                
      HF(P,D)=1.125*(P/(3.0*D)-D)                                       
      SF(D)=ALOG((3.0-D)/D)                                             
      CPF(T,D)=1.0/(1.0-D*(3.0-D)**2/(4.0*T))                           
      A2F(T,D)=0.375*GAMMA*R*TC*(8.0*T/(3.0-D)*(1.0+D/(3.0-D))-6.0*D)   
                                                                        
C...INITIALIZE NORMALIZING VALUES.                                    
	IF (IGOTO.EQ.4) THEN
         R=C(1)
         TC=C(2)
         PC=C(3)
         DC=C(4)
C	RETURN
C
	ELSE IF (IGOTO.EQ.1) THEN
C     ENTRY FLUID (TEMP,PRES,DENS,PROPS,NP,ENTRY,VAPOR,ERROR)
C...MAIN ENTRY FOR PROPERTY CALCULATIONS.                             
                                                                        
C...CALLING ARGUMENTS:                                                
C       TEMP = FLUID TEMPERATURE,  SAME UNITS AS TC.                    
C       PRES = FLUID PRESSURE,  SAME UNITS AS PC.                       
C       DENS = FLUID DENSITY,  SAME UNITS AS DC.                        
C       PROPS = OTHER FLUID PROPERTIES:                                 
C         PROPS(1) = COMPRESSIBILITY, PRES/(R*DENS*TEMP).               
C         PROPS(2) = ENTROPY,  SAME UNITS AS R.                         
C         PROPS(3) = ENTHALPY,  SAME UNITS AS R*TC.                     
C         PROPS(4) = SPECIFIC HEAT, CV,  SAME UNITS AS R.               
C         PROPS(5) = SPECIFIC HEAT, CP,  SAME UNITS AS R.               
C         PROPS(6) = SONIC VELOCITY,  SAME UNITS AS SQRT(R*TC).         
C		 PROPS(7) = VISCOSITY, GRAMS/CM-SEC
C		 PROPS(8) = THERMAL CONDUCTIVITY, WATTS/CM-K
C       NP = NUMBER OF PROPERTIES TO BE CALCULATED.                     
C       ENTRY = INTEGER THAT SPECIFIES WHICH VARIABLES ARE INPUT:       
C             = 1 IF TEMPERATURE AND DENSITY ARE GIVEN.                 
C             = 2 IF PRESSURE AND DENSITY ARE GIVEN.
C             = 3 IF TEMPERATURE AND PRESSURE ARE GIVEN.                
C             = 4 IF PRESSURE AND ENTROPY ARE GIVEN.                    
C             = 5 IF PRESSURE AND ENTHALPY ARE GIVEN.                   
C       VAPOR = .TRUE. IF THE FLUID IS SATURATED.  IN THAT CASE,        
C               VALUES OF LIQUID AND GAS PHASES ARE GIVEN IN THE        
C               COMMON BLOCK /FLUIDC/.                                  
C       ERROR = ERROR FLAGS (BITS -- LEAST SIGNIFICANT = 1):            
C             ** IF ERROR = 0,  ALL IS WELL **                          
C         BIT 1 = OUT OF RANGE IN SAT TABLE.                            
C         BIT 2 = OUT OF RANGE IN G TABLE.                              
C         BIT 3 = OUT OF RANGE IN TT TABLE.                             
C         BIT 4 = OUT OF RANGE IN DD TABLE.                             
C         BIT 5 = CONVERGENCE NOT ACHIEVED IN SOLVING INVERSE FUNCTION. 
                                                                        
C     PROCEDURE (MAIN ENTRY INITIALIZATION)
         IF (NP.GT.N3) THEN
            WRITE (ERROUT,1) NP,N3
            STOP
 		ENDIF
         IF (ENTRY.LT.1 .OR. ENTRY.GT.5) THEN
            WRITE (ERROUT,2)
            STOP
         ENDIF
         KS=0
         K0=0
         K1=0
         K2=0
         ERROR=0
         ARG0=HUGE
         ARG1=HUGE
         ARG2=HUGE
         T=TEMP/TC
         D=DENS/DC
         P=PRES/PC
C
C     DO CASE (ENTRY,5)
		IF (ENTRY.EQ.1) THEN
C     CASE 1
C...GIVEN TEMPERATURE AND DENSITY.                                    
            IF (T.LT.1.0) THEN
C     PROCEDURE (TEST FOR VAPOR CONDITION AT (T,D))
C     PROCEDURE (SET UP FOR INTERPOLATION OF SATURATION DATA AT T)
               CALL NTRP (SAT(1,1),T,NS,L(1),KS,1,DUMF,DUMFF,DUMVAL)
C     PROCEDURE (GET SATURATED LIQUID (DL) AND GAS (DG) DENSITIES)
C              CALL GNTRP (4,SAT(1,3),DL)
               CALL NTRP (DUMA,DUMX,DUMN0,DUMIA,DUMOUT,4,SAT(1,3),
     &            DUMFF,DL)
C              CALL GNTRP (4,SAT(1,4),DG)
               CALL NTRP (DUMA,DUMX,DUMN0,DUMIA,DUMOUT,4,SAT(1,4),
     &            DUMFF,DG)
               VAPOR=D.GT.DG .AND. D.LT.DL
            ELSE
               VAPOR=.FALSE.
            ENDIF
            IF (VAPOR) THEN
C     PROCEDURE (GET SATURATION PRESSURE, PSAT)
C              CALL GNTRP (4,SAT(1,2),PSAT)
               CALL NTRP (DUMA,DUMX,DUMN0,DUMIA,DUMOUT,4,
     &            SAT(1,2),DUMFF,PSAT)
               P=PSAT
            ELSE
C     PROCEDURE (GET Z BY DOUBLE INTERPOLATION AT (T,D))
C     PROCEDURE (SET UP FOR DOUBLE INTERPOLATION AT (T,D))
               IF (ARG1.NE.T) THEN
C                 CALL NTRP1 (TT,T,N1,L(3),K1,2)
                  CALL NTRP (TT,T,N1,L(3),K1,2,DUMF,DUMFF,DUMVAL)
                  ARG1=T
               ENDIF
               IF (ARG2.NE.D) THEN
C                 CALL NTRP2 (DD,D,N2,L(4),K2,3)
                  CALL NTRP (DD,D,N2,L(4),K2,3,DUMF,DUMFF,DUMVAL)
                  ARG2=D
               ENDIF
C              CALL GGNTRP (5,GG(1,1,1),Z)
               CALL NTRP (DUMA,DUMX,DUMN0,DUMIA,DUMOUT,5,DUMF,
     &            GG(1,1,1),Z)
               Z=RLIMIT(SMALL,Z,BIG)
               P=PF(T,D)
            ENDIF
            PRES=P*PC
         ELSE IF (ENTRY.EQ.2) THEN
C     CASE 2
C...GIVEN PRESSURE AND DENSITY.                                       
            IF (P.LT.1.0) THEN
C     PROCEDURE (TEST FOR VAPOR CONDITION AT (P,D))
C     PROCEDURE (SET UP FOR INTERPOLATION OF SATURATION DATA AT P)
               CALL NTRP (SAT(1,2),AMAX1(P,SAT(1,2)),NS,L(1),KS,1,
     &         DUMF,DUMFF,DUMVAL)
C     PROCEDURE (GET SATURATED LIQUID (DL) AND GAS (DG) DENSITIES)
C              CALL GNTRP (4,SAT(1,3),DL)
               CALL NTRP (DUMA,DUMX,DUMN0,DUMIA,DUMOUT,4,
     &            SAT(1,3),DUMFF,DL)
C              CALL GNTRP (4,SAT(1,4),DG)
               CALL NTRP (DUMA,DUMX,DUMN0,DUMIA,DUMOUT,4,
     &            SAT(1,4),DUMFF,DG)
               VAPOR=D.GT.DG .AND. D.LT.DL
            ELSE
               VAPOR=.FALSE.
            ENDIF.... keeps going with more cases but that is the jist of it

I'm really not sure why it is not returning me with density when I specify everything correctly, except I am not sure about how the common and implicit commands are affecting the code so it must be something to do with those.. The problem is that the G tables are "out of range"

Any help is greatly appreciated, and if i get it working I will be more than happy to send you a copy of it.
 
Technology news on Phys.org
  • #2
The main program is missing array declarations for the variables in common block /FLUDPC/.
Common blocks must have the same size in all program, subroutine, and function units.
 

1. What is FORTRAN and why is it important?

FORTRAN (short for Formula Translation) is a high-level programming language commonly used for scientific and technical computing. It was first developed in the 1950s and has been continuously updated and improved upon since then. FORTRAN is important because it allows scientists to write efficient and reliable code for complex mathematical and scientific computations.

2. How do I get started with FORTRAN?

To get started with FORTRAN, you will need to download a compiler, which is a program that translates the FORTRAN code into machine-readable instructions. Some popular compilers for FORTRAN include GFortran, Intel Fortran, and IBM XL Fortran. Once you have a compiler, you can begin learning the syntax and structure of the language.

3. What are some common features of FORTRAN?

FORTRAN has several key features that make it a popular choice for scientific computing. These include its ability to handle large arrays and mathematical operations efficiently, its support for parallel computing, and its extensive library of built-in functions for scientific calculations. Additionally, FORTRAN is known for its simple syntax and its compatibility with legacy code.

4. How can I improve my FORTRAN programming skills?

To improve your FORTRAN programming skills, it is important to practice regularly and familiarize yourself with the language's syntax and features. You can also learn from online resources such as tutorials, forums, and coding challenges. Additionally, reading and studying well-written FORTRAN code can help you improve your own coding techniques.

5. Are there any common mistakes beginners make when learning FORTRAN?

Some common mistakes that beginners make when learning FORTRAN include not properly declaring variables, using incorrect syntax for mathematical operations, and not paying attention to the order of operations. It is also important to keep in mind that FORTRAN is a case-insensitive language, so it is important to be consistent with capitalization. It is always a good idea to double-check your code for any errors before running it.

Similar threads

  • Programming and Computer Science
Replies
4
Views
3K
  • Programming and Computer Science
Replies
4
Views
15K
  • Programming and Computer Science
Replies
8
Views
2K
  • Programming and Computer Science
Replies
2
Views
5K
Back
Top