Visit Our UNIX and Linux User Community


f77 program on gfortran


 
Thread Tools Search this Thread
Top Forums Programming f77 program on gfortran
# 1  
Old 06-22-2011
f77 program on gfortran

Hi,
I am trying to run a simple f77 program on gfortran. Program is as follows.

Code:
       program trial
       implicit real*8 (a-h,o-z)
       
       common/var/a(2),b,c(4),d
       
       a=(/0,0/)
       b=0
       c=(/0,0,0,0/)
       d=0
       call add(a,b,c,d)
       write(*,'(2f6.2)') (a(i),i=1,2)
       write(*,'(f6.2)') b
       write(*,'(4f6.2)') (c(i),i=1,4)
       write(*,'(f6.2)') d

       end program
 
       subroutine add(a,b,c,d)
       implicit real*8 (a-h,o-z)
       common/inputvar/a(2),b,c(4),d
       do ii=1,2
        a(ii)=a(ii)+10
       enddo 
       bb=bb+20
       
       do ii=1,4
        c(ii)=c(ii)+30
       enddo
   
       d=0
       return
       end

I am getting following error.
Code:
trial.f:20.24:

       common/inputvar/a(2),b,c(4),d                                    
                        1
Error: COMMON attribute conflicts with DUMMY attribute in 'a' at (1)
trial.f:22.8:

        a(ii)=a(ii)+10                                                  
        1
Error: Unclassifiable statement at (1)
trial.f:27.8:

        c(ii)=c(ii)+30                                                  
        1
Error: Unclassifiable statement at (1)
anshul@anshulfy:~/ftran$

What is the problem. Please help me.
Thanks in advance.
--
Anshul
# 2  
Old 06-22-2011
Here are a few pointers...

A common block is supposed to be that, common...so, if you only specify one of them, there is typically no need for it, in the first place.

What makes a common block unique? its name...so, if you have two common blocks in your program each with its own unique name, they are not doing anything for you.

Just because you intend to list the same variables in both common block does not make them the same common block.

Also, a common block is a way of sharing data between subroutines and functions...so, for this particular program or yours, you can choose to pass data to your subroutine through the subroutine's argument list during the call OR do not pass anything and let it access the main's programs data via the common block.

Certainly, do no put the same variable in the subroutine's argument list AND the common block.

Previous Thread | Next Thread
Test Your Knowledge in Computers #480
Difficulty: Easy
Memory addresses are represented using hexadecimal, which is a base-8 counting system.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

GFORTRAN error in makefile installation

Hi all, I'm a new Linux and gfortran user so facing this problem I could not figure out how to proceed. Trying to install a program with a makefile, at some point the installation stops showing the following error: g++ -std=c++0x -O3 -o CAMILObash.exe ./objects/Class_SurfTri_CheckTools.o... (2 Replies)
Discussion started by: Jefferson_dhv
2 Replies

2. UNIX for Dummies Questions & Answers

Using gFORTRAN to compile something built for g77

Hi, I am having a problem compiling a program with gfortran. The program compiles with g77 and f77 but I don't have those. I edited the makefile from FC = g77 to FC = gfortran but when I run it I get a slew of undefined reference errors. Any suggestions? (8 Replies)
Discussion started by: butson
8 Replies

3. Programming

Arrays of strings in GFORTRAN errors

Hello I am using gfortran and I intended to do thiis: Module variables character(len=:), dimension(:), allocatable, array end module variables Sub test use variables integer (max_len) max_len=len_trim("something here") if(.not.allocated(array))... (1 Reply)
Discussion started by: pepe
1 Replies

4. Programming

gfortran 4.7, no support for qfloat?

I have code that works fine in ifort. But when trying to run on gfortran 4.7.1 (which does support quads and has no problem with real * 16) I can't cast an integer variable to a quad precision float (real*16) using something like: factq(i) = factq(i-1) * qfloat(i) Finding a list of the new... (2 Replies)
Discussion started by: vibrantcascade
2 Replies

5. Programming

Compilation problem with gfortran

Hello everyone, I'm trying since a few days to compile a f90 program with gfortran (on Ubuntu) with a makefile. The fortran program calls 2 routines written in C. Here is my makefile: FC = gfortran SFC = gfortran FFLAGS = -ffree-form -O... (21 Replies)
Discussion started by: leroygr
21 Replies

6. Programming

Gfortran compiler options.

I am a INTEL fortran user recently migrated to linux and installed gfortran on my system. I run numerical models as part of my research. my question is on optimization of the fortran code. I used the - vectorize option to compile for reducing the run time considerably and was happy. But... (1 Reply)
Discussion started by: schamarthi1
1 Replies

7. Programming

Two issues in make file, g++, gfortran

Question 1: I have a c++ project that I am trying to re-organize. I am trying to subdivide the src directory to move some src files that seldom are changed to a more out of the way location. The project is a c++ application with a fortran function called from the c. The reorganization went... (9 Replies)
Discussion started by: LMHmedchem
9 Replies

8. Programming

gfortran not connecting to system libraries

Hi ! I have one program made of several sub programs which I am trying to compile with gfortran on Fedora 14 in my system. The program was originally written in Fortran 77 and compilation command used to be - fort77 -O2 -f -w -o life life_com.f lifetime.f minuit.f tek_life.f utilities.f... (0 Replies)
Discussion started by: cylab123
0 Replies

9. Programming

Fortran 77 and gfortran

Hi! I have a program in fortran77. This program was compiled with pgf90, but now, I need compiled it with gfortran. I show a bit of code. program hello PARAMETER(a=100) integer a write(*,*)'value ', a end program hello What's the problem? Thanks (2 Replies)
Discussion started by: kekaes
2 Replies

10. Red Hat

AMBER md/g95/gfortran issue

Hi, i am trying to install AMBER10 which is a molecular dynamcis package onto two linux red hat pcs. I can successfully install the tools that comes with which uses gcc to compile, however AMBER10 requires either g95 or gfortran to compile. This is where the issue lies, i have installed both... (0 Replies)
Discussion started by: olifu02
0 Replies

Featured Tech Videos