libWOCE_oldstyle.pl
author A.M. Thurnherr <athurnherr@yahoo.com>
Sat, 24 Jul 2021 09:38:16 -0400
changeset 46 70e566505a12
parent 0 a5233793bf69
permissions -rw-r--r--
V7.3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     1
#======================================================================
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     2
#                    L I B W O C E . P L 
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     3
#                    doc: Mon Aug 28 11:07:47 2000
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     4
#                    dlm: Sun Jul  2 00:16:46 2006
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     5
#                    (c) 2000 A.M. Thurnherr
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     6
#                    uE-Info: 53 35 NIL 0 0 72 2 2 4 NIL ofnI
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 04, 2000: - created from [libNODC.pl]
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    11
#	Sep 19, 2000: - added &q_OK()
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    12
#	Jan  2, 2002: - added optional length argument to &q_OK()
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    13
#				  - allowed NaN observations in &q_OK()
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    14
#	Aug 14, 2002: - added &csv_q_OK()
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    15
#	Jun 19, 2004: - made Y2K compatible
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    16
#	Apr  4, 2006: - added flt_qual(), flt_src()
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    17
#   Jul  1, 2006: - Version 3.3 [HISTORY]
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    19
require "$ANTS/libconv.pl";		# imply lat/lon conversions
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    20
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    21
#----------------------------------------------------------------------
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    22
# date/time
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    23
#----------------------------------------------------------------------
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    24
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    25
sub MMDDYY(@)		# 6 digit date
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    26
{
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    27
	my($MMDDYY) = &antsFunUsage(1,"6","MMDDYY",@_);
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    28
	my($YY) = substr($MMDDYY,4,2);
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    29
	return substr($MMDDYY,0,2) . "/" .
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    30
		   substr($MMDDYY,2,2) . ($YY>50 ? "/19$YY" : "/20$YY");
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    31
}
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    32
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    33
sub HHMM(@)			# 4 digits
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    34
{
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    35
	my($HHMM) = &antsFunUsage(1,"4","HHMM",@_);
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    36
	return substr($HHMM,0,2) . ":" . substr($HHMM,2,2);
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    37
}
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    38
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    39
#----------------------------------------------------------------------
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    40
# CTD quality flags
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    41
#----------------------------------------------------------------------
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    42
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    43
sub q_OK(@)				# accept only perfect measurements (table 4.10)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    44
{
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    45
	my($nflags) = (@_ == 3) ? 4 : $_[3];
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    46
	my($obs,$qf,$qi) =
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    47
		&antsFunUsage(-3,".${nflags}c","obs, quality flags, flag index[, nflags]",@_);
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    48
	return (substr($qf,$qi,1) == 2) ? $obs : nan;
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    49
}
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    50
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    51
sub csv_q_OK(@)			# exchange-format version (single flags)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    52
{
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    53
	return $_[1] == 2 ? $_[0] : nan;
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    54
}
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    55
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    56
#----------------------------------------------------------------------
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    57
# Float Quality/Source Flags [/Data/Floats/DBE/WFDAC/WDBE/quality.doc]
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    58
#	- 2-digit decimal number
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    59
#	- 10s: quality (0-9, with 9 being best)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    60
#	-  1s: source:
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    61
#			0	missing
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    62
#			1	interpolated 	(backward diff for u/v)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    63
#			2					(forward diff for u/v)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    64
#			3	splined
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    65
#			4	manually edited
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    66
#			5	filtered/averaged
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    67
#			9	original value
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    68
#	- should accept source values >= 4
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    69
#----------------------------------------------------------------------
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    70
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    71
sub flt_qual($)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    72
{ return int($_[0] / 10); }
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    73
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    74
sub flt_src($)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    75
{ return $_[0] % 10; }
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    76
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    77
1;