Hello everyone,

 

                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@arl.psu.edu

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