libGHP.pl
author Andreas Thurnherr <ant@ldeo.columbia.edu>
Tue, 07 Jun 2022 17:17:54 -1000
changeset 49 789eddc6d4b3
parent 47 dde46143288c
permissions -rw-r--r--
merged with F104 version
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     1
#======================================================================
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     2
#                    L I B G H P . P L 
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     3
#                    doc: Fri Sep  7 09:56:08 2012
47
dde46143288c before 2022 P2 cruise
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 46
diff changeset
     4
#                    dlm: Wed Aug 11 13:12:52 2021
3
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     5
#                    (c) 2012 A.M. Thurnherr
47
dde46143288c before 2022 P2 cruise
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 46
diff changeset
     6
#                    uE-Info: 38 0 NIL 0 0 70 2 2 4 NIL ofnI
3
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     7
#======================================================================
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     8
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     9
# HISTORY:
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    10
#	Sep  7, 2012: - created
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    11
#	Oct 22, 2012: - cosmetics
46
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 3
diff changeset
    12
#	Jul 14, 2021: - BUG: adapted to new libGM name
47
dde46143288c before 2022 P2 cruise
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 46
diff changeset
    13
#	Aug 11, 2021: - modified j() to handle N<f
3
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    14
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    15
require "$ANTS/libfuns.pl";		# arccosh
46
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 3
diff changeset
    16
require "$ANTS/libGM76.pl";		# GM_N0
3
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    17
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    18
#----------------------------------------------------------------------------
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    19
# h(R_omega)	correction factor for different shear/strain (R_omega) ratios
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    20
#	- this version from Kunze et al. (2006)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    21
#	- R_omega:
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    22
#		= (N^2-omega^2)/N^2 (omega^2+f^2)/(omega^2-f^2)	Polzin et al. 1995
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    23
#		= (omega^2+f^2)/(omega^2-f^2)					Kunze et al. 2006
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    24
#		- the Kunze et al formulation is presumably an approximation valid for
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    25
#		  omega<<N
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    26
#----------------------------------------------------------------------------
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    27
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    28
sub h1($)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    29
{
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    30
	my($R_omega) = @_;
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    31
	return 3*($R_omega+1) / (2*sqrt(2)*$R_omega*sqrt($R_omega-1));
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    32
}
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    33
47
dde46143288c before 2022 P2 cruise
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 46
diff changeset
    34
sub h2($)
dde46143288c before 2022 P2 cruise
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 46
diff changeset
    35
{
dde46143288c before 2022 P2 cruise
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 46
diff changeset
    36
	my($R_omega) = @_;
dde46143288c before 2022 P2 cruise
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 46
diff changeset
    37
	return 1/(6*sqrt(2)) * $R_omega*($R_omega+1) / sqrt($R_omega-1);
dde46143288c before 2022 P2 cruise
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 46
diff changeset
    38
}
dde46143288c before 2022 P2 cruise
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 46
diff changeset
    39
3
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    40
#----------------------------------------------------------------------------
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    41
# j(f,N)	correction factor for latitude
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    42
#	- this version from Kunze et al. (2006)
47
dde46143288c before 2022 P2 cruise
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 46
diff changeset
    43
#	- if N<f, N/f = 1 assumed
3
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    44
#----------------------------------------------------------------------------
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    45
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    46
sub j(@)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    47
{
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    48
	my($f,$N) = @_;
47
dde46143288c before 2022 P2 cruise
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 46
diff changeset
    49
dde46143288c before 2022 P2 cruise
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 46
diff changeset
    50
	$f = abs($f);
dde46143288c before 2022 P2 cruise
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 46
diff changeset
    51
	return 0 if ($f < 1e-6);
dde46143288c before 2022 P2 cruise
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 46
diff changeset
    52
dde46143288c before 2022 P2 cruise
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 46
diff changeset
    53
	my($f30) = &f(30);
dde46143288c before 2022 P2 cruise
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 46
diff changeset
    54
3
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    55
	$N = $GM_N0 unless defined($N);
47
dde46143288c before 2022 P2 cruise
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 46
diff changeset
    56
	$N = $f unless ($N > $f);
dde46143288c before 2022 P2 cruise
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 46
diff changeset
    57
3
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    58
	return $f*acosh($N/$f) / ($f30*acosh($GM_N0/$f30));
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    59
}
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    60
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    61
1;