Переполнение стека в программе на Фортране

У меня проблема с моей простой программой на Фортране. Я работаю в Fortran 77, используя Compaq Visual Fortran. Структура программы должна быть в форме основной и подпрограммы, потому что она является частью большой программы, связанной с методом конечных элементов.

Моя проблема в том, что я хотел бы установить значения 10000 & 10000 дляNHELE а такжеNVELE соответственно, но когда я запускаю код, программа останавливается и выдает следующую ошибку:

forrt1: server : program Exception - stack overflow

мы пытались итеративно уменьшить требуемые значения, пока я не достиг 507 & 507. На этом этапе код работает без ошибок.

Однако, увеличивая значения до 508 & 508 вызывает ту же ошибку, чтобы появиться снова.

Я думаю, что проблема связана с подпрограммойNIGTEEпотому что когда я переставляю программу без нее, все работает нормально.

мы пытались увеличить размер стека до максимума с помощью менюproject>>settings>>link>>output>>reserve & commit но это нене имеет значения.

Как я могу решить эту проблему?

Вот моя программа:

PARAMETER(NHELE=508,NVELE=508)
PARAMETER(NHNODE=NHELE+1,NVNODE=NVELE+1)
PARAMETER(NTOTALELE=NHELE*NVELE)

DIMENSION MELE(NTOTALELE,4)

    CALL NIGTEE(NHELE,NVELE,NHNODE,NVNODE,NTOTALELE,MELE)

OPEN(UNIT=7,FILE='MeshNO For Rectangular.TXT',STATUS='UNKNOWN')
WRITE(7,500) ((MELE(I,J),J=1,4),I=1,NTOTALELE)
500 FORMAT(4I20)

    STOP
END

  SUBROUTINE NIGTEE(NHELE,NVELE,NHNODE,NVNODE,NTOTALELE,MELE)
DIMENSION NM(NVNODE,NHNODE),NODE(4)
DIMENSION MELE(NTOTALELE,4)

KK=0
DO 20 I=1,NVNODE
DO 20 J=1,NHNODE
KK=KK+1
NM(I,J)=KK
20  CONTINUE
  KK=0
DO 30 I=1,NVELE
DO 30 J=1,NHELE
NODE(1)=NM(I,J)
NODE(2)=NM(I,J+1)
NODE(3)=NM(I+1,J+1)
NODE(4)=NM(I+1,J)
KK=KK+1
DO 50 II=1,4
50  MELE(KK,II)=NODE(II)

30  CONTINUE
  RETURN
END

Благодарю.

Ответы на вопрос(4)

Ваш ответ на вопрос