! ----------------------------------------------------------------------
! M08 - English course download: 08_macro_debug.mac
! Follow the matching English lesson for explanations and task details.
! Commands, parameter names, file names, CSV keys, and result tokens are preserved.
! ----------------------------------------------------------------------

/FILNAME,m08_macro,1
/TITLE,M08 - Macros, files, and debugging
/UNITS,SI

beam_h=ARG1
tip_force=ARG2
mesh_h=ARG3
case_id=ARG4

*IF,beam_h,LE,0,THEN
  /COM,ERROR: ARG1 beam_h must be positive
  /STATUS,PARM
  /EOF
*ENDIF
*IF,tip_force,EQ,0,THEN
  /COM,ERROR: ARG2 tip_force must be nonzero
  /STATUS,PARM
  /EOF
*ENDIF
*IF,mesh_h,LE,0,THEN
  /COM,ERROR: ARG3 mesh_h must be positive
  /STATUS,PARM
  /EOF
*ENDIF
*IF,case_id,LE,0,THEN
  /COM,ERROR: ARG4 case_id must be a positive integer
  /STATUS,PARM
  /EOF
*ENDIF

beam_l=1.0
beam_b=0.05
young=210E9
nu=0.30
select_tol=MIN(beam_h,beam_b)*1E-5
equilibrium_tol=0.005
displacement_tol=0.05
spread_tol=0.01
stress_tol=0.10
symmetry_tol=0.05

/COM,M08 DRIVER: case_id=%case_id% h=%beam_h% F=%tip_force% mesh_h=%mesh_h%
/STATUS,PARM

/INPUT,08_build,mac,,,,1
/INPUT,08_solve,mac,,,,1
/INPUT,08_extract,mac,,,,1

*IF,passes,EQ,1,THEN
  /COM,M08 CASE PASSED
*ELSE
  /COM,M08 CASE FAILED - inspect m08_results.csv and .out
*ENDIF

FINISH
