Thanks for your reply, We have found a workaround for Problem1. Following is the explaination for Problem2:
The parallelisation is done for a DO loop inside which various call for subroutines are made. If for eg. I pass around 50 variables as arguments for this routine, some of the arguments are not passed to the called routine. Generally as I notice, only 2 contiguous variables are not getting passed. Other variables gets passed properly.
C$OMP& PRIVATE( A, B, C)
C$OMP& SHARED(X, Y, Z)
CALL FUNCTION1( A, X, B , Z, Y)
CALL FUNCTION2( Z, Y)
CALL FUNCTION3( A, Z, Y)
C$OMP END DO
C$OMP END PARALLEL
For eg. as in the above case of call to function1(), variables X and B are not passed for example. With the same ‘exe’, some times B and Z are not passed ". The variables that are not passed may be scalar/vector; etc.
I mean “not passed” as : The debugger stops at this point where it encounters this variable first used for calculation.
For example, inside function1
IF ( X(1) .EQ. 0 )
the computation stops here. There is no memory address shown for this variable in the debugger memory dialog box.