#!/usr/bin/perl # $str = $ENV{"QUERY_STRING"}; ($np, $mp, $year, $latd, $latm, $lond, $lonm, $alt, $gen) = split(/\+/, $str); if (!defined($gen)) { $ngen = ""; $sgen = "(Latest)"; } else { $ngen = $gen; $sgen = $gen; } # $err = 0; if ($year eq "") { $year = "2000.00"; $latd = "36"; $lond = "136"; $alt = "0.0"; $latf = ""; $lonf = ""; $dip = ""; $dec = ""; $tf = "00000.0"; } else { $lat = $latd*60. + $latf; $lon = $lond*60. + $lonf; $args = sprintf("%.2f:%.1f:%.1f:%.1f:%d", $year,$lat,$lon,$alt,$ngen); if (open(IN, "bin/igrfidf $args |")) { $_ = ; if (/^OK/) { $_ = ; ($year, $latd, $latm, $lond, $lonm, $alt) = split; $_ = ; ($dip, $dec, $tf, $ngen) = split; $sgen = sprintf("%02d", $ngen); } else { $err = 1; $msg = $_; } close(IN); } else { $err = 1; $msg = "caligrf.cgi: igrfidf start fail."; } } if ($err == 1) { print "Content-type: text/html; charset=iso-8859-1\n\n"; #### $htmlbody =< AMXS caligrf
ERROR:        
__MESG__
EOM #### $htmlbody =~ s/__MESG__/$msg/; print $htmlbody; } else { print "Content-type: text/html; charset=iso-8859-1\n\n"; #### $htmlbody =< Set Dir.Parameter from IGRF Calculation
Calculate IGRF to set direction parameters      

Year:     Ngen:     Result:     [Ngen = __NGEN__ ]
Lat.: deg.   min.     Inclin.: deg.
Long.: deg.   min.     Declin.: deg.
Alt.: m     F = __TFM__ nT
EOM $htmlbody =~ s/__SGEN__/$sgen/; $htmlbody =~ s/__YEAR__/$year/; $htmlbody =~ s/__LATD__/$latd/; $htmlbody =~ s/__LATM__/$latm/; $htmlbody =~ s/__LOND__/$lond/; $htmlbody =~ s/__LONM__/$lonm/; $htmlbody =~ s/__ALT__/$alt/; $htmlbody =~ s/__NGEN__/$ngen/g; $htmlbody =~ s/__DIP__/$dip/; $htmlbody =~ s/__DEC__/$dec/; $htmlbody =~ s/__TFM__/$tf/; $htmlbody =~ s/__POS1__/$np/; $htmlbody =~ s/__POS2__/$mp/; $rstr = sprintf("P%02d", $np); $htmlbody =~ s/___1___/$rstr/; $rstr = sprintf("P%02d", $mp); $htmlbody =~ s/___2___/$rstr/; print $htmlbody; }