亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? atmlndnl.pm

?? CCSM Research Tools: Community Atmosphere Model (CAM)
?? PM
字號:
##	atmlndnl.pm			Erik Kluzek##	Perl module to deal with namelists for the atmosphere and land.##------------------------------------------------------------------------##	Description of methods:##	setcfg -------------------- Set a given configuration value setting.#	cfg ----------------------- Return a configuration value.#	get_default_values -------- Set the default values from the Default XML file.#	exists -------------------- Check if a cfg value exists.#	checkinputfile ------------ Check if the given input file exists.#	check --------------------- Check that the namelist is valid.##	$Id: atmlndnl.pm,v 1.1.6.1 2002/05/13 17:21:23 eaton Exp $#use strict;#use diagnostics;use Cwd;use XML::Lite;package atmlndnl;use namelist;@atmlndnl::ISA = "namelist";## Extend the namelist class to have a method to check that input files# exist either on local disk, full-path given, or on Mass Store.#sub new {## Constructor#  my $class = shift;  my $name  = shift;  my $refNL = shift;  my $interactive = shift;  my $file  = shift;  my $defaults_file = shift;  my $default_vals = shift;  my $CFG = shift;  my $printlev = shift;  if ( ! defined($file) ) {    die "ERROR($class): atmlndnl constructor was not sent the namelist filename\n";  }  my $self = $class->SUPER::new( $name, "$file", $refNL, $printlev );  $self->{'DEFAULTS_FILE'} = $defaults_file;       # XML File with default values  if ( ($interactive != 0) && ($interactive != 1) ) {    die "ERROR($class): interactive option passed in to new was not valid: $interactive\n";  }  $self->{'INTERACTIVE'} = $interactive;           # Interactive mode (0 or 1)  if ( ref($CFG) ne "CAM_config" ) {    die "ERROR($class): Object sent to atmlndnl constructor not a CAM_config object\n";  }  $self->{CFG} = $CFG;        # CAM Configuration object  $self->{MODEL_EXEDIR} = $CFG->cfg( "MODEL_EXEDIR" );    # Model execution directory  $self->{MODEL_CFGDIR} = $CFG->cfg( "MODEL_CFGDIR" );    # Location of configuration files  $self->{'default_vals'} = $default_vals;  bless( $self, $class );  return( $self );}#============================================================================sub get_default_values {##  Parse the Default XML file that gives most of the default settings#  for different conditions (different resolutions, dynamics etcetera).#  my $self = shift;  my $class = ref($self);  my $nm = "$class\:\:get_default_values";  my $EXPNLref = $self->{'default_vals'};  my $MODEL_CFGDIR = $self->{"MODEL_CFGDIR"};  my $file;  if ( defined($MODEL_CFGDIR) ) {    $file = $MODEL_CFGDIR . "/" . $self->{'DEFAULTS_FILE'};  } else {    $file = $self->{'DEFAULTS_FILE'};  }  print "($nm) Read: $file\n" if ($self->{'printlev'}>2);  my $xml = XML::Lite->new( $file );  if ( ! defined($xml) ) {    die "ERROR($nm): Trouble opening or reading $file\n";  }  #  # Find the namelist element for this namelist  #  my $elm = $xml->root_element( );  my $namelist = $self->{'NAME'};  my @list = $xml->elements_by_name( $namelist );  if ( $#list < 0 ) {    die "ERROR($nm): could not find the main $namelist namelist element in $file\n";  }  if ( $#list != 0 ) {    die "ERROR($nm): $namelist namelist element in $file is duplicated, there should only be one\n";  }  #  # Go through the sub-elements to the namelist element  #  $elm = $list[0];  my @children = $elm->get_children();  if ( $#children < 0 ) {    die "ERROR($nm): There are no sub-elements to the $namelist element in $file\n";  }  foreach my $child ( @children ) {    #    # Get the attributes for each namelist element    # The attributes describe either config settings that need to match    # or other namelist elements that need to match    #    my %atts = $child->get_attributes;    # Name of element, and it's associated value    my $name = $child->get_name();    my $value =  $child->get_text();    $value =~ s/\n//g;   # Get rid of extra returns     # Expand the internal variables that might be in the string    $value = $self->expand_vars_in_string( $value );    my @keys = keys(%atts);    my $match = 1;    if ( $#keys >= 0 ) {      #      # Check that all values match the appropriate settings      #      foreach my $key ( @keys ) {        # For config variables        if ( $self->{CFG}->exists($key) && defined($self->{CFG}->cfg($key)) &&              ($self->{CFG}->cfg($key) !~ /$atts{$key}/ ) ) {          $match = 0;          last;        }        # For namelist items        if ( exists($$EXPNLref{$key}) && defined($$EXPNLref{$key}) &&             ($$EXPNLref{$key} !~ /$atts{$key}/ ) ) {          $match = 0;          last;        }      }    }    # If match all attributes, and value isn't currently set    if ( $match && ( ! exists($$EXPNLref{$name}) ||       ! defined($$EXPNLref{$name}) ) ) {      print "Set default value for: $name = $value\n" if ($self->{'printlev'}>2);      $$EXPNLref{$name} = $value;    }  }}#============================================================================sub do_interactive {## Return true if interactive option set#  my $self = shift;  my $value = $self->{INTERACTIVE};  return( $value );}#============================================================================sub checkinputfile {# Check that the namelist value for an initial or boundary datasets is# properly quoted.  Then check that the file exists on local filesystem.# If the file is not found by looking at the full filepath, check for it in# the directory where the CAM executable was created.  my $self = shift;  my $item = shift;  my $class = ref($self);  my $nm = "$class\:\:checkinputfile";  my $EXPNLref = $self->{'NLREF'};  my %EXPNL = %$EXPNLref;  my $name = $EXPNL{$item};  # check for quoting  if ( $name !~ /["'](.*)['"]/ ) {    die "$nm: $item needs quotes around filename: value = $name";  }  my $infile = $1;  my $found_message = "Found $item dataset on local disk.";  # check full pathname  if ( -f $infile ) {       print "$found_message\n" if ($self->{'printlev'}>1);      return;  }  # check for file in directory containing CAM executable  $infile =~ /([^\/]+$)/;     # strip filename from the path  my $file = $1;  my $MODEL_EXEDIR = $self->{'MODEL_EXEDIR'};  if ( defined($MODEL_EXEDIR) ) {      if ( -f "$MODEL_EXEDIR/$file" ) { 	  print "$found_message\n" if ($self->{'printlev'}>1);	  return;      }  }  print "Warning($nm): $item dataset $infile not found on local disk\n".        "This dataset must be copied or linked to the run directory.\n";}#============================================================================sub expand_vars_in_string {## Expand any internal variables that are in a string#  my $self = shift;  my $value = shift;  while ( $value =~ /^(.*)\${*([a-zA-Z_]+[a-zA-Z0-9_]{0,19})}*(.*)$/ ) {    my $var = $2;    my $lead = $1;    my $tail = $3;    my $var_value;    # If internal variable exists for this variable name    if ( exists($self->{$var}) ) {      $var_value = $self->{$var};    } else {      die "ERROR:: Internal variable $var needed in setting this value $value";    }    $value = "${lead}${var_value}${tail}";  }  return( $value );}#============================================================================1   # to make use or require happy

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线免费观看亚洲| 91精彩视频在线| 国产成人精品免费在线| 美国av一区二区| 91在线视频免费观看| 欧美一级理论性理论a| 国产亚洲综合色| 亚洲国产激情av| 久久国产精品72免费观看| 国产精品三级视频| 久久色在线观看| 亚洲另类春色校园小说| 日韩中文欧美在线| 国产精品久久久久精k8| 日韩av一区二区三区| 国产米奇在线777精品观看| 国产精品三级在线观看| 欧美日韩一卡二卡三卡 | 麻豆一区二区在线| 久久欧美中文字幕| 国内精品久久久久影院一蜜桃| 91视频在线观看免费| 中文字幕一区三区| 高清av一区二区| 欧美人妇做爰xxxⅹ性高电影| 欧美丰满一区二区免费视频| 一区二区三区四区av| 91污在线观看| 国产伦精品一区二区三区免费迷 | 在线欧美日韩国产| 精品中文字幕一区二区小辣椒| 一区二区在线观看免费| 久久先锋影音av鲁色资源网| 国产91精品免费| 成人免费看视频| 美女视频黄免费的久久| 亚洲日本一区二区| 国产日韩av一区| 欧美一区二区三区不卡| 成人一区二区在线观看| 久草这里只有精品视频| 亚洲一区二区五区| 国产精品网曝门| 国产乱子伦视频一区二区三区| 国产日韩欧美制服另类| 欧美片网站yy| 久久爱www久久做| 欧美电视剧免费全集观看| 久久99精品久久久久婷婷| 久久精品视频在线看| 99精品偷自拍| 一区二区三区中文字幕精品精品| 欧美性色黄大片| 亚洲国产一二三| 国内精品国产三级国产a久久| 亚洲欧洲99久久| 日韩视频123| 欧美日韩二区三区| 欧美日韩国产小视频在线观看| 免费国产亚洲视频| 亚洲视频一二三区| 久久精品亚洲国产奇米99| 99精品视频在线观看免费| 国产一区二区免费在线| 亚洲va天堂va国产va久| 久久一区二区三区国产精品| 欧美性猛交xxxxxx富婆| 成人黄色免费短视频| 九一久久久久久| 一区二区三区成人| 国产精品 欧美精品| 亚洲视频在线一区观看| 亚洲精品一区二区三区四区高清| 欧美日韩电影一区| 美日韩一区二区| 欧美午夜精品免费| 亚洲综合小说图片| 日韩美女视频一区二区在线观看| 中文字幕制服丝袜成人av| 久久久久久久免费视频了| 亚洲va中文字幕| 欧美日韩黄色一区二区| 蜜桃一区二区三区在线观看| 午夜a成v人精品| 麻豆一区二区三| 国产传媒一区在线| 91毛片在线观看| 懂色一区二区三区免费观看| 91无套直看片红桃| 欧美高清视频一二三区| 久久精品水蜜桃av综合天堂| 2021中文字幕一区亚洲| 国产亚洲一区二区三区在线观看| 久久精品夜色噜噜亚洲aⅴ| 久久久久久久久蜜桃| 欧美国产一区二区| 亚洲欧美怡红院| 国产精品网站在线| 悠悠色在线精品| 国产美女av一区二区三区| 欧美日韩1234| 激情六月婷婷综合| 亚洲成在人线在线播放| 亚洲天堂2014| 洋洋成人永久网站入口| 日本一不卡视频| 国产美女av一区二区三区| 久久国产精品免费| 成人动漫在线一区| 91麻豆精品国产综合久久久久久| 国产三级精品三级在线专区| 国产精品美女一区二区三区| 亚洲人午夜精品天堂一二香蕉| 亚洲国产一区二区三区青草影视| 91麻豆福利精品推荐| 7777精品伊人久久久大香线蕉的| 国产视频一区二区在线| 欧美中文字幕一区二区三区亚洲| 国产麻豆精品在线| 欧美一区午夜视频在线观看| 国产精品美女久久久久高潮 | 国产性色一区二区| 日日摸夜夜添夜夜添精品视频| 色欧美片视频在线观看| 亚洲色图在线看| 成人黄色综合网站| av电影在线不卡| 国产精品不卡在线观看| 欧美美女直播网站| 欧美中文字幕一区二区三区| 亚洲区小说区图片区qvod| 91麻豆视频网站| 免费在线成人网| 日韩欧美国产1| 国内精品伊人久久久久影院对白| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 蜜桃视频一区二区| 成人黄色片在线观看| 久久精品亚洲麻豆av一区二区 | 91精品在线麻豆| 天天色 色综合| 日韩精品中文字幕一区| 99久久亚洲一区二区三区青草 | 欧美性生活大片视频| 久久国产精品第一页| 国产精品国产三级国产有无不卡 | 国产精品99久久久久久似苏梦涵| 国产片一区二区| 色婷婷综合久久| 精品亚洲欧美一区| 美腿丝袜亚洲色图| 夜夜精品视频一区二区| 中文字幕在线一区免费| 欧美v国产在线一区二区三区| 久久久国产午夜精品| 精品欧美一区二区久久| 国产一区二区三区日韩| 中文字幕免费一区| 欧美视频中文字幕| 91一区二区在线观看| 91视频com| 欧美国产国产综合| 国内精品免费**视频| 日本一区二区久久| av资源网一区| 亚洲午夜影视影院在线观看| 91精品午夜视频| 8x福利精品第一导航| 日韩欧美成人一区二区| 国产不卡在线播放| 亚洲激情五月婷婷| 69久久夜色精品国产69蝌蚪网| 经典一区二区三区| 国产精品视频观看| 日韩av一区二| 日韩欧美电影一区| 欧美精品在线观看播放| 91精品欧美综合在线观看最新| 99久久精品国产网站| 国产一区视频在线看| 加勒比av一区二区| 国产一区二区网址| 成人av影院在线| 成人黄色在线网站| 91久久一区二区| 一区在线观看视频| 欧美私模裸体表演在线观看| 首页亚洲欧美制服丝腿| 亚洲sss视频在线视频| 精品免费国产二区三区| 色久优优欧美色久优优| 精品一区二区免费视频| 亚洲一区在线观看网站| 久久久亚洲国产美女国产盗摄| 色婷婷久久99综合精品jk白丝| 精品一区二区三区免费视频| 日韩久久一区二区| 精品少妇一区二区三区日产乱码 | 久久色在线观看| 欧美日韩亚洲另类|