爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7392|回复: 7

希望大家帮一下,看下面的这段代码的意义?谢谢。

[复制链接]

新浪微博达人勋

发表于 2014-8-30 19:09:51 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
             对于下面这两行代码意义不是很明白,望大神们帮助看一下:

                 ### INSFCData is both surface and ship data
                  set InUpperData   =  ( $DataDir/Y52853.bin )
                  set InSFCData     =  ( $DataDir/Y77933.bin $DataDir/Y77939.bin )

这个出自adp_to_little-r.csh程序中,源程序为:

#!/bin/csh

#        This shell converts ADP data (surface/ship and upper air)
#        into a format suitable for the little_r program.
#       USE THIS ONLY IF YOU HAVE ADP DATA ON YOUR MACHINE
#       THIS SCRIPT WILL NOT DOWNLOAD ADP DATA FOR YOU
#
#       Three types of data files are created:
#             obs:DATE             : Upper-air and surface data used as
#                                    input to little_R
#             surface_obs_r:DATE   : Surface data needed for FDDA in lillte_r
#                                    (if no FDDA will be done, these are not
#                                    needed, since they are also contained
#                                    in obs:DATE)

### DataDir MUST be the ABSOLUTE path to your data directory
set DataDir       =  home/renhehe/bin/mm5V3-7-0/LITTLE_R5/FETCH4                  

### INSFCData is both surface and ship data
set InUpperData   =  ( $DataDir/Y52853.bin )
set InSFCData     =  ( $DataDir/Y77933.bin $DataDir/Y77939.bin )


set starting_date = 2004080100
set ending_date   = 2004083100

#        The amount of CPU time spent unpacking the entire
#        globe is embarrassing.  As much as possible, restrict the
#        bounds.

set lon_e         =  180
set lon_w         = -180
set lat_s         =  -90
set lat_n         =   90

set lon_e         =  140
set lon_w         =  110
set lat_s         =   10
set lat_n         =   35

##############################################
#        End of user modification
##############################################

set LETTERS = (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z)

### Do surface data

pushd adp_sfc

#        Build the conversion routine, set the namelist up.

echo "Making code - Surface"

make
m4 -Dxstryy=`echo $starting_date | cut -c1-4`  \
   -Dxstrmm=`echo $starting_date | cut -c5-6`  \
   -Dxstrdd=`echo $starting_date | cut -c7-8`  \
   -Dxstrhh=`echo $starting_date | cut -c9-10` \
   -Dxendyy=`echo $ending_date | cut -c1-4`  \
   -Dxendmm=`echo $ending_date | cut -c5-6`  \
   -Dxenddd=`echo $ending_date | cut -c7-8`  \
   -Dxendhh=`echo $ending_date | cut -c9-10` \
   -Dxloe=$lon_e -Dxlow=$lon_w -Dxlas=$lat_s -Dxlan=$lat_n \
   namelist.template >! namelist.input


#        Run the program (convert data to little_r format).
#        At least a single file must exist for input.

set NUM = 1
foreach fil ( $InSFCData )
   ln -sf  $fil Data.$NUM
   @ NUM ++
   echo Data.$NUM
end

echo "Converting Surface Data"
        ( time ./adp_sfc.exe Data.* ) >&! adp_sfc_print

#        

set y = `echo $starting_date | cut -c1-4`
set m = `echo $starting_date | cut -c5-6`
set d = `echo $starting_date | cut -c7-8`
set h = `echo $starting_date | cut -c9-10`

popd


### Do upper_air data

pushd adp_upa

#        Build the conversion routine, set the namelist up.

echo "Making code - Upper-Air"

make
m4 -Dxstryy=`echo $starting_date | cut -c1-4`  \
   -Dxstrmm=`echo $starting_date | cut -c5-6`  \
   -Dxstrdd=`echo $starting_date | cut -c7-8`  \
   -Dxstrhh=`echo $starting_date | cut -c9-10` \
   -Dxendyy=`echo $ending_date | cut -c1-4`  \
   -Dxendmm=`echo $ending_date | cut -c5-6`  \
   -Dxenddd=`echo $ending_date | cut -c7-8`  \
   -Dxendhh=`echo $ending_date | cut -c9-10` \
   -Dxloe=$lon_e -Dxlow=$lon_w -Dxlas=$lat_s -Dxlan=$lat_n \
   namelist.template >! namelist.input

#        Run the program (convert data to little_r format).
#        At least a single file must exist for input.

set NUM = 1
foreach fil ( $InUpperData )
   ln -sf  $fil Data.$NUM
   @ NUM ++
   echo Data.$NUM
end

echo "Converting Upper-Air Data"
        ( time ./adp_upa.exe Data.* ) >&! adp_upa_print

#        

set y = `echo $starting_date | cut -c1-4`
set m = `echo $starting_date | cut -c5-6`
set d = `echo $starting_date | cut -c7-8`
set h = `echo $starting_date | cut -c9-10`

if ( -e upper-air_obs_r:${y}-${m}-${d}_${h} ) then

          foreach fil ( upper-air_obs_r:* )
            set dd = ` echo $fil | cut -c17-30 `
            set fil2 = ../adp_sfc/surface\*{$dd}
            cat $fil > obs:$dd
            cat $fil2 >> obs:$dd
          end
          rm -rf upper-air_obs_r:*
endif

popd

mv adp_sfc/surface* .
mv adp_upa/obs:* .

echo "DONE with conversion"
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-8-31 08:43:36 来自手机 | 显示全部楼层
cshell中设置变量,
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-8-31 09:47:49 | 显示全部楼层
freekiller 发表于 2014-8-31 08:43
cshell中设置变量,

能具体说仔细一点吗?是新手,谢谢。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-8-31 15:55:25 | 显示全部楼层
renjia 发表于 2014-8-31 09:47
能具体说仔细一点吗?是新手,谢谢。

cshell里面定义一个变量。比如: set datadir=/home/xxx/data/
和其他语言定义变量一样,我只能这么具体了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-8-31 18:49:15 | 显示全部楼层
freekiller 发表于 2014-8-31 15:55
cshell里面定义一个变量。比如: set datadir=/home/xxx/data/
和其他语言定义变量一样,我只能这么具体 ...

那下面红的部分还要吗?谢谢
set InUpperData   =  ( $DataDir/Y52853.bin )
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-8-31 18:54:05 | 显示全部楼层
本帖最后由 freekiller 于 2014-8-31 18:56 编辑
renjia 发表于 2014-8-31 18:49
那下面红的部分还要吗?谢谢
set InUpperData   =  ( $DataDir/Y52853.bin )


这个就是 把$DataDir/Y52853.bin  变量datadir下的Y52853.bin文件赋值给变量InUpperData
下面对该变量的操作就表示对文件的操作。
InUpperData 变量就表示 $DataDir/Y52853.bin文件。对该文件操作可以引用该变量 $InUpperData


比如说rm -f   $InUpperData      就是表示删除该文件


密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-8-31 19:07:11 | 显示全部楼层
http://wenku.baidu.com/view/b21dc3165f0e7cd184253608.html 这里给你找了个cshell的参考手册,你可以参考一下
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-8-31 19:30:31 | 显示全部楼层
freekiller 发表于 2014-8-31 18:54
这个就是 把$DataDir/Y52853.bin  变量datadir下的Y52853.bin文件赋值给变量InUpperData
下面对该变量 ...

好的    非常谢谢。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表