proc detectFire() { localobj savSCA printf("detectFire entered\n") savSCA = new File() sprint(s,$s1) savSCA.wopen(s) fired = 0 firstfired = 0 firstunfired = 0 SCA = -20 SCA_t = SCA SCA_b = SCA nt = 100 for it = 1,nt { printf("%d\n", it) if (abs(SCA_t - SCA_b) >= 1e-2 || it == 1) { setstim(DEL, DUR, SCA) // In stim.hoc printf("Stim is set\n") TMS_sim_simple() printf("SCA = %f\tfired = %d\n", SCA, fired) savSCA.printf("SCA = %f\tfired = %d\n", SCA, fired) if (fired == 1 && firstunfired == 0) { SCA_t = SCA SCA = SCA/2 SCA_b = SCA firstfired = 1 fired = 0 } else if (fired == 1 && firstunfired == 1) { SCA_t = SCA SCA = (SCA_t + SCA_b)/2 firstfired = 1 fired = 0 } else if (fired == 0 && firstfired == 0) { SCA_b = SCA SCA = SCA*2 SCA_t = SCA firstunfired = 1 } else if (fired == 0 && firstfired == 1) { SCA_b = SCA SCA = (SCA_t + SCA_b)/2 firstunfired = 1 } } else { break } } savSCA.close() }