代码没问题但运行不出结果,一直中断

求帮忙看看哪里出错了

PROGRAM grads2binary
    IMPLICIT NONE
    EXTERNAL rrc
    INTEGER::i,j,k,iyear
    REAL::nino(63,12),slp(144,73,63)
    REAL::nino1(63),slp1(63),r,rr(144,73)
    
    OPEN(1,FILE='D:\GRADS_files\nino34.txt')
    OPEN(2,FILE='D:\GRADS_files\slp.jan.grd',FORM='unformatted',ACCESS='stream')
    OPEN(3,FILE='D:\GRADS_files\rr.txt')
    OPEN(4,FILE='D:\GRADS_files\rr.grd',FORM='unformatted',ACCESS='stream')
    
    DO i=1,63
    READ(1,*) iyear,(nino(i,j),j=1,12)
    END DO
    CLOSE(1)
    
    PRINT*,'nino读取数据为:'
    WRITE(*,*) nino(63,12)
    
    READ(2,*) (((slp(i,j,k),i=1,144),j=1,73),k=1,63)
    CLOSE(2)
    
    DO j=1,144
        DO k=1,73
            DO i=1,63
                nino1(i) = nino(i,1)
                slp1(i) = slp(j,k,i)
            END DO
            CALL rrc(nino1,slp1,r)
            rr(j,k) = r
        END DO
    END DO
    
    WRITE(3,*) rr(144,73)
    WRITE(4,*) rr(144,73)
    CLOSE(3)
    CLOSE(4)
    
    END
 
   
    SUBROUTINE rrc(nino1,slp1,r)
    IMPLICIT NONE
    REAL :: nino1(63),slp1(63),r,ave1=0.0,ave2=0.0,var1=0.0,var2=0.0,cov=0.0
    INTEGER i,j,k
    
    DO i=1,63
        ave1 = ave1 + nino1(i)/63.0
        ave2 = ave2 + slp1(i)/63.0
    END DO
    
    DO i=1,63
        var1 = var1 + (nino1(i)-ave1)**2
        var2 = var2 + (slp1(i)-ave2)**2
    END DO
    
    DO i=1,63
        cov = cov + (nino1(i)-ave1)*(slp1(i)-ave2)
    END DO
    
    r = cov/sqrt(var1*var2)
    
    END

运行过程中会触发中断,屏幕上也不会出现输出任何内容,找了半天也不知道代码哪里出现了问题,求帮忙解答
“grads2binary.exe”(Win32): 已加载“D:\Visual Studio 2012\Projects\grads2binary\grads2binary\Debug\grads2binary.exe”。已加载符号。
“grads2binary.exe”(Win32): 已加载“C:\Windows\SysWOW64\ntdll.dll”。已加载符号。
“grads2binary.exe”(Win32): 已加载“C:\Windows\SysWOW64\kernel32.dll”。已加载符号。
“grads2binary.exe”(Win32): 已加载“C:\Windows\SysWOW64\KernelBase.dll”。已加载符号。
“grads2binary.exe”(Win32): 已加载“C:\Windows\SysWOW64\msvcr110d.dll”。已加载符号。
“grads2binary.exe”(Win32): 已加载“C:\Program Files (x86)\Intel\Composer XE 2013 SP1\redist\ia32\compiler\libifcoremdd.dll”。模块已生成,不包含符号。
“grads2binary.exe”(Win32): 已加载“C:\Program Files (x86)\Intel\Composer XE 2013 SP1\redist\ia32\compiler\libmmd.dll”。已加载符号。
“grads2binary.exe”(Win32): 已卸载“C:\Program Files (x86)\Intel\Composer XE 2013 SP1\redist\ia32\compiler\libmmd.dll”
“grads2binary.exe”(Win32): 已加载“C:\Windows\SysWOW64\imagehlp.dll”。已加载符号。
“grads2binary.exe”(Win32): 已加载“C:\Windows\SysWOW64\ucrtbase.dll”。已加载符号。
“grads2binary.exe”(Win32): 已加载“C:\Program Files (x86)\Intel\Composer XE 2013 SP1\redist\ia32\compiler\libmmd.dll”。已加载符号。
“grads2binary.exe”(Win32): 已加载“C:\Windows\SysWOW64\dbghelp.dll”。已加载符号。
“grads2binary.exe”(Win32): 已加载“C:\Windows\SysWOW64\combase.dll”。已加载符号。
“grads2binary.exe”(Win32): 已加载“C:\Windows\SysWOW64\rpcrt4.dll”。已加载符号。
“grads2binary.exe”(Win32): 已加载“C:\Windows\SysWOW64\oleaut32.dll”。已加载符号。
“grads2binary.exe”(Win32): 已加载“C:\Windows\SysWOW64\msvcp_win.dll”。已加载符号。
“grads2binary.exe”(Win32): 已加载“C:\Windows\SysWOW64\bcryptprimitives.dll”。已加载符号。
grads2binary.exe 已触发了一个断点。
线程 0x354c 已退出,返回值为 257 (0x101)。
线程 0x4de4 已退出,返回值为 257 (0x101)。
线程 0x1080 已退出,返回值为 257 (0x101)。
程序“[9596] grads2binary.exe”已退出,返回值为 257 (0x101)。

参考GPT和自己的思路:根据输出信息,程序在运行过程中触发了一个断点,这通常是由调试器设置而导致的。建议检查程序代码中是否设置了断点并尝试移除它们。同时,你也可以将代码段进行拆分测试,逐段调试,一步步排查问题所在。另外,也建议检查输入输出文件的路径是否正确并且文件格式是否匹配。