head 2 "Test of different wheel/rail couplings coupl creep_tanel_springs_1" head 3 "axl_111 pure long.creep; axl_112 pure lat.creep; axl_113 pure spin" head 4 "Cylindric wheel profile mu= $mu_" ## ## Analyse specific input data ## idebug= 1 # Dump memory to file idebug_file= out/pure_creep_tanel_springs_1_nuy+.003.out # File where memory dump will be written fresp_param= Fourier_CG1 1.e-4 fstart .2 fstop 20. fstep -1.05 modal_param= Schur_fact1 1.e-4 quasi_param= Damped_Tens 1.e-4 0.1 20 2. # tsim_param = heun_c .01 .2e-3 tstart= 0. tstop= 3.00 tstep= 0.0001 tout= .001 tsim_param = heun tstart= 0. tstop= 1.00 tstep= 2e-5 tout= .001 ## ## Track irregularities and designed track geometry ## func intpl_r lat_trac -200 0. 100 0. func intpl_r spv_trac -200 1435. 100 1435. func intpl_r vert_trac -200 0. 100 0. func intpl_r fi_trac -200 0. 100 0. func intpl_r krok_R -200 0 100 0 func intpl_r krok_h -200 0 100 0 func intpl_r krok_z -200 0 100 0 ## ## Wheel-rail geometry ## # insert file $genkpf/kona_0.000_uf.kpfr # in_substruct kpf_kona_0.000 [ 1 ] # Same wheel-rail geometry in all wheels vehicle #1 # # insert file $genkpf/kpf_rkona_cp1.kpfr # in_substruct kpf_rkona_cp1 [ 1 0. ] # Same wheel-rail geometry in all wheels vehicle #1 # in_substruct kpf_rkona_cp1 [ 114 0.1 ] # Pure conical profile wheelset 114 ## ## Define constants for the wheel-rail-coupling substructure wr_coupl ## func const_block Vo = 10. # Speed of the vehicles mu_ = 0.5 # Friction coefficient, all wheels in the train ro_ = 0.45 # Wheel radius, all wheels in the train bo_ = 0.75 # Semi distance between the wheel profile origins, all wheels in the train ma_ = 1887 # Mass of wheelset ma_114 = 5*1887 # Mass of wheelset 114 Jka_ = 100 # Moment of inertia in pitch, wheelset Jka_114= 5*100 # Moment of inertia in pitch, wheelset 114 YMtrac= 1e-3 # From mm to m; Scale factor 1.00; Lateral irregularities ZMtrac= 1e-3 # From mm to m; Scale factor 1.00; Vertical irregularities GMtrac= 1e-3 # From mm to m; Scale factor 1.00; Gauge irregularities CMtrac= 1e-3/(2*bo_) # From mm to rad; Scale factor 1.00; Cant irregularities gauge_average= 1435. # Average gauge of the track gauge_dev_ = 0.000 # Deviation in gauge end_block ## ## Create the wheelsets. ## --------------------- lsys e_abs_bendrf esys Vo 0. krok_R krok_h krok_z 4 4 4 4 4 4 substruct create_axles [ lsys l_local lsa_$1 esys 0. 0. 0. mass m_rigid_6 axl_$1 lsa_$1 0. 0. -ro_$1 ma_$1 ma_$1 ma_$1 720 Jka_$1 720 mass m_rigid_6 trc_$1 lsa_$1 0. 0. 0. 1.e3 1.e3 1.e3 1.e3 1.e3 1.e3 mass fixpoint_6 grd_$1 lsa_$1 0. 0. 0. # body w_set_lsys axl_$1 lsa_$1 ro_$1 bo_ body whe_set_mass axl_$1 ro_$1 bo_ body figure_lsys trc_$1 lsa_$1 1 5 .5 1 0 .5 -1 0 -.5 -1 0 -.5 1 0 .5 1 0 # constr fix_rigid_1 axl_$1 x 0. constr fix_rigid_1 axl_$1 y 0. constr fix_rigid_1 axl_$1 f 0. constr fix_rigid_1 axl_$1 p 0. # constr fix_rigid_1 trc_$1 x 0. constr fix_rigid_1 trc_$1 f 0. constr fix_rigid_1 trc_$1 y 0. constr fix_rigid_1 trc_$1 k 0. constr fix_rigid_1 trc_$1 z 0. constr fix_rigid_1 trc_$1 p 0. # force rel_mass1 vload_$1 axl_$1 0. 0. -ro_$1 0. 0. 200e3-ma_$1*9.81 0. 0. 0. # coupl c czag$1l axl_$1 0. -bo_ -ro_$1 grd_$1 0. -bo_ -ro_$1 .7*600e6/pi/4 esys z coupl c czag$1r axl_$1 0. bo_ -ro_$1 grd_$1 0. bo_ -ro_$1 .7*600e6/pi/4 esys z ] # in_substruct create_axles [ 111 ] in_substruct create_axles [ 112 ] in_substruct create_axles [ 113 ] in_substruct create_axles [ 114 ] # s_var force_on axl_114 z mass fixpoint_6 car_1 lsa_111 0. 0. 0. ## ## Define pure creepage on the three different axles ## ------------------------------------------------- constr fix_free_1 axl_111.k = 0. constr fix_free_1 axl_111.vk= -Vo/ro_ no_warning func operp axl_111.vk= -Vo/ro_ - 0.25 * time # func operp axl_111.vk= -Vo/ro_ - 0.25 * 1 # Use together with tstop= 0 constr fix_free_1 axl_112.k = 0. initval set_var axl_112.vk= -Vo/ro_ no_warning func operp axl_112.p= 0.1 * time # func operp axl_112.p= 0.1 # Use together with tstop= 0 constr fix_free_1 axl_113.k = 0. constr fix_free_1 axl_113.vk= -Vo/ro_ no_warning func operp axl_113.p= -.003 # Add lateral creepage no_warning func operp axl_113.vx= .75*13 * ( time - .5 ) no_warning func operp axl_113.vp= 1*13 * ( time - .5 ) # no_warning func operp axl_113.vp= -16 * time # no_warning func operp axl_113.vx= -12 * time # func operp axl_113.vp= -16 # Use together with tstop= 0 # no_warning func operp axl_113.vx= -12 # Use together with tstop= 0 constr fix_free_1 axl_114.k = 0. func const axl_114.vk= -Vo/ro_ ## ## Creepage and creep-forces ## ----------------------------------- func const kz_fastsim= 2.1379e+07 # Stiffnesses in Tanel Springs func const kz_tanel_1= kz_fastsim*0.2 func const kx_fastsim= 34.45e6 func const kx_tanel_1= kx_fastsim*0.2 func const kx_tanel_2= kx_fastsim*0.15 func const ky_fastsim= 30.48e6 func const ky_tanel_1= ky_fastsim*0.2 func const ky_tanel_2= ky_fastsim*0.15 func const cz_fastsim= 20. ## ## Styvheter för rälens borstar ## ---------------------------- # func const kz_fastsim= 2.1379e+07 # func const kz_inter_1= kz_fastsim*0.2 ## func const kx_fastsim= 7.3460e+06 # func const kx_fastsim= 3.1413e+07 # func const kx_fastsim= 2.65e+07 # func const kx_inter_1= kx_fastsim*0.2 # func const kx_inter_2= kx_fastsim*0.15 ## func const ky_fastsim= 7.4972e+06 ## func const ky_fastsim= 3.1018e+07 # func const ky_fastsim= 2.65e+07 # func const ky_inter_1= ky_fastsim*0.2 # func const ky_inter_2= ky_fastsim*0.15 # # Wheel & rail profiles # ---------------------------- func intpl_r rail_prof_right= -.030 .004606079858 -.027 .003713967783 -.024 .002922711204 -.021 .002229861410 -.018 .001633338981 -.015 .001131400334 -.012 .000722610832 -.009 .000405823463 -.006 .000180162292 -.003 .000045010130 .000 .000000000000 .003 .000045010130 .006 .000180162292 .009 .000405823463 .012 .000722610832 .015 .001131400334 .018 .001633338981 .021 .002229861410 .024 .002922711204 .027 .003713967783 .030 .004606079858 func intpl_r wheel_prof_right_ = -1. -.0 1. 0.0 func intpl_r wheel_prof_right_114 = -1. -.098 1. 0.098 func intpl_r rail_prof_left = -.030 .004606079858 -.027 .003713967783 -.024 .002922711204 -.021 .002229861410 -.018 .001633338981 -.015 .001131400334 -.012 .000722610832 -.009 .000405823463 -.006 .000180162292 -.003 .000045010130 .000 .000000000000 .003 .000045010130 .006 .000180162292 .009 .000405823463 .012 .000722610832 .015 .001131400334 .018 .001633338981 .021 .002229861410 .024 .002922711204 .027 .003713967783 .030 .004606079858 func intpl_r wheel_prof_left_ = -1. -.0#3 1. 0.0#3 func intpl_r wheel_prof_left_114 = -1. -.098 1. 0.098 substruct wr_coupl [ # $1=axle # # mass m_rigid_6f ral_$1r lsa_$1 0. bo_ 0. 0. 60 60 0. 0. 0. mass m_rigid_6f ral_$1l lsa_$1 0. -bo_ 0. 0. 60 60 0. 0. 0. # func operp whe_$1r.x= axl_$1.x - bo_ * axl_$1.p func operp whe_$1l.x= axl_$1.x + bo_ * axl_$1.p # func operp whe_$1r.vx= axl_$1.vx - bo_ * axl_$1.vp func operp whe_$1l.vx= axl_$1.vx + bo_ * axl_$1.vp # # # # func tral_interp_spline $1 # Interpolate track irregularities # coupl creep_tanel_springs_1 cp1_$1r axl_$1 0. bo_ 0. ral_$1r whe_$1r.x bo_ 0. esys m tral$1r.y # Lateral position track irregularity tral$1r.z # Vertical position track irregularity tral$1r.vy # Lateral velocity track irregularity tral$1r.vz # Vertical velocity track irregularity ro_$1r # Wheel rolling radius, will vary for OOR-wheels -1 # Orientation mu_$1r # The coefficient of friction in the contact surface 1. # mulfact_nux_$1r # Longitudinal creep relaxation due to contaminated surfaces 1. # mulfact_nuy_$1r # Lateral creep relaxation due to contaminated surfaces 1. # mulfact_spin_$1r # Spin creep relaxation due to contaminated surfaces kz_fastsim # kz_fastsim kz_tanel_1 # kz_tanel_1 kx_fastsim # cpb_kx kx_tanel_1 # cpb_kx1 kx_tanel_2 # cpb_kx1 ky_fastsim # cpb_ky ky_tanel_1 # cpb_ky1 ky_tanel_2 # cpb_ky1 cz_fastsim # Wheel/rail damping in normal direction of contact surface wheel_prof_right_$1r # Wheel profile 21 # Number of brushes on the surface of the rail in longitudinal direction .003 # Distance between brushes in longitudinal direction rail_prof_right # coupl creep_tanel_springs_1 cp1_$1l axl_$1 0. -bo_ 0. ral_$1l whe_$1l.x -bo_ 0. esys m tral$1l.y # Lateral position track irregularity tral$1l.z # Vertical position track irregularity tral$1l.vy # Lateral velocity track irregularity tral$1l.vz # Vertical velocity track irregularity ro_$1l # Wheel rolling radius, will vary for OOR-wheels 1 # Orientation mu_$1l # The coefficient of friction in the contact surface 1. # mulfact_nux_$1l # Longitudinal creep relaxation due to contaminated surfaces 1. # mulfact_nuy_$1l # Lateral creep relaxation due to contaminated surfaces 1. # mulfact_spin_$1l # Spin creep relaxation due to contaminated surfaces kz_fastsim # kz_fastsim kz_tanel_1 # kz_tanel_1 kx_fastsim # cpb_kx kx_tanel_1 # cpb_kx1 kx_tanel_2 # cpb_kx1 ky_fastsim # cpb_ky ky_tanel_1 # cpb_ky1 ky_tanel_2 # cpb_ky1 cz_fastsim # Wheel/rail damping in normal direction of contact surface wheel_prof_left_$1l # Wheel profile 21 # Number of brushes on the surface of the rail in longitudinal direction .003 # Distance between brushes in longitudinal direction rail_prof_left ] in_substruct wr_coupl [ 111 ] in_substruct wr_coupl [ 112 ] # in_substruct wr_coupl [ 113 ] in_substruct wr_coupl [ 114 ] # force rel_mass1 vload_113b axl_113 0. 0. -ro_113 0. 0. -100e3 0. 0. 0. # mass m_rigid_6f ral_113r lsa_113 0. bo_ 0. 0. 60 60 0. 0. 0. mass m_rigid_6f ral_113l lsa_113 0. -bo_ 0. 0. 60 60 0. 0. 0. # func operp whe_113r.x= axl_113.x - bo_ * axl_113.p func operp whe_113l.x= axl_113.x + bo_ * axl_113.p # func operp whe_113r.vx= axl_113.vx - bo_ * axl_113.vp func operp whe_113l.vx= axl_113.vx + bo_ * axl_113.vp # # # # func tral_interp_spline 113 # Interpolate track irregularities # coupl creep_tanel_springs_1 cp1_113r axl_113 0. bo_ 0. ral_113r whe_113r.x bo_ 0. esys m tral113r.y # Lateral position track irregularity tral113r.z # Vertical position track irregularity tral113r.vy # Lateral velocity track irregularity tral113r.vz # Vertical velocity track irregularity ro_113r # Wheel rolling radius, will vary for OOR-wheels -1 # Orientation mu_113r # The coefficient of friction in the contact surface 1. # mulfact_nux_113r # Longitudinal creep relaxation due to contaminated surfaces 1. # mulfact_nuy_113r # Lateral creep relaxation due to contaminated surfaces 1. # mulfact_spin_113r # Spin creep relaxation due to contaminated surfaces kz_fastsim # kz_fastsim kz_tanel_1 # kz_tanel_1 kx_fastsim # cpb_kx kx_tanel_1 # cpb_kx1 kx_tanel_2 # cpb_kx1 ky_fastsim # cpb_ky ky_tanel_1 # cpb_ky1 ky_tanel_2 # cpb_ky1 cz_fastsim # Wheel/rail damping in normal direction of contact surface wheel_prof_right_113r # Wheel profile 21 # Number of brushes on the surface of the rail in longitudinal direction .003 # Distance between brushes in longitudinal direction rail_prof_right # coupl creep_tanel_springs_1 cp1_113l # axl_113 0. -bo_ 0. # ral_113l whe_113l.x -bo_ 0. esys m # tral113l.y # Lateral position track irregularity # tral113l.z # Vertical position track irregularity # tral113l.vy # Lateral velocity track irregularity # tral113l.vz # Vertical velocity track irregularity # ro_113l # Wheel rolling radius, will vary for OOR-wheels # 1 # Orientation # mu_113l # The coefficient of friction in the contact surface # 1. # mulfact_nux_113l # Longitudinal creep relaxation due to contaminated surfaces # 1. # mulfact_nuy_113l # Lateral creep relaxation due to contaminated surfaces # .78 # mulfact_spin_113l # Spin creep relaxation due to contaminated surfaces # kz_fastsim # kz_fastsim # kz_tanel_1 # kz_tanel_1 # kx_fastsim # cpb_kx # kx_tanel_1 # cpb_kx1 # kx_tanel_2 # cpb_kx1 # ky_fastsim # cpb_ky # ky_tanel_1 # cpb_ky1 # ky_tanel_2 # cpb_ky1 # cz_fastsim # Wheel/rail damping in normal direction of contact surface # wheel_prof_left_113l # Wheel profile # 21 # Number of brushes on the surface of the rail in longitudinal direction # .003 # Distance between brushes in longitudinal direction # rail_prof_left constr fix_rigid_1 ral_111r x 0. constr fix_rigid_1 ral_111r y 0. constr fix_rigid_1 ral_111r z 0. constr fix_rigid_1 ral_111r f 0. constr fix_rigid_1 ral_111r k 0. constr fix_rigid_1 ral_111r p 0. constr fix_rigid_1 ral_111l x 0. constr fix_rigid_1 ral_111l y 0. constr fix_rigid_1 ral_111l z 0. constr fix_rigid_1 ral_111l f 0. constr fix_rigid_1 ral_111l k 0. constr fix_rigid_1 ral_111l p 0. # constr fix_rigid_1 ral_112r x 0. constr fix_rigid_1 ral_112r y 0. constr fix_rigid_1 ral_112r z 0. constr fix_rigid_1 ral_112r f 0. constr fix_rigid_1 ral_112r k 0. constr fix_rigid_1 ral_112r p 0. constr fix_rigid_1 ral_112l x 0. constr fix_rigid_1 ral_112l y 0. constr fix_rigid_1 ral_112l z 0. constr fix_rigid_1 ral_112l f 0. constr fix_rigid_1 ral_112l k 0. constr fix_rigid_1 ral_112l p 0. # constr fix_rigid_1 ral_113r x 0. constr fix_rigid_1 ral_113r y 0. constr fix_rigid_1 ral_113r z 0. constr fix_rigid_1 ral_113r f 0. constr fix_rigid_1 ral_113r k 0. constr fix_rigid_1 ral_113r p 0. constr fix_rigid_1 ral_113l x 0. constr fix_rigid_1 ral_113l y 0. constr fix_rigid_1 ral_113l z 0. constr fix_rigid_1 ral_113l f 0. constr fix_rigid_1 ral_113l k 0. constr fix_rigid_1 ral_113l p 0. # constr fix_rigid_1 ral_114r x 0. constr fix_rigid_1 ral_114r f 0. constr fix_rigid_1 ral_114r k 0. constr fix_rigid_1 ral_114r p 0. constr fix_rigid_1 ral_114l x 0. constr fix_rigid_1 ral_114l f 0. constr fix_rigid_1 ral_114l k 0. constr fix_rigid_1 ral_114l p 0. # coupl k kyrt114l ral_114l 0. -bo_ 0. grd_114 0. -bo_ 0. 17e6 esys y coupl k kyrt114r ral_114r 0. bo_ 0. grd_114 0. bo_ 0. 17e6 esys y coupl c cyrt114l ral_114l 0. -bo_ 0. grd_114 0. -bo_ 0. 10e3 esys y coupl c cyrt114r ral_114r 0. bo_ 0. grd_114 0. bo_ 0. 10e3 esys y # coupl p_lin kzrt_114= -100e3-ral_114r.zz*9.81 230e6 coupl k kzrt114l ral_114l 0. -bo_ 0. grd_114 0. -bo_ 0. kzrt_114 esys z coupl k kzrt114r ral_114r 0. bo_ 0. grd_114 0. bo_ 0. kzrt_114 esys z coupl c czrt114l ral_114l 0. -bo_ 0. grd_114 0. -bo_ 0. 1e6 esys z coupl c czrt114r ral_114r 0. bo_ 0. grd_114 0. bo_ 0. 1e6 esys z # func fl_wear_w 111r mu_111r1 mu_111r2 mu_111r3 # func fl_wear_w 112r mu_112r1 mu_112r2 mu_112r3 # func fl_wear_w 113r mu_113r1 mu_113r2 mu_113r3 # func fl_wear_w 114r mu_114r1 mu_114r2 mu_114r3 ## ## Modal parameters of the wheelsets. ## ---------------------------------- # mass m_flex_1 axl_111 70 0.10 ## Torsionsform # coupl m_flex_1 cp1_111r end_2 0.0636396 0. 0. # 0. 0.14142 0. # coupl m_flex_1 cp1_111l end_2 -.0636396 0. 0. # 0. 0.14142 0. # s_var sngl axl_111.c1 # s_var sngl axl_111.v1 ## ## Store variables for postprocessing ## ---------------------------------- s_var gpdat_r1 # Write the motions of all masses to the GPdat-file # func print06_init cp1_111r.a_b # Print the initial value of a variable to standard output # s_var scalar_0 mu_ # s_var sngl ro_ s_var sngl bo_ s_var sngl Vo # s_var var_0 esys.x s_var var_0 esys.y s_var var_0 esys.z s_var var_0 esys.f s_var var_0 esys.k s_var var_0 esys.p # s_var var_0 esys.vx s_var var_0 esys.vy s_var var_0 esys.vz s_var var_0 esys.vf s_var var_0 esys.vk s_var var_0 esys.vp # s_var var_0 esys.ax s_var var_0 esys.ay s_var var_0 esys.az s_var var_0 esys.af s_var var_0 esys.ak s_var var_0 esys.ap # substruct store_axle [ s_var var_0 axl_$1.x s_var var_0 axl_$1.y s_var var_0 axl_$1.z s_var var_0 axl_$1.f s_var var_0 axl_$1.k s_var var_0 axl_$1.p # s_var var_0 axl_$1.vx s_var var_0 axl_$1.vy s_var var_0 axl_$1.vz s_var var_0 axl_$1.vf s_var var_0 axl_$1.vk s_var var_0 axl_$1.vp # s_var var_0 axl_$1.Fx s_var var_0 axl_$1.Fy s_var var_0 axl_$1.Fz s_var var_0 axl_$1.Mf s_var var_0 axl_$1.Mk s_var var_0 axl_$1.Mp # s_var var_0 axl_$1.Ax s_var var_0 axl_$1.Ay s_var var_0 axl_$1.Az s_var var_0 axl_$1.Af s_var var_0 axl_$1.Ak s_var var_0 axl_$1.Ap # s_var var_0 trc_$1.x s_var var_0 trc_$1.y s_var var_0 trc_$1.z s_var var_0 trc_$1.f s_var var_0 trc_$1.k s_var var_0 trc_$1.p s_var var_0 trc_$1.vx s_var var_0 trc_$1.vy s_var var_0 trc_$1.vz s_var var_0 trc_$1.vf s_var var_0 trc_$1.vk s_var var_0 trc_$1.vp ] # substruct store_wheel [ s_var var_0 ral_$1.y s_var var_0 ral_$1.z s_var var_0 ral_$1.vy s_var var_0 ral_$1.vz # s_var var_0 cp_$1.eta # s_var var_0 tral$1.y s_var var_0 tral$1.z s_var var_0 tral$1.vy s_var var_0 tral$1.vz # s_var var_0 cp1_$1.z s_var var_0 cp1_$1.dr s_var var_0 cp1_$1.gam s_var var_0 cp1_$1.c s_var var_0 cp1_$1.a_b s_var var_0 cp1_$1.posw s_var var_0 cp1_$1.bo_ # s_var var_0 cp1_$1.nux s_var var_0 cp1_$1.nuy s_var var_0 cp1_$1.nya s_var var_0 cp1_$1.spin s_var var_0 cp1_$1.uny s_var var_0 cp1_$1.usp # s_var var_0 cp1_$1.vx s_var var_0 cp1_$1.vy s_var var_0 cp1_$1.vz s_var var_0 cp1_$1.vf s_var var_0 cp1_$1.vk s_var var_0 cp1_$1.vp s_var var_0 cp1_$1.vux s_var var_0 cp1_$1.vuy s_var var_0 cp1_$1.vuz s_var var_0 cp1_$1.Vref s_var var_0 cp1_$1.trl_h # s_var var_0 cp1_$1.Fn s_var var_0 cp1_$1.Fny # s_var var_0 cp1_$1.Fx s_var var_0 cp1_$1.Fy s_var var_0 cp1_$1.Fz s_var var_0 cp1_$1.Mf s_var var_0 cp1_$1.Mk s_var var_0 cp1_$1.Mp # s_var var_0 cp1_$1.F1x s_var var_0 cp1_$1.F1y s_var var_0 cp1_$1.F1z s_var var_0 cp1_$1.M1f s_var var_0 cp1_$1.M1k s_var var_0 cp1_$1.M1p # s_var var_0 cp1_$1.F2x s_var var_0 cp1_$1.F2y s_var var_0 cp1_$1.F2z s_var var_0 cp1_$1.M2f s_var var_0 cp1_$1.M2k s_var var_0 cp1_$1.M2p # s_var var_0 cp1_$1.fwk # Generated by rollen # s_var var_0 cp1_$1.wArchH # Archard with Hertz pressure distribution s_var var_0 cp1_$1.wArchS # s_var var_0 cp1_$1.Mspin s_var var_0 cp1_$1.Fnu # func fl_wear_w Tgamma s_var var_0 cp1_$1.FMnu # func fl_wear_w Energy dissipation # s_var var_0 cp1_$1.slip_area if_then_init .exist. cp1_$1.Fx func div cp1_$1.mux= cp1_$1.Fx cp1_$1.Fn s_var var_0 cp1_$1.mux # Utilized friction endif ] in_substruct store_axle [ 111 ] in_substruct store_axle [ 112 ] in_substruct store_axle [ 113 ] in_substruct store_axle [ 114 ] in_substruct store_wheel [ 111r ] in_substruct store_wheel [ 112r ] in_substruct store_wheel [ 113r ] in_substruct store_wheel [ 114r ] in_substruct store_wheel [ 111l ] in_substruct store_wheel [ 112l ] in_substruct store_wheel [ 113l ] in_substruct store_wheel [ 114l ] # # in_substruct store [ 111l ] # in_substruct store [ 112l ] # in_substruct store [ 113l ] # initval read_gpdat gp/quasi_tanel_springs_1.gp 601 # eof