I have come across a situation where I am trying to make private variables that passed to subroutines using modules. Here is the situation, The main program calls two different routines. These routines are functionally different but utilize the same variable names for some global data which are contained in a module (this was done to make the passing of the data easy to various levels of subroutines it is not needed outside the subroutine chain). I am using workshare constructs to run each of these routines on its own thread. I would like to make the data in the module private to that thread. When I set the variable to private it still behaves as if it were shared. If I pass the variable to the routines via an argument list everything is fine (this will cause me to re-write a bunch of code). The question is ... shouldn't this work within the context of a module as well?
I have been getting different result using different compilers. I have tried Lahey and Intel and they both show signs of not handling this properly. I have attach a small test problem that mimics what I am doing in the large code.
Justin K. Watson Email: jkw104_at_[hidden]
Research Assistant Phone: (814) 863-6754
Computational Methods Development Department Fax: (814) 865-3287
Applied Research Laboratory
The Pennsylvania State University
P.O. Box 30
State College, Pa 16804-0030
- application/octet-stream attachment: Hello.f90
- application/octet-stream attachment: DataM.f90