vertical program help



i need a program for the hp33s that will calculate the length of a vertical curve needed to pass through a point of certain elevation when only the pvi station/elev are known as well as the grades in/out.

can someone help me??? thanks in advance


You can get a package of 33S surveying software, which apparently includes vertical curve equations, for $33 at:


i've already got vertical curve programs; one for calculations based on pvi elev and one for pvc elev.

i need something to calculate the length of curve needed to pass through certain point of known elevation when only the pvi sta/elev are known.


Years ago I had to re-do a vertical alignment to go under a structure and then over a burried pipe. The 41 survey pac with a lot of trial and error worked for me since in that case i was looking for AN answer, not THE answer. I can see how one would write a program for this but with all the variables and possible answers (location of bvc/prvc/evc, reversing or single vc, hard elev to hard elev?, hard elev to something greater to OR less than another elev, etc...) i think trial and error may be the best method anyway. After all; you already know what you want it to look like. You just need numbers to describe it. I have found that a good way to start is to draw a picture and crack a cold one.

Weigh everything that i have said with the knowlege that i'm a hillbilly. Let us know how you solve it and good luck.


Suppose you have a PVI and two grades. To calculate the curve length, you would also need to know something about the BVC and EVC. You would need (a) the station or the elevation of the BVC, *and* also (b) the station or the elevation of the EVC.

The problem becomes simpler if you can assume that the vertical curve is symmetrical. Then you only need *either* (a) the station or elevation of the BVC, *or* (b) the station or elevation of the EVC.

If you have a PVI, two grades, and one additional elevation point on the curve, then you can't define the vertical curve unless you can assume (1) that the additional point represents either the BVC or the EVC, *and* (2) that the vertical curve is symmetrical.

If assumptions (1) and (2) are acceptable, then I get a 33S formula that looks like this:



V = the PVI elevation

P = the elevation of the additional point

G = the grade (in %) associated with that additional point

L = the length of the vertical curve (in feet)

If you cannot make assumptions (1) and (2), then I don't think you can solve the problem.


ok, but that did not solve a known problem that i have:

pvi sta=37+41, el=110.0
g1=3.0% g2=-2.0%
sta of interest=37+91, el=107.5

that is all that's known and i want a program that i can use to calculate the length of curve needed to pass through that point.

what you gave me will not do that; the answer i got using your eqn was 250' and i know the answer is 415.95'.

i had an eqn, but it seems that the hp33s is limited by the number of operations it can perform.


E=el of point of interest
I=PVI elev
L=length of vertical curve
B=G in
F=G out
S=sta of point of interest
P=PVI station

I used this equation and did the calculation by hand and got 415.95'.

I entered this as an eqn into the 33s, but it gives the wrong answer of It seems that I can enter the equation and sometimes be able to use it one time, then if I go to use it again, it will give me the incorrect answer.

I wanted to enter as a program, but i'm not really good at programming.

Anyway, thanks for your ideas and help. Maybe someone will be kind enough to write me a program to do this???


Sorry, am not familiar with that formula. All I can tell you is that the 33S can work with formulas of that size, and that it will not provide inconsistent results if you enter the same variables into the same formula. If you don't get the same results every time, then you're doing something wrong with the solver

Good luck with it.

Edited: 8 Sept 2004, 12:56 a.m.


I don't think I can help much, but I agree that the solution is unique. The HP 41 survey Module solves this problem. It allows you to input the PVI Station and Elevation, and both grades. You then have a choice of additional items to enter for the solution. One of the options is a point on the curve (Station and Elevation). It then gives you the BVC Station and Elevation. The solution it reached was Sta. 35+33.0204, El. 103.7606. This means that the length would be 415.9592' which is within one hundredth of your answer. Of course this unique solution is only true for vertical curves that have the PVI in the center of the length.

The manual for this survey module has formulas but if your formula solves the problem correctly then it sounds like a calculator problem rather than the formula or a coding problem. Not being familiar with the 33S I can't say. You might want to post the code to see if you have any suggestions. The HP 41 code is available but the Vertical Curve portion of the module is much longer than you want because it give a number of input options.

I hope you get other responses so I can also get a good solution here.


well, i have figured out what it does....

for some reason, the calculator gets retains some number in its registers that affect how it is solving. It is like it is getting "hung up" at some point on the curve.

anyway, in order to solve another problem like this one, i have to first solve for the elevation of point of interest (already known) using some length that is close to the actual length. Then, if i use the equation again and SOLVE for the length, i get the correct answer.

the equation i have works, you just have to work around it with an extra step:)


Hi Kyle,

Your problem sounds interesting; however, the jargon is impenetrable. Could you translate the problem into "plain english"? I would be interested in seeing what this is all about. (My field is even more jargon-heavy---so I mean no offense).

Best regards,


