Hi all,
I am trying to rewrite subroutine WSM62D(in mp_module_wsm6.F) into a "WSM61D" subruotine by putting i outside the subroutine and change the dimension of the variables in WSM62D. I am trying to do this to see if it can better accelerate WSM6 in GPU(using OPENACC), and some further research reasons.
I have rewritten it and it has been successfully compiled. However, when I am checking whether I rewrote it correctly, I found that my subroutine has about 0.001 errors in the variable Temperature, in one dt. I have been checking on this subroutine for times,but still unable to see any obvious error. (my fortran file are attacged below)
Here are my questions:
1. Why are schemes like wsm,wdm, written in a "2D" subroutine meanwhile some schemes like lin et al are written in a "fully", "single-coloum" subroutine? Is it because that it can accelerate the caculation in cpu?
2. Is 0.001 degree mismatch acceptable for the mp scheme?
3. What causes this dismatch in 1d subroutine and 2d subroutine? Is it because that there are some "globlal" variables in 2D subtroutine(which means it does not change in a 2d subroutine), or it is simple because that I made a mistake?
THANK YOU!
I am trying to rewrite subroutine WSM62D(in mp_module_wsm6.F) into a "WSM61D" subruotine by putting i outside the subroutine and change the dimension of the variables in WSM62D. I am trying to do this to see if it can better accelerate WSM6 in GPU(using OPENACC), and some further research reasons.
I have rewritten it and it has been successfully compiled. However, when I am checking whether I rewrote it correctly, I found that my subroutine has about 0.001 errors in the variable Temperature, in one dt. I have been checking on this subroutine for times,but still unable to see any obvious error. (my fortran file are attacged below)
Here are my questions:
1. Why are schemes like wsm,wdm, written in a "2D" subroutine meanwhile some schemes like lin et al are written in a "fully", "single-coloum" subroutine? Is it because that it can accelerate the caculation in cpu?
2. Is 0.001 degree mismatch acceptable for the mp scheme?
3. What causes this dismatch in 1d subroutine and 2d subroutine? Is it because that there are some "globlal" variables in 2D subtroutine(which means it does not change in a 2d subroutine), or it is simple because that I made a mistake?
THANK YOU!