OPENMP子程序问题
各位大侠,我正自学OpenMP,想将手头的串行程序改成并行的,现在遇到一些问题:
我的程序是Fortran变的,主要是包括几个大的循环,且大部分循环都包含子函数。我试图用paralllel do实现,但是发现OpenMP中子程序变量默认为共享的,无论是全局的还是局部的,这样就可能造成各线程间应该是private的量变成shared而出错。
我在几个简单的循环里面试着不用子程序,而是将子程序的功能直接写在主程序中,这样可以避开前面的问题,但是现有程序很复杂,不采用子程序是不现实的,而且我想应该有什么解决方法的。不知道各位大侠有没有碰到过类似的情况,有什么高招敬请赐教,多谢!!!