Edited: 8 Sept 2004, 3:19 p.m.



here's the problem statement from my PE review class:

For the condition shown, the closest length of vertical curve that will pass through point E is:
A)380'; B)400'; C)420'; D)440'

since i can't draw the curve and its associated data, I have to list it here:

PVC sta=unknown
PVC elev=unknown
PVI sta=37+41
PVI elev=110.0'
PVT sta=unknown
PVT elev=unknown
Grade in=3%
Grade out=-2%
Station of interest:37+91
Elevation of sta of interest:107.50'

So, I need to find the length of the vc that will pass through this point, beginning at the PVC and ending at the PVT. The curve is a crest curve also and all I have to use are the sta/elev of the PVI and point of interest.

The previous post listed the equation and the variables used/what they represented, but here's the eqn again.


I entered this into the 33s and used the solver to solve for L. I asked a co-worker about it and he told me that it was trying to balance the equation and that for some reason it was getting stuck when you tried to solve the same problem for a second time. He said, in order to get around the "stuck" issue, just take the equation and solve for the elevation of the station of interest and use some other value for L. When you do this, and then try to solve for L again, it gives the correct answer.

So, when I go to work on problems, I use this eqn and if I get some weird answer, like 24.41, etc, then I know to reset the equation by solving for some other variable.

I hope that this has helped in your understanding of the problem. I was initially looking for a program to do this, and thought that maybe someone here that is more familiar with programming these hp calculators could help me.




Hi Kyle,

First, I still don't understand. I do not know what your abbreviations stand for. I assume this is a Civil Engineering problem. I am a yacht designer, not a civil engineer, so I can tell you what GM, LCF, etc mean, but not "PVC sta", "grade in" "grade out" etc.

What it seems like to me is that you have two different spots in a road, each with a required slope of the road (2% and 3% here) and a certain distance apart, and elevation difference, and you are asked to draw a smooth curve of some sort between them. Is this true?

As far as programming goes, that is really not so hard---you just type in what you do "by hand" but in program mode, and you have most of it.

If you need to solve iteratively, then you can put an expression into a subroutine, use the Fn=label to set that routine, and then have your main program solve. Or, you can write one single routine and manually solve that routine for your unknown variable.

For your Equation, it would be, in ALG mode,

