- #1
leroygr
- 5
- 0
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:
Here is my fortran 90 program code:
When I try to compile using "make" command, I get this error message that I don't understand:
Can someone help me? I'm really really blocked...
Thank you very much!
Greg
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:
Code:
FC = gfortran
SFC = gfortran
FFLAGS = -ffree-form -O -fconvert=big-endian -frecord-marker=4
F77FLAGS = -ffixed-form -O -fconvert=big-endian -frecord-marker=4
FNGFLAGS = $(FFLAGS)
LDFLAGS =
CC = gcc
SCC = gcc
CFLAGS =
CPP = /usr/bin/cpp -C -P -traditional
CPPFLAGS = -D_UNDERSCORE -DBYTESWAP -DLINUX -DIO_NETCDF -DBIT32 -DNO_SIGNAL
RANLIB = ranlib
all: rd_wr_formatted.exe
clean:
rm -f *.o rd_wr_formatted.exe
rd_wr_formatted.exe: rd_wr_formatted.o read_geogrid.o write_geogrid.o
$(FC) $(LDFLAGS) -o rd_wr_formatted.exe rd_wr_formatted.o read_geogrid.o write_geogrid.o
rd_wr_formatted.o: rd_wr_formatted.f90
$(FC) -c $(FFLAGS) rd_wr_formatted.f90
read_geogrid.o: read_geogrid.c
$(CC) -c $(CFLAGS) read_geogrid.c
write_geogrid.o: write_geogrid.c
$(CC) -c $(CFLAGS) write_geogrid.c
Here is my fortran 90 program code:
Code:
program rd_wr_binary
implicit none
integer, external :: iargc
integer :: istatus
character (len=256) :: fname
real, allocatable, dimension(:,:) :: rarray
! real, allocatable, dimension(:,:) :: rarrayIN
integer :: nx ! x-dimension of the array
integer :: ny ! y-dimension of the array
integer :: nz ! z-dimension of the array
integer :: isigned ! 0=unsigned data, 1=signed data
integer :: endian ! 0=big endian, 1=little endian
real :: scalefactor ! value to divide array elements by before truncation to integers
integer :: wordsize ! number of bytes to use for each array element
integer :: i
integer :: j
!-----------------------------------------
if (iargc /= 1) then
write(0,*) ' '
write(0,*) 'Usage: rd_wr_binary.exe <filename>'
write(0,*) ' '
stop
end if
call getarg(1, fname)
!
! The following must be set before compiling
!
nx = 1200
ny = 1200
nz = 1
isigned = 0
endian = 0
wordsize = 4
scalefactor = 1.0
! allocate(rarrayIN(nx,ny))
allocate(rarray(nx,ny))
!
! Read data from geogrid binary format using read_geogrid()
!
! call read_geogrid(fname, len_trim(fname), rarray, nx, ny, nz, isigned, endian, scalefactor, wordsize, istatus)
! if (istatus /= 0) then
! write(0,*) 'Error while reading '//trim(fname)//'. Quitting.'
! end if
!
!
! We read formatted data instead of binary input file
!
open(10, file=trim(fname), form='formatted', status='old')
do j=1,ny
read(10,33) (rarray(i,j),i=1,nx)
write(*,*) i,j,rarray(nx,j)
end do
33 format(f6.1, 12000f7.1)
! 33 format(18500f7.1)
close(10)
! ------------ IF we need FLIP file -----
! NO FLIP file!
!----------------------------------------
! do j = 1,ny
! do i = 1,nx
! rarray(i,j) = rarrayIN(i,j)
! enddo
! write(*,*) i,j,rarray(nx,j)
! enddo
!--------------- end of FLIP/no FLIP ----
!
! Modify the field as necessary
!
!
! Write data to geogrid binary format using write_geogrid()
!
call write_geogrid(trim(fname)//'.bin', len_trim(trim(fname)//'.bin'), rarray, nx, ny, nz, isigned, endian, scalefactor, wordsize)
! deallocate(rarrayIN)
deallocate(rarray)
write(0,*) 'JOB finished OK!'
end program rd_wr_binary
When I try to compile using "make" command, I get this error message that I don't understand:
Code:
[greg@Uranus:~/WRF/WPS/data/SRTM_to_geogrid]$ make
gfortran -c -ffree-form -O -fconvert=big-endian -frecord-marker=4 rd_wr_formatted.f90
rd_wr_formatted.f90:25.12:
if (iargc /= 1) then
1
Error: Function 'iargc' requires an argument list at (1)
rd_wr_formatted.f90:30.6:
end if
1
Error: Expecting END PROGRAM statement at (1)
rd_wr_formatted.f90:90.132:
fname)//'.bin'), rarray, nx, ny, nz, isigned, endian, scalefactor, wordsize
1
Error: Syntax error in argument list at (1)
rd_wr_formatted.f90:90.132:
fname)//'.bin'), rarray, nx, ny, nz, isigned, endian, scalefactor, wordsize
1
Warning: Line truncated at (1)
make: *** [rd_wr_formatted.o] Error 1
Can someone help me? I'm really really blocked...
Thank you very much!
Greg