Hello, dear fellow developers!

Well, I have kind of a weird problem. I have a Module in FORTRAN with several subroutines, some of which are called from a Main and others that are called from other subroutines within the module. That worked really fine (amazing, I would say :) ). But I transformed my main into a subroutine and complied the project into a .dll so that I could call it from an Excel VBA macro... There isn't any problem with this part, until a subroutine calls another subroutine. More or less, the subroutines are:

SUBROUTINE FirstOne(VarX, VarY)

REAL(DP), INTENT(IN), DIMENSION(:) :: VarX

REAL(DP) :: Var1[ALLOCATABLE](:),Var2[ALLOCATABLE](:)

REAL(DP) ::Var3[ALLOCATABLE](:)

INTEGER (KIND(1)) :: i

ALLOCATE (VAR1(N), STAT=R)

IF(R.NE.0) CALL some-other-subroutine

ALLOCATE (VAR2(N) , STAT=R)

IF(R.NE.0) CALL some-other-subroutine

ALLOCATE (VAR3(N) , STAT=IERROR)

IF(IERROR.NE.0) CALL some-other-subroutine

!N is a global variable in the module, that indicates the length of the arrays troughout the program

DO i=1,NC

Var1(i)=0.D0

Var2(i)=0.D0

Var3(i)=0.D0

END DO

CALL SecondOne(Var1,Var2,Var3)

DEALLOCATE(Var1 , STAT=R)

IF(R.NE.0) CALL some-other-subroutine

DEALLOCATE(Var2 , STAT=R)

IF(R.NE.0) CALL some-other-subroutine

DEALLOCATE(Var3 , STAT=R)

IF(R.NE.0) CALL some-other-subroutine

RETURN

END SUBROUTINE

SUBROUTINE SecondOne(Var1,Var2,Var3)

REAL (DP), INTENT(OUT), DIMENSION(:) :: Var1,Var2,Var3

DO i=1,N

Var1(i)=Some Arithmetic Operation <-----------------------Here is the problem... allegedly

Var2(i)=Some Arithmetic Operation

Var3(i)=Some Arithmetic Operation

END DO

RETURN

END SUBROUTINE

And then I get "fortl: severe(408): fort: (2): Subscript #1 of the array Var1 has value 1 which is greater than the upper bound of 0"

I already tried writing Intent(inout), changing to dimension(N), transferring to other variables (Var12, Var22, Var32) and several combinations. As far as I know, I can't make it allocatable, but I'm not sure wether it's going to solve my problem

Please, my friends... Any suggestions? It worked before I linked it to Excel VBA