#!/usr/bin/perl use Getopt::Long; # &GetOptions( "tgcmroot:s" => \$tgcmroot, "h|help" => \$help ) or usage(); if ($help) { usage(); } # provide usage if help was requested # # Order of precedence for determining tgcmroot is: # 1: Option to this program (-tgcmroot) # 2: Environment variable $TGCMROOT # 3: The default directory on hao or scd systems. # $tgcmroot_default_hao = "/home/tgcm"; $tgcmroot_default_scd = "/fis/hao/tgcm"; if (! defined $tgcmroot or $tgcmroot eq "") { if (defined $ENV{TGCMROOT}) { $tgcmroot = $ENV{TGCMROOT}; print "\n$0: Using tgcmroot from TGCMROOT env var: $tgcmroot\n"; } elsif (-d $tgcmroot_default_hao) { $tgcmroot = $tgcmroot_default_hao; print "\n$0: Using default tgcmroot at HAO: $tgcmroot\n"; } elsif (-d $tgcmroot_default_scd) { $tgcmroot = $tgcmroot_default_scd; print "\n$0: Using default tgcmroot at SCD: $tgcmroot\n"; } else { die "\n>>> $0: Could not determine tgcmroot (please use -tgcmroot option)\n\n"; } } valid_models($tgcmroot); exit; #------------------------------------------------------------------------- sub usage { die <>> Tgcmroot $tgcmroot does not exist as a directory.\n"; } chdir($tgcmroot) || die "\n$0: >>> Could not chdir to tgcmroot $tgcmroot\n"; @list = `/bin/ls` ; chomp @list; foreach $file (@list) { if (validate_model($tgcmroot,$file)) { push(@valid,$file); } } if (@valid) { print "\nList of valid model directories under tgcmroot $tgcmroot:\n"; print "@valid\n\n"; } else { print ">>> Could not find any valid model directories under tgcmroot $tgcmroot\n"; } chdir($mycwd); return @valid; }