I have an error that I cannot duplicate with smaller code. It occurs only when the routines are compiled in /CHECKMATE. It works great in /RELEASE or if I reduce the memory allocation for the 'offending' ALLOOCATE manually.
The error traceback is:
346c9780 __PALLOCATE2 [+0127] ALLOCATE_EXTRACT_LOGS_HOLEID - in file select_using_holeid.for at line 119 [+0256] SELECT_LOG_BY_HOLEID_WINDOWS - in file select_using_holeid.for at line 193 [+00b4] 345ede76 call_function(<ptr>(func()ÄreturningÄint),<ptr>char,<ptr>void,enumÄlogical,enum [+0181] 345d7d97 __yield_program_control [+0013] 345fcad0 __temporary_yield [+0016] 34667ce3 __winio [+1f4a] CATALOG_INTEGRITY - in file catalog_integrity.for at line 230 [+1db8]
The memory allocation attempts to allocate about 157 MB (normal), or half that (when it works).
The variable definition is in a TYPE and is declared and ALLOCATE'd as:
type :: extract_log_holeid ! allows the reading of the catalog into a local structure that gets cleared when processing is done
sequence
integer,allocatable:: catalog_index_list(:)
integer,allocatable:: select_catalog_entry(:)
integer:: num_recs=0
integer:: num_records=0 ! number of records actually displayed
character*100,allocatable:: catalog_listview(:)
TYPE (MASTER_CATALOG_REC_EXTENDED),pointer,dimension(:):: extract_logs ! Pointer to the data array:: catalog data with extended data attached
end type
allocate(extracted_logs%extract_logs(max_catalog_records),stat=i)
I tried using the ALLOCATABLE, but same result. Attempting to allocate the memory outside of the TYPE also failed.
I know this is not really fully sufficient for debugging, but wondered if anyone else has had similar issues with ALLOCATE and /CHECKMATE.