(be sure you are in ALG mode before you start typing in, or your "(" won't work)

LBL label
{and INPUT for any other variables I forgot--
be sure all of them are there}
(put an RPN statement here if you prefer RPN command operation)

Note that I moved your "E=" to the other side as a minus E, so as to make the whole thing an expression.

To solve for your variable, you would go back to regular mode (RPN or ALG) and say FN=label, and then SOLVE _variable.

Alternatively, you could simply re-write your equation in either program mode, or in the equation list, and move the "E" across so as to make it all an expression, and solve for the variable you want to. If you do an equation in a program, be sure to decide whether to clear or set flag 10 to control automatic prompting--you won't need auto-prompting if you include INPUT statements in program mode. If you are in the equation list, the Solver will attempt to algebraicly find a direct solution first.

You can also use initial guesses by storing your lower guess in the variable, and your upper bound in the x-register (calculator line) and then solving.

You will find most of this in the manual (and the other stuff from Gene's recent post!).

Best regards,


Edited: 8 Sept 2004, 5:13 p.m.



As you know they try to make roads as smooth as possible - so vertical curves are installed between the straight sloped portions on either side of the curve. Some Jargon:

Station is a point along the road in hundreds of feet, so the entire road can be defined by certain information at the stations. 2,576.13 feet down the road is Sta. 25+76.13

You have a grade (slope) into a curve and a grade (slope) out of it. The grades are expressed in positive and negative percent slope. That is rise or fall in 100. (Tangent) In the US it's feet of rise or fall in 100 feet.

Where the projected straight grade into the curve intersects the back projected grade out of the curve there is a Point of Vertical Intersection. (PVI) That point will have a Station and Elevation.

On a Symmetrical Vertical Curve, half of the length is on each side of the PVI Station. Unsymmetrical vertical curves are rare in road design.

You can have crest curves (up then down) that have high points or sag curves (down then up) that have low points, or you can have say a curve that goes from 2% up grade to 10% up grade and has no low or high points except at its ends.

Oh, did I mention that we are not talking about circular curves here. I am not sure if it is a parabolic curve.

So the problem here is: You know a PVI Station (the location of the grade intersections) and the PVI Elevation (the elevation at the grade intersections). You also know a new point location (another station) and its elevation. You are now supposed to determine the length of curve that will make the curve go through that new point. This is a practical problem because there might be an object like a manhole or something that you would like the road surface to match somewhere through the curve.

So, it is possible the problem cannot be solved. Take for instance the case where you are going up hill to the grade intersection and then downhill away from it (a crest curve). If the new point is anywhere above the two grade lines it is unsolvable. On the other hand if it is anywhere below the grade lines then there is one solution.

There are a lot of other possible questions that could be asked like what is the high point in a crest curve and where is it located (because it is not at the PVI Station unless the grade in equals the grade out).

I have the formula for the solution of the length of the curve for this problem sitting here in front of me; from the HP 41 survey module book, but it would be too difficult to list here without me making a mistake. (three levels of perenthises and dividends, etc. I can fax the two pages to anyone that wants (within reason - meaning the U.S.) or you can just look it up on the CD manual that you bought from this site. It is on page 92 and 93.

Hope this helps you understand the problem.


Thanks for explaining this Forrest. I'm sorry, but I just assumed (incorrectly) that someone who replied to this thread would know what I was talking about. (No insult implied for not knowing) :)

I would be interested in getting what you have (vc solving for length)from the 41. I don't have my fax number at this time, as I am home now, but when I get back to work tomorrow, I can post it here or better yet, send it to you in an email.

Thanks for your help. K



Thanks--that's exactly what I needed to know.

For clarification, it looks like you are not taling about a curve in the road (maybe you have another name for what we drivers call curves---do you call them bends or sweeps?), but rather the smooth transition, in a straight road, when there is a change in the slope of the road.

So, of course I have thought about this problem before--anyone who drives too fast does :-)

But being a graphic person, I am inclined to draw it---which I did. It certainly looks, from inspection, as if one could draw a smooth curve with no inflections, which passes through the point of interest.

But I am a bit puzzled by the apparent approach to this problem---"where's the formula---let's put it in and get an answer". If I were to be posed with this problem, I would want to know, what is the minimum radiaus of curvature allowed--relate that to vehicle velocity---and change in curvature---also a vehicle velocity issue----. So, how are these issues handled?

I am not so sure that it even matters whether the curve is parabolic, hyperbolic, or a spline----so long as the derivatives fall into an acceptable range--from the standpoint of limiting vehicle vertical accelerations.

Best regards,



When I enter


into the 33s as an equation and solve for L, I get 415.959 as the answer. Check Sum = 19AC, Length = 73.

Using this method, you can solve for any of the variables.


Edited: 9 Sept 2004, 4:50 p.m.



Of course there are reasonable criteria for the length of vertical curves in roads. The length depend upon the design speed and the algebraic difference of the grade in to the grade out. Those criteria are usually set by a public agency. But there are even other considerations than the vertical velocity concern. How about sight distance and stopping distance. Also the sight distance might be different for a crest curve than a sag curve. Our software gives us these values of concern when we design any highway.

By the way, usually the horizontal curves are circular for roads but for fast highways they may be spirals or a composite curve. Of course design speed is also a criteria on horizontal curves. But guess what; it is really common to have both horizontal and vertical curves happening at the same time or overlapping.

If you are really interested you can pick up a book on highway design from a number of sources. Probably any university library has them. And it is a parabolic curve that is used.

Anyway,I believe that Mike Head has determined that the formula works.


Hi Forrest,

Thanks for your feedback. Yes--the equation looked to be producing a parabola--with the last term a squared term.

Regarding the sight lines, that is a good point! Always an issue when riding a bicycle--auto drivers tend not to "think ahead" and will almost without fail, while passing, cross the yellow (center) line in a blind crest or curve!.

And regarding "The length depend upon the design speed and the algebraic difference of the grade in to the grade out. Those criteria are usually set by a public agency"--it seems that in the example problem, the criteria is implicit....

I think I will have to go look at some of those books someday--a former co-worker was a train buff, and had showed me some interesting nuances about laying out "horizontal" curves for railroads--regarding the transition into the banking--which should I suppose apply to the automobile roadway design as well.

Best regards,


Edited: 10 Sept 2004, 10:44 a.m.


The transition is a spiral and is used to ease the slope from neg. to pos. or on rr, flat to super elevated.

Possibly Related Threads...
Thread Author Replies Views Last Post
  HP Prime: run a program in another program Davi Ribeiro de Oliveira 6 1,325 11-11-2013, 08:28 PM
Last Post: Davi Ribeiro de Oliveira
  HP 32S-II Vertical Curve Program Ron Cardwell 2 764 05-20-2013, 07:54 AM
Last Post: Thomas Klemm
  Operator keys position: why vertical? Alexander Oestert 23 2,691 12-12-2012, 02:39 PM
Last Post: BruceH
  HP-41 MCODE: Making an MCODE program call another MCODE program Geir Isene 10 1,610 01-13-2008, 05:58 AM
Last Post: Raymond Del Tondo
  Vertical Curves Program Joe Silvestro 3 663 11-14-2000, 12:40 PM
Last Post: Bill S.

Forum Jump: