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: jkw...@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

Attachment: Hello.f90
Description: Hello.f90

Attachment: PrintThreadM.f90
Description: PrintThreadM.f90

Attachment: DataM.f90
Description: DataM.f90

Reply via email to