title: Fortran issue with undefined statements in subroutine
body: <p>I have a bunch of errors coming up that say that my variables are not variables and that my statements are undefined. This subroutine is needed to compile my larger program, so I just copy pasted it at the end of my program. It didn't work if I compiled them together on different files. 
  How would I go about fixing those "undefined" issues? Is it because of the way I copy pasted my subroutine at the end of my program?
  (I compiled with g77 and with gfortran, same thing happens)</p>
  
  <pre><code>geomalb.f:1088.6:
  
        TEMP(J)= TLINAL(J)                                                
        1
  Error: Unclassifiable statement at (1)
  geomalb.f:1089.6:
  
        DEN(J)= DLINAL(J)                                                 
        1
  Error: Unclassifiable statement at (1)
  geomalb.f:1090.6:
  
        PRESS(J)=PLINAL(J)                                                
        1
  Error: Unclassifiable statement at (1)
  geomalb.f:1110.6:
  
        XMU(J)=28.0134*XN2(J)+2.158*H2(J)+16.0426*CH4(J)+39.948*AR(J)     
        1
  Error: Unclassifiable statement at (1)
  geomalb.f:1132.6:
  
    1001 IF (IPRINT .LT. 0) RETURN                                        
        1
  Error: Bad continuation line at (1)
  geomalb.f:1152.72:
  
        ENDDO                                                             
                                                                      1
  Error: Statement label in ENDDO at (1) doesn't match DO label
  geomalb.f:1130.72:
  
        IF (DT .LT. 0.001) GO TO 1001                                     
                                                                          1
  Error: Label 1001 referenced at (1) is never defined
  geomalb.f:72.27:
  
        CALL ATMSETUP(NLEVEL,Z,RHCH4,FH2,FARGON,TEMP,PRESS,DEN,XMU,       
                             1
  Warning: Rank mismatch in argument 'z' at (1) (scalar and rank-1)
  </code></pre>
  
  <p>Here is the subroutine part of the program:</p>
  
  <pre><code>      SUBROUTINE ATMSETUP(NLEVEL,Z,RHCH4,FH2,FARGON,TEMP,PRESS,DEN,XMU,
       &amp; CH4,H2,XN2,AR,IPRINT)
        PARAMETER (NMAX=201)
        DIMENSION CH4(1),H2(1),XN2(1),AR(1)
        DIMENSION TLINAL(NMAX),DLINAL(NMAX),PLINAL(NMAX)
        CALL LINDAL(NLEVEL,Z,TLINAL,DLINAL,PLINAL)
        DO J=1,NLEVEL
        TEMP(J)= TLINAL(J)
        DEN(J)= DLINAL(J)
        PRESS(J)=PLINAL(J)
        ENDDO
        DO 1000 ITS =1,20
        CH4(NLEVEL)=PCH4(TEMP(NLEVEL))*RHCH4/PRESS(NLEVEL)
        DO 134 J=NLEVEL-1,1,-1
        CH4SAT=PCH4(TEMP(J))/PRESS(J)
        CH4(J)=AMIN1(CH4SAT,CH4(NLEVEL),CH4(J+1))
    134  CONTINUE
        DO 20 J=1,NLEVEL
        H2(J)=FH2
        IF (FARGON .LT. 0.) THEN
        AR(J)=(-FARGON-28.0134+25.8554*H2(J)+11.9708*CH4(J))/11.9346
        ELSE
        IF (FARGON .EQ. 0.) THEN
        AR(J)=0.0
        ELSE
        AR(J)=FARGON
        ENDIF
        ENDIF
        XN2(J)=1.0 - H2(J) - CH4(J) -AR(J)
        XMU(J)=28.0134*XN2(J)+2.158*H2(J)+16.0426*CH4(J)+39.948*AR(J)
    20   CONTINUE
        SUMT=PLINAL(1)*6.02E23/10.
        SUMB=SUMT
        TLAST=TEMP(NLEVEL)
        DO J=2,NLEVEL
        DENF=294.1/(XN2(J)*294.1 + CH4(J)*410. + H2(J)*136. + AR(J)*277.8)
        DEN(J) = DLINAL(J)*DENF
        ADEN=(DEN(J)-DEN(J-1))/ALOG(DEN(J)/DEN(J-1))
        SUMT=SUMT+(EFFG(Z(J))*ADEN)*( Z(J-1)-Z(J))*XMU(J)
        ADEN=(DLINAL(J)-DLINAL(J-1))/ALOG(DLINAL(J)/DLINAL(J-1))
        SUMB=SUMB+(EFFG(Z(J))*ADEN)*( Z(J-1)-Z(J))*28.01340
        PRESS(J)=PLINAL(J)*SUMT/SUMB
        TEMP(J) =TLINAL(J)*(SUMT/SUMB)*(1./DENF)
        ENDDO
    30  CONTINUE
        DT= ABS(TEMP(NLEVEL)-TLAST)
        IF (DT .LT. 0.001) GO TO 1001
    1000 CONTINUE
    1001 IF (IPRINT .LT. 0) RETURN
        WRITE (6,139)RHCH4,FH2,FARGON,DT
        DO 135 J=1,NLEVEL-1
        WRITE(6,140)J,Z(J),PRESS(J),DEN(J),TEMP(J),
       &amp;          CH4(J)*PRESS(J)/PCH4(TEMP(J))
       &amp;         ,CH4(J)*100.,XN2(J)*100.,H2(J)*100.,AR(J)*100.,XMU(J)
       &amp;         ,(TEMP(J+1)-TEMP(J))/(Z(J+1)-Z(J))
    135    CONTINUE
        J=NLEVEL
        WRITE(6,140)J,Z(J),PRESS(J),DEN(J),TEMP(J),
       &amp;    CH4(J)*PRESS(J)/PCH4(TEMP(J))
       &amp;    ,CH4(J)*100.,XN2(J)*100.,H2(J)*100.,AR(J)*100.,XMU(J)
    139 FORMAT(///'   BACKGROUNG ATMOSPHERE AT LEVELS'/
       &amp; ' SURFACE HUMIDITY OF CH4:',F5.3,'  H2 MIXING RATIO:',F6.4,
       &amp; ' ARGON SETTING:',F8.4/'  FINAL CONVERGENCE ON TEMP:',F10.5
       &amp;  '   LINDAL ET AL SCALING'/
       &amp;' LVL ALTITUDE  P(BARS)  DEN(CM-3) TEMP RH-CH4'
       &amp; , ' %CH4  %N2   %H2  %AR   MU   DT/DZ'  )
    140 FORMAT(1X,I3,F8.3,1P2E10.3,0PF7.2,F5.2,2F6.2,2F5.2,4F6.2)
        RETURN
        ENDDO
        END
  </code></pre>