S:THEN K-Q→K:GOTO 2: IFEND: IFEND: IFEND↙ LB1  4↙POL(X- Z〔18〕, Y-Z〔19〕) :J<0=>J+360→J:(J-T)<0=>-I→I↙
CLS:Locate 1,1, “DP(-Z,+Y)=” :Locate 1,2,I: Locate 1,3,“K=”:K+S→K: Locate 4,3,K◢(分行分列一次显示反算所得里程和边距数据)
Return↙
“ZBFY”(坐标显示子程序) LB1  0↙
“QXFWJ=”:T▲DMS◢(显示该点切线方位角)
CLS:Locate 1,1, “K=” :Locate 4,1,K: Locate 1,2,“X=”: Locate 4,2, Z〔18〕: Locate 1,3,“Y=”: Locate 4,3, Z〔19〕◢(分行分列一次显示计算所得里程和X,Y坐标数据)
CLS:”B JIAO=”?P:”B D=”?D↙(B为以路线前进方向夹角(一般正交为90度),D为距中线距离左为“-”右为“+”) Z〔18〕+D×COS(T+P)→Z〔20〕↙ Z〔19〕+D×SIN(T+P)→Z〔21〕↙
CLS:Locate 1,1, “K=” :Locate 4,1,K: Locate 1,2,“D=”: Locate 4,2, D: Locate 1,3,“B X=”: Locate 5,3, Z〔20〕:Locate 1,4,“B Y=”: Locate 5,4, Z〔21〕◢(分行分列一次显示桩号,距中距离,X,Y数据) “XLZBJSCX”(线路坐标计算程序) LB1  2↙
Z〔6〕÷2-Z〔6〕^3÷(240R^2)+ Z〔6〕^5÷(34560×R^4) →Z〔8〕↙ Z〔7〕÷2-Z〔7〕^3÷(240R^2)+ Z〔7〕^5÷(34560×R^4) →Z〔9〕↙ Z〔6〕^2÷(24×R)-Z〔6〕^4÷(2688×R^3)→Z〔10〕↙ Z〔7〕^2÷(24×R)-Z〔7〕^4÷(2688×R^3)→Z〔11〕↙ π*A*R/180+0.5*( Z[6]+ Z[7])→S ↙   (曲线总长) 90* Z[6]/(R*π) →Z[14] ↙    (第一缓和曲线总偏角) 90* Z[7]/(R*π) →Z[15] ↙(第二缓和曲线总偏角,可以省略) Z[8]+(R+Z[10])TAN(A/2)-(Z[10]-Z[11] )/SIN A→Z[12]↙   (切线T1) Z[9]+(R+Z[11])TAN(A/2)+(Z[10]-Z[11] )/SIN A→Z[13]↙   (切线T2) B+ Z[12]*COS (E+180)→ Z[16] ↙  (ZH点X)  C+ Z[12]*SIN(E+180)→ Z[17] ↙   (ZH点Y) Z[1]- Z[25]→Z[3] ↙       (ZH点里程) Z[3]+ Z[6]→Z[4] ↙   (HY点里程) Z[1]- Z[7]→Z[5] ↙   (YH点里程) GOTO 3 ↙
LB1  3 ↙(判断里程点与曲线关系)
IF  K≤Z[3]  AND  K> Z[2] : THEN  GOTO  4 : IFEND ↙ IF  K≤Z[4]  AND  K> Z[3] : THEN  GOTO  5 : IFEND ↙ IF  K≤Z[5]  AND  K> Z[4] : THEN  GOTO  6 : IFEND ↙ IF  K≤Z[1]  AND  K> Z[5] : THEN  GOTO  7 : IFEND ↙ LB1  4 ↙(里程小于直缓点直线坐标)
K- Z[3] →Z[23] :: 0→Z[24] :: E→T : GOTO  8↙ LB1  5 ↙(第一缓和曲线坐标) K- Z[3] →H ↙
H-H^5/(40*R^2* Z[6]^2)+H^9/(3456*R^4* Z[6]^4)-H^13/(599040*R^6* Z[6]^6) +H^17/(1784720*R^8* Z[6]^8)→Z[23]↙
H^3/(6*R* Z[6])-H^7/(336*R^3* Z[6]^3)+H^11/(42240*R^5* Z[6]^5)-H^15/(9676800*R^7* Z[6]^7)+H^19/(35300960*R^9* Z[6]^9)→Z[24] ↙ 90*H^2/( R*π* Z[6]) →T ↙
IF  O>0  :THEN  T +E→T : ELSE  E-T →T : T<0=>360+T→T : IFEND ↙ GOTO 8 ↙
LB1 6 ↙(圆曲线坐标) K- Z[4] →H ↙
H*180/( R*π)+ Z[14]→T ↙ R*SIN T+ Z[8]→Z[23] ↙ R*(1-COS T)+ Z[10]→Z[24] ↙
IF  O>0  :THEN  T +E→T :: ELSE  E-T →T : T<0=>360+T→T :IFEND ↙  GOTO  8 ↙
LB1  7 ↙(第二缓和曲线坐标) Z[1] -K →H ↙
H-H^5/(40*R^2* Z[7]^2)+H^9/(3456*R^4* Z[7]^4)-H^13/(599040*R^6* Z[7]^6) +H^17/(1784720*R^8* Z[7]^8)→U↙
H^3/(6*R* Z[7])-H^7/(336*R^3* Z[7]^3)+H^11/(42240*R^5* Z[7]^5)-H^15/(9676800*R^7* Z[7]^7)+H^19/(35300960*R^9* Z[7]^9)→V ↙ 90*H^2/( R*π* Z[7]) →T ↙
Z[13]COS A+ Z[12]-U*COS A-V*SIN A→Z[23] ↙(坐标转换)
Z[13]*SIN A-U*SIN A+V*COS A→Z[24] ↙      (坐标转换)
IF  O>0  :THEN  T +E→T : ELSE  E-T →T : T<0=>360+T→T :IFEND ↙  GOTO 8 ↙
LB1 8↙(施工坐标转换大地坐标)
IF  O<0  :THEN - Z[24] →Z[24]: IFEND ↙ Z[16]+Z[23]*COS E-Z[24] * SIN E→Z[18] ↙ Z[17]+Z[23] *SIN E+Z[24] * COS E→Z[19] ↙ Return↙
“SJK.. ...”(数据库子程序)
IF  K<本段曲线终点里程  AND  K≥上段曲线终点里程 :THEN  本段终点里程→Z[1] : 上段曲线终点里程→Z[2] :1→O (注:左偏曲线输入-1→O,右偏曲线输入1→O): 偏角→A:半径→R :: 第一缓和曲线→Z[6] : 第二缓和曲线→Z[7] : 交点 X→B :交点 Y→C : 小里程向交点方位角→E : 交点向大里程方位角→F : Prog”XLZBJSCX” : Return: IFEND↙ …………(曲线段分段输入)
补充单独直线段输入如下:
IF K<本段直线终点里程 AND  K≥本段直线起点里程:THEN本段直线终点里程→Z[3]:终点X→Z[16] :终点Y→Z[17] :方位角→E:E→T: Z[16]+(K- Z[3]) COS E →Z[18] : Z[17]+(K- Z[3]) SIN E →Z[19] :Return:IFEND