Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

Error on compiling Fortran program

postaquestion
Beginner
462 Views

I do get the following errors when I compile a fortran program:

ifort -mcmodel=medium smoergel3.f90
smoergel3.f90(47): (col. 3) remark: LOOP WAS VECTORIZED.
smoergel3.f90(49): (col. 3) remark: LOOP WAS VECTORIZED.
smoergel3.f90(55): (col. 3) remark: LOOP WAS VECTORIZED.
smoergel3.f90(56): (col. 3) remark: LOOP WAS VECTORIZED.
/cae/soft/ifc/10.1.12/Linux64/lib/libifcore.a(for_init.o)(.text+0x1e): In function `for_get_fpe_counts_':
: relocation truncated to fit: R_X86_64_PC32 for__l_undcnt
/cae/soft/ifc/10.1.12/Linux64/lib/libifcore.a(for_init.o)(.text+0x2b): In function `for_get_fpe_counts_':
: relocation truncated to fit: R_X86_64_PC32 for__l_ovfcnt
/cae/soft/ifc/10.1.12/Linux64/lib/libifcore.a(for_init.o)(.text+0x39): In function `for_get_fpe_counts_':
: relocation truncated to fit: R_X86_64_PC32 for__l_div0cnt
/cae/soft/ifc/10.1.12/Linux64/lib/libifcore.a(for_init.o)(.text+0x47): In function `for_get_fpe_counts_':
: relocation truncated to fit: R_X86_64_PC32 for__l_invcnt
/cae/soft/ifc/10.1.12/Linux64/lib/libifcore.a(for_init.o)(.text+0x55): In function `for_get_fpe_counts_':
: relocation truncated to fit: R_X86_64_PC32 for__l_inecnt
/cae/soft/ifc/10.1.12/Linux64/lib/libifcore.a(for_init.o)(.text+0x16f): In function `for_set_fpe_':
: relocation truncated to fit: R_X86_64_PC32 for__l_fpe_mask
/cae/soft/ifc/10.1.12/Linux64/lib/libifcore.a(for_init.o)(.text+0x1be): In function `for_set_fpe_':
: relocation truncated to fit: R_X86_64_PC32 for__l_fpe_mask
/cae/soft/ifc/10.1.12/Linux64/lib/libifcore.a(for_init.o)(.text+0x32e): In function `for_get_fpe_':
: relocation truncated to fit: R_X86_64_PC32 for__l_fpe_mask
/cae/soft/ifc/10.1.12/Linux64/lib/libifcore.a(for_init.o)(.text+0x33e): In function `for_enable_underflow':
: relocation truncated to fit: R_X86_64_PC32 for__l_fpe_mask
/cae/soft/ifc/10.1.12/Linux64/lib/libifcore.a(for_init.o)(.text+0x349): In function `for_enable_underflow':
: relocation truncated to fit: R_X86_64_PC32 for__l_fpe_mask
/cae/soft/ifc/10.1.12/Linux64/lib/libifcore.a(for_init.o)(.text+0x378): In function `for__signal_handler':
: additional relocation overflows omitted from the output


----------------------
vgeg2av@iwfl106% ~/scratch/Kreuzinger > uname -a
Linux iwfl106 2.6.9-42.ELsmp #1 SMP Wed Jul 12 23:32:02 EDT 2006 x86_64 x86_64 x86_64 GNU/Linux
vgeg2av@iwfl106% ~/scratch/Kreuzinger > cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel Xeon CPU 5150 @ 2.66GHz
stepping : 6
cpu MHz : 3550.667
cache size : 4096 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
fpu : yes
fpu_exception : yes
cpuid level&nbs p; : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl est tm2 cx16 xtpr
bogomips : 5323.71
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:

Here is the source code:
program SMOERGEL
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

implicit none


!!! commom block: Punkte und Flaechen
!!$ include "cpointsfaces.h"
!!! Daten der Gitter
!!$ integer owner(MAXNFACES)
!!$ integer neighbour(MAXNFACES)
!!$ !integer maxCN(NGRIDS)
!!$ character*16 BClist(100)
!!$
!!$
!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!$ integer igrid,iface,icell,icorner

!!$ integer maxcell, MAXNCELL
!!$ integer, allocatable :: nowned(:),nneighboured(:), &
!!$ ownedfaces(:,:),neighbouredfaces(:,:)
!!$ integer numberoffaces(10), maxnumberoffaces
!!$ integer channel
!!$ character number*7
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
integer,parameter :: NGRIDS = 3
! integer,parameter :: MAXNPOINTS = 2000000, MAXNFACES = 6000000
integer,parameter :: MAXNPOINTS = 20000000, MAXNFACES = 60000000
! integer,parameter :: MAXNPOINTS = 6000000, MAXNFACES = 18000000
integer,parameter :: NMAXCORNER = 16
real points(3,MAXNPOINTS)
integer faces(NMAXCORNER,MAXNFACES)
integer nptsface(MAXNFACES)
integer npoints,nfaces
common /cpointsfaces/ points,faces,nptsface,npoints,nfaces

real,parameter :: maccur = 1.e-2
real,parameter :: deltar = .100
integer, parameter :: NMAXFACESPERCELL = 40

integer owner(MAXNFACES,16)
integer neighbour(MAXNFACES)

!!!
write(*,*) "a"
!!! Initialisierung
points = 0.0
write(*,*) "a1"
faces = 0
write(*,*) "a2"
npoints = 0
write(*,*) "a3"
nfaces = 0

owner = 0
neighbour = 0
write(*,*) "b"

end program SMOERGEL

--------------------


What did I wrong? Thanks in advance.

0 Kudos
3 Replies
Ron_Green
Moderator
462 Views
The static data segment is still limited to 2GB no matter what you attempt to do with -mcmodel. Your data, as declared, will attempt to locate those variables in the static segment.

Make points,faces,nptsface,npoints,nfaces ALLOCATABLE, remove the common block, ALLOCATE those objects AND use -mcmodel medium to avoid static allocation.

ron
0 Kudos
miro_ilias
Beginner
462 Views
Hi,

I compiled the program with -i8 flag:

miro@opteron.tau.ac.il:~/programming/ifort_mcmodel/.ifort -mcmodel=medium -i8 -shared-intel test_big.f90
test_big.f90(47): (col. 3) remark: LOOP WAS VECTORIZED.
test_big.f90(49): (col. 3) remark: LOOP WAS VECTORIZED.
test_big.f90(55): (col. 3) remark: LOOP WAS VECTORIZED.
test_big.f90(56): (col. 3) remark: LOOP WAS VECTORIZED.

miro@opteron.tau.ac.il:~/programming/ifort_mcmodel/.a.out
a
a1
.
.

where my system is:
miro@opteron.tau.ac.il:~/programming/ifort_mcmodel/.uname -a
Linux opteron.tau.ac.il 2.6.18-92.1.10.el5 #1 SMP Tue Aug 5 07:42:41 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux

and the ifort version is:
miro@opteron.tau.ac.il:~/programming/ifort_mcmodel/.ifort --version
ifort (IFORT) 10.1 20080312
Copyright (C) 1985-2008 Intel Corporation. All rights reserved.




0 Kudos
miro_ilias
Beginner
462 Views
Quoting - miro_ilias

miro@opteron.tau.ac.il:~/programming/ifort_mcmodel/.ifort -mcmodel=medium -i8 -shared-intel test_big.f90

it also works without the -i8 flag, but -shared-intel is a must:

miro@opteron.tau.ac.il:~/programming/ifort_mcmodel/.ifort -mcmodel=medium -shared-intel test_big.f90
test_big.f90(47): (col. 3) remark: LOOP WAS VECTORIZED.
test_big.f90(49): (col. 3) remark: LOOP WAS VECTORIZED.
test_big.f90(55): (col. 3) remark: LOOP WAS VECTORIZED.
test_big.f90(56): (col. 3) remark: LOOP WAS VECTORIZED.
miro@opteron.tau.ac.il:~/programming/ifort_mcmodel/.a.out
a
a1
a2
a3

0 Kudos
Reply