Erst einmal ein Danke schön. Ich habe es gelöst. Die Formel habe ich aus einander gefrimelt, so wie es mir Marvin42X empfohlen hat. Siehe da, der Absturz kommt doch tatsächlich in der Wurzel. Solange die Variable YpUpdate negativ ist, soll die Wurzel aus einer negativen Zahl gezogen werden, was natürlich nicht ist. Durch das Negativzeichen am Anfang der Wurzel passiert das.
Sqr((-YpUpdate / Radius) * (YpUpdate / Radius) + 1))

- * - = + und dann noch die 1 addieren, ergibt dann einen negativen Wert. Erst wenn YpUpdate positiv ist, ist alles OK. Somit habe ich das wie folgt geändert:

If YpUpdate >= 0 Then
Wurzel = Sqr(-(YpUpdate / Radius) ^ 2 + 1)
ArcusTangensLatitudePosUpdate = Math.Atn((-YpUpdate / Radius) / Wurzel) + 2 * Math.Atn(1)
LatitudePosUpdate = (180 / Pi) * ArcusTangensLatitudePosUpdate
UpLatitude = LatitudePosUpdate
End If

Ich bin happy. danke
Ich benutze Visual Basic 6. Ich habe damit angefangen. Würde ich noch einmal anfangen, würde ich gleich VB 2005 oder sogar Visual C nehmen. Das Projekt hat nun aber eine Größenordnung angenommen, dass ich momentan keine Lust habe, das alles auf VB 2005 zu konvertieren. Hätte ich ganz am Anfang besser machen können. Geht aber auch so.
Mein Pi habe ich in der main natürlich entsprechend deklariert.
Pi = 3.14159265358979
Könnte ich auch mit dem Tangens innerhalb des Programms berechnen.

mfg Peter