Stack Overflow no programa Fortran

Eu tenho um problema com o meu programa simples Fortran. Eu estou trabalhando no Fortran 77, usando o Compaq Visual Fortran. A estrutura do programa deve estar na forma de um main e de uma subrotina, pois faz parte de um grande programa relacionado ao método dos elementos finitos.

Meu problema é que eu gostaria de definir os valores 10000 e 10000 paraNHELE eNVELE respectivamente, mas quando eu corro o código, o programa pára e dá o seguinte erro:

forrt1: server <170>: program Exception - stack overflow

Eu tentei reduzir iterativamente os valores necessários, até chegar a 507 e 507. Neste ponto, o código é executado sem erros.

No entanto, aumentar os valores para 508 e 508 faz com que o mesmo erro reapareça.

Eu acho que o problema está relacionado com a sub-rotinaNIGTEE, porque quando eu reorganizo o programa sem ele, tudo funciona bem.

Eu tentei aumentar o tamanho da pilha ao máximo usando o menuproject>>settings>>link>>output>>reserve & commit mas isso não fez diferença.

Como posso resolver este problema?

Aqui está o meu programa:

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

Obrigado.

questionAnswers(4)

yourAnswerToTheQuestion