Lowering Error: bad datatype 0

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

Hi Oliver,

A “Lowering Error” is a generic error where some type of mismatch or unexpected behavior occurs when the front end compiler is translating a higher level representation into the lower level representation that it will pass to the back end compiler. Can you please send me or trs@pgroup.com the src_gribtabs.f90 file and any modules it requires?

Thanks,
Mat