libGHP.pl
changeset 47 dde46143288c
parent 46 70e566505a12
--- a/libGHP.pl
+++ b/libGHP.pl
@@ -1,15 +1,16 @@
 #======================================================================
 #                    L I B G H P . P L 
 #                    doc: Fri Sep  7 09:56:08 2012
-#                    dlm: Wed Jul 14 07:41:20 2021
+#                    dlm: Wed Aug 11 13:12:52 2021
 #                    (c) 2012 A.M. Thurnherr
-#                    uE-Info: 12 50 NIL 0 0 72 2 2 4 NIL ofnI
+#                    uE-Info: 38 0 NIL 0 0 70 2 2 4 NIL ofnI
 #======================================================================
 
 # HISTORY:
 #	Sep  7, 2012: - created
 #	Oct 22, 2012: - cosmetics
 #	Jul 14, 2021: - BUG: adapted to new libGM name
+#	Aug 11, 2021: - modified j() to handle N<f
 
 require "$ANTS/libfuns.pl";		# arccosh
 require "$ANTS/libGM76.pl";		# GM_N0
@@ -30,17 +31,30 @@
 	return 3*($R_omega+1) / (2*sqrt(2)*$R_omega*sqrt($R_omega-1));
 }
 
+sub h2($)
+{
+	my($R_omega) = @_;
+	return 1/(6*sqrt(2)) * $R_omega*($R_omega+1) / sqrt($R_omega-1);
+}
+
 #----------------------------------------------------------------------------
 # j(f,N)	correction factor for latitude
 #	- this version from Kunze et al. (2006)
+#	- if N<f, N/f = 1 assumed
 #----------------------------------------------------------------------------
 
 sub j(@)
 {
 	my($f,$N) = @_;
-	return 0 if ($f == 0);
+
+	$f = abs($f);
+	return 0 if ($f < 1e-6);
+
+	my($f30) = &f(30);
+
 	$N = $GM_N0 unless defined($N);
-	my($f30) = &f(30);
+	$N = $f unless ($N > $f);
+
 	return $f*acosh($N/$f) / ($f30*acosh($GM_N0/$f30));
 }