Hi all,
I’m getting a strange error when trying to compile a code with rather strong optimization options…
/opt/xt-pe/1.5.47/bin/snos64/ftn: INFO: catamount target is being used
ftn -c -I. -I/nfs/xt3-homes/users/olifu/src/int2lm_1.7.2/src -I/opt/xt-mpt/default/mpich2-
64/P2/include -D__MPICH2 -I/apps/netcdf/include -Kieee -Mbyteswapio -Mfree -Mpreprocess -
Mcache_align -Mflushz -Mlre -Mprefetch -Mpreprocess -Mscalarsse -Mvect=noassoc -Mvect=sse -
O3 -o src_gribtabs.o /nfs/xt3-homes/users/olifu/src/int2lm_1.7.2/src/src_gribtabs.f90
/opt/xt-pe/1.5.47/bin/snos64/ftn: INFO: catamount target is being used
Lowering Error: bad datatype 0
Lowering Error: bad datatype 0
Lowering Error: bad datatype 0
Lowering Error: bad datatype 0
Lowering Error: bad datatype 0
Lowering Error: bad datatype 0
Lowering Error: bad datatype 0
Lowering Error: bad datatype 0
Lowering Error: bad datatype 0
Lowering Error: bad datatype 0
Lowering Error: bad datatype 0
Lowering Error: bad datatype 0
Lowering Error: bad datatype 0
Lowering Error: bad datatype 0
Lowering Error: bad datatype 0
PGF90-F-0000-Internal compiler error. Errors in Lowering 15 (/nfs/xt3-homes/users/olif
u/src/int2lm_1.7.2/src/src_gribtabs.f90: 353)
PGF90/x86-64 Linux 7.2-4: compilation aborted
The error only occurs, if optimization options are used. If I use a set of options for debugging, the code compiles without problems. It occurrs both with pgi/7.2.4 and pgi/8.0.2. The line of error is the last line of the following…
ALLOCATE(var_lm(nvar_lm), STAT=istat)
IF(istat /= 0) THEN
print *, 'Memory status: ', istat
ierror = 5
yerror = ' Cannot allocate variable table for fine grid LM'
ENDIF
! the entries of the following structure are:
! name, nr. of grib table, leveltype, element-numer, top-level, bottom-level,
! factor, bias, rang of variable, pointer connection to actual field
! units, standard_name, long_name
var_lm( :)= ar_des_lm(' ', 0, 0, 0, 0, 0, 0.0, 0.0, 0,dum3,dum2, &
' ',' ',' ',' ')
where nvar_lm=70 and ar_des_lm is a structure that has been previously declared as…
! Type for LM variable table
TYPE ar_des_lm
CHARACTER (LEN=10) :: name ! name of variable
INTEGER(KIND=intgribf) :: tabtyp ! grib table number
INTEGER(KIND=intgribf) :: levtyp ! code for leveltype
INTEGER(KIND=intgribf) :: ee ! element code
INTEGER(KIND=intgribf) :: levtop ! top of layer
INTEGER(KIND=intgribf) :: levbot ! bottom of layer
REAL(KIND=ireals) :: factor ! factor
REAL(KIND=ireals) :: bias ! bias
INTEGER(KIND=intgribf) :: rank ! number of dimensions
REAL(KIND=ireals), POINTER :: p3(:,:,:) ! pointer for rank3 var
REAL(KIND=ireals), POINTER :: p2(:,:) ! pointer for rank2 var
CHARACTER (LEN=20) :: units ! unit of variable
CHARACTER (LEN=80) :: standard_name ! standard name of variable
CHARACTER (LEN=80) :: long_name ! description of variable
CHARACTER (LEN=1) :: lsm ! land/sea mask flag
END TYPE ar_des_lm
Any ideas why the compiler is crashing on this?
Thanks for your help,
Oliver