У меня небольшая проблема с запуском моего кода FORTRAN.
Эта ошибка возникает, когда я пытаюсь ДЕЗАКЛЮЧИТЬ определенную переменную.
На самом деле я понятия не имею, как найти способ решить мою проблему ...
Мое сообщение об ошибке следующее:
Error in `my_app.x': double free or corruption (!prev): 0x00000000042e5520 **
Program received signal SIGABRT: Process abort signal.
#8 0x6F692B in __My_mod_deallocate_VARIABLE at deallocate_VARIABLE.f:415 (discriminator 2)
Для решения моей проблемы я использовал всевозможные опции компилятора GNU FORTRAN:
-g -Wall -fbacktrace -finit-local-zero -ffpe-trap=invalid,zero,overflow -fbounds-check -fcheck=all
И я на самом деле пытаюсь напечатать другое значение:
Во-первых, когда я размещаю свою переменную:
INTEGER, ALLOCATABLE,DIMENSION(:) :: MY_VARIABLE
ALLOCATE(MY_VARIABLE (257))
MY_VARIABLE = 0
WRITE(7,*), 'IAM ALLOCATIONG MY VARIABLE'
IF (ALLOCATED (MY_VARIABLE)) WRITE(7,*), 'MY_VARIABLE_ALLOCATED ','OUI'
IF (.NOT.ALLOCATED(MY_VARIABLE)) WRITE(7,*),'MY_VARIABLE ','NON'
WRITE(7,*),'09 LOC(MY_VARIABLE )',LOC( MY_VARIABLE )
WRITE(7,*), '09 SHAPE (MY_VARIABLE)', SHAPE(MY_VARIABLE)
WRITE(7,*), '09 LBOUND (MY_VARIABLE)', LBOUND(MY_VARIABLE)
WRITE(7,*), '09 UBOUND (MY_VARIABLE)', UBOUND(MY_VARIABLE)
И у меня есть удовлетворительный результат:
IAM ALLOCATIONG MY VARIABLE
09 MY_VARIABLE_ALLOCATED OUI
09 LOC(MY_VARIABLE ) 76719840
09 SHAPE (MY_VARIABLE) 257
09 LBOUND (MY_VARIABLE) 1
09 UBOUND (MY_VARIABLE) 257
Затем выполняются некоторые подпрограммы, и до окончания выполнения я хочу освободить MY_VARIABLE.
Непосредственно перед освобождением моей переменной я выполняю еще один тест:
WRITE(7,*), 'IAM DEALLOCATIONG MY VARIABLE'
IF (ALLOCATED (MY_VARIABLE)) WRITE(7,*), 'MY_VARIABLE_ALLOCATED ','OUI'
IF (.NOT.ALLOCATED(MY_VARIABLE)) WRITE(7,*),'MY_VARIABLE ','NON'
WRITE(7,*),'09 LOC(MY_VARIABLE )',LOC( MY_VARIABLE )
WRITE(7,*), '09 SHAPE (MY_VARIABLE)', SHAPE(MY_VARIABLE)
WRITE(7,*), '09 LBOUND (MY_VARIABLE)', LBOUND(MY_VARIABLE)
WRITE(7,*), '09 UBOUND (MY_VARIABLE)', UBOUND(MY_VARIABLE)
И снова результат:
IAM DEALLOCATIONG MY VARIABLE
09 MY_VARIABLE_ALLOCATED OUI
09 LOC(MY_VARIABLE ) 76719840
09 SHAPE (MY_VARIABLE) 257
09 LBOUND (MY_VARIABLE) 1
09 UBOUND (MY_VARIABLE) 257
Затем я использую оператор FORTRAN DEALLOCATING:
DEALLOCATE( MY_VARIABLE )
И, к сожалению, у меня ошибка при запуске.
Кто-нибудь знает, как решить эту ошибку?
Большое спасибо.