(I think you used the wrong name for the name of the subroutine.)
CHARACTER(*) :: PICKLIST(:)
That's a declaration for an assumed shape (the "(:)") dummy argument. In order for a procedure with an assumed shape argument to be invoked, an explicit interface (perhaps from the procedure being a module procedure or an internal procedure, or perhaps from an INTERFACE block for the procedure provided by the programmer) needs to be accessible in the invoking scope. Is this the case in your program?





Problem with CHARACTER(*) :: PICKLIST(:)
I have a program that I am working on in two different places on my computer. The programs are nearly identical. Here is excerpt:
PROGRAM TEST_EDCELL
INTEGER, PARAMETER :: LENGTH = 5
CHARACTER(20) :: PICKLIST(LENGTH)
... define PICKLIST(1) through PICKLIST(5)...
CALL EDCELL (IROW, ICOL, ...PICKLIST...RETURNCODE)
END PROGRAM
SUBROUTINE PICKLIST (IROW, ICOL, ...PICKLIST...RETURNCODE)
CHARACTER(*) :: PICKLIST(:)
...
PRINT *, PICKLIST
END SUBROUTINE
In the first location this program runs fine. In the second location it compiles and links without error, but gives a runtime error "Program execption-stack overflow" on the PRINT *, PICKLIST line. In the debugger watchlist, PICKLIST is identified as "Undefined pointer/array".
I cannot see any differences in the codes or the directory structure that could cause these differences. In both cases I am running 2011.10.325. I believe that all of the compiler and link switches are standard. Can you suggest where or how to look for the cause?