+ /* act according to state */
+
+insert:
+
+ /* immediately go on if no job is to be done */
+ if(hp->insert_count==INS_RUNS) {
+printf("immediate insert run return!\n");
+ hp->state=STATE_POSTRUN;
+ goto postrun;
+ }
+
+ /* assigne values */
+ steps=INS_RELAX;
+ tau=INS_TAU;
+
+ /* check temperature */
+ dt=md->t_avg-md->t_ref;
+ if(dt<0)
+ dt=-dt;
+ if(dt>INS_DELTA_TC)
+ goto addsched;
+
+ /* else -> insert atoms */
+ hp->insert_count+=1;
+ printf(" ### insert atoms (%d/%d) ###\n",
+ hp->insert_count*INS_ATOMS,INS_RUNS*INS_ATOMS);
+ insert_atoms(md);
+ goto addsched;
+
+postrun:
+
+ /* immediately return if no job is to be done */
+ if(hp->postrun_count==POST_RUNS) {
+printf("immediate post run return!\n");
+ return 0;
+ }
+
+ /* assigne values */
+ steps=POST_RELAX;
+ tau=POST_TAU;
+
+ /* check temperature */
+ dt=md->t_avg-md->t_ref;
+ if(dt<0)
+ dt=-dt;
+ if(dt>POST_DELTA_TC)
+ goto addsched;
+
+ /* postrun action */
+ hp->postrun_count+=1;
+ printf(" ### postrun (%d/%d) ###\n",
+ hp->postrun_count,POST_RUNS);
+ set_temperature(md,md->t_ref-POST_DT);
+
+addsched:
+