|
| View previous topic :: View next topic |
| Author |
Message |
Nebojsa
Joined: 03 Mar 2009 Posts: 20
|
Posted: Sun Dec 13, 2009 5:34 am Post subject: |
|
|
Hi Mat,
Here's the oputput:
nebojsa@linux-sckl:~/worketa_all/eta/bin> pgdbg -text ../exe/initbc.exe
/opt/pgi/linux86/9.0/bin//pgdbg1 -text ../exe/initbc.exe
NOTE: your trial license will expire in 2 days, 10.5 hours.
PGDBG 9.0-4 x86 (Cluster, 8 Process)
Copyright 1989-2000, The Portland Group, Inc. All Rights Reserved.
Copyright 2000-2009, STMicroelectronics, Inc. All Rights Reserved.
Loaded: /home/nebojsa/worketa_all/eta/exe/initbc.exe
NOTE: Can't find main function compiled -g
pgdbg>
After run it started to calculate but every time it stops on the same place:
.............
AT: LAT,LON 135.2281 36.23340
SNOWFREE ALBEDO SET TO DEFAULT VALUE OF 20%
MAX SNOW ALBEDO SET TO DEFAULT VALUE OF 55%
Signalled SIGSEGV at 0x8091FF9, function gridst_
0x8091FF9: 89 AA 24 B1 FF FF movl %ebp,-20188(%edx)
pgdbg>
Do you know what that means?
Thanks and regards!
Nebojsa |
|
| Back to top |
|
 |
mkcolg
Joined: 30 Jun 2004 Posts: 4996 Location: The Portland Group Inc.
|
Posted: Mon Dec 14, 2009 10:02 am Post subject: |
|
|
Hi Nebojsa,
Looks like it might be a stack overflow. Try setting your environment's stack size to unlimited.
In csh type "unllimit" in your shell and then re-run. In bash, the command is "ulimit -s unlimited".
Hope this helps,
Mat |
|
| Back to top |
|
 |
Nebojsa
Joined: 03 Mar 2009 Posts: 20
|
Posted: Tue Dec 15, 2009 12:20 am Post subject: |
|
|
Hi Mat,
It didn't work. I've tried -stv unlimited.
Well, here are flags in make.inc:
FC = pgf90
MPI_FC = mpif90
CC = /lib/cpp -traditional-cpp
FFLAGS = -fast -DLITTLE
# FFLAGS = -lfpe
CFLAGS =
in make.linux:
FC = f90
CC = /lib/cpp
FFLAGS = -O -s -DLITTLE
CFLAGS = -O
in make.hups
FC = f90
CC = /lib/cpp -P
FFLAGS = -O2 +Odataprefetch +U77
CFLAGS = -O
in make.inc.DEC
FC = f90
CC = /lib/cpp -P
FFLAGS = -O4 -DLITTLE -DDEC
CFLAGS =
and in make.inc.linux.ncep
FC = /export-1/sgi100/data/mpyle/f90_wrk
CC = /lib/cpp -P
FFLAGS = -O -s -DLITTLE
CFLAGS =
perhaps it could help.
thanks and regards!
Nebojsa |
|
| Back to top |
|
 |
mkcolg
Joined: 30 Jun 2004 Posts: 4996 Location: The Portland Group Inc.
|
Posted: Tue Dec 15, 2009 10:41 am Post subject: |
|
|
Hi Nebojsa,
The assembly is saving the stack pointer into memory. This occurs when entering a function. The large negative constant indicates that you have a lot of local variables.
When I see a seg fault here it's almost always due to the program running out of stack space. Even with 'ulimited' stack space, the OS does have a hard limit. You may be hitting this hard limit.
You could have bug in your program that causes infinite recursion. Though, this is less likely since it worked on a different system. Unless the code is taking a different code path. Was the system that worked 64-bits? If this is the case, then your program may not be able to run in 32-bits without modification.
I'm just guessing though. You'll need to debug your program to determine what's really going on.
- Mat |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2002 phpBB Group
|