One section of my program is a module with many subroutines. In each subroutine there the same integer variables like 'i,j,k,m'. These variables are used to control the loops in each subroutine,such as ‘do i=1,10’; or used to save some temporary values. I am sure that there are no 'common' or 'save' in my program. But when the program runing from one subroutine to another, these variable can not be changed. For example, I change k as 'k=1', it is still the former value. So i delete these variables in the subroutines and directly declare them in the module. Then, it worked well. I know the variables in subtoutine are local variables. why i can not change them?
For more complete information about compiler optimizations, see our Optimization Notice.