Local Void iterate() { #if !defined(DOS) /* Shriram: begin */ int ckptFunCallPath = ckptTuple . ckptAttribute ; if ( normalRun == checkpointStatus ) funCallPath = fCP_gem_iter_ ; /* Shriram: end */ #endif while (continue_ == go) { active = false; #if !defined(DOS) /* Shriram: begin */ if ( checkpointedRun == checkpointStatus ) { if ( iterationLocation == ckptTuple . ckptLocation ) checkpointStatus = normalRun ; else /* checkpointedRun AND functionLocation */ { if ( ( fCP_gem_iter_st_first == ckptFunCallPath ) || ( fCP_gem_iter_st_decr == ckptFunCallPath ) || ( fCP_gem_iter_st_incr == ckptFunCallPath ) ) goto FunRecover345 ; else if ( fCP_gem_iter_gcen1 == ckptFunCallPath ) goto FunRecover6 ; else if ( fCP_gem_iter_gfor == ckptFunCallPath ) goto FunRecover7 ; else if ( fCP_gem_iter_gcen2 == ckptFunCallPath ) goto FunRecover9 ; } } else performCheckpoint ( iterationLocation , nit , 0 ) ; #endif getp(); /* Shriram: end */ if (idg != 0) continue_ = quit; else { /*idg == 0*/ /*Shriram*/ iret = 2; if (ibnd == 1) chkbnd(); if (n == 0) continue_ = quit; if (!active) { #if !defined(DOS) FunRecover345: #endif step(); #if !defined(DOS) funCallPath = fCP_gem_iter_ ; #endif } } /* THE NEXT IS NOT TRUE IF ACTIVE */ if (iret != 2) { if (idif != 1) { continue_ = quit; break; } idif = 2; isw = 1; #if !defined(DOS) FunRecover9: funCallPath = fCP_gem_iter_gcen2_ ; #endif gcentral(); #if !defined(DOS) funCallPath = fCP_gem_iter_ ; #endif fprintf(outfile, "***** SWITCHING TO CENTRAL DIFFERERENCE*****\n"); continue; } if (active) { continue_ = restart; break; } if (idif == 1) { #if !defined(DOS) FunRecover7: funCallPath = fCP_gem_iter_gfor ; #endif gforward(); #if !defined(DOS) funCallPath = fCP_gem_iter_ ; #endif } else { #if !defined(DOS) FunRecover6: funCallPath = fCP_gem_iter_gcen1_ ; #endif gcentral(); #if !defined(DOS) funCallPath = fCP_gem_iter_ ; #endif } if (isw != 0) continue; getytp(); if (ytp <= 0.0) continue; if (n == 1) d[0] = -(y[0] * d[0] / (t * gsave[0])); else update(); if (idg == 3) continue_ = quit; } }