Thanks for posting the actual code, just checking:
1) KP(K) is also defined in 'common.h'
2) UT(I,J,KP(K)), UT(I,J,K), and UT(I,J,KM(K)) ) have the right values, i.e. not only UT(I,J,K)
3) Idem previous for VIS(I,J,KCM)), VIS(I,J,K), and VIS(I,J,KCM)
4) Idem 2) for SSDT(KCM), SSDT(K)
If everything is fine with the previous definitions, i.e. 1)-4) above are right, then maybe the problem is in CTDMA_T(), where the first check I would do is on static (SAVEd and Common) variables, are there any of those in CTDMA_T()? Does CTDMA_T() call any other subroutine?