当前位置:文档之家› fortran文件操作-推荐下载

fortran文件操作-推荐下载

fortran文件操作-推荐下载
fortran文件操作-推荐下载

fortran文件操作

From: 《Fortran 95 程序设计》彭国伦

1.文件读取的概念:

读取:“顺序读取”和“直接读取”。

保存:“文本文件”和“二进制文件”。

二进制文件:读取快,因为保存格式和数据在内存中的保存方法一样,同时也节省空间。

----------------------------------

2. 文件的操作:

----------------------------------

open的使用:使用open命令打开文件之后,就可以对文件来做输入输出。

example:

program ex0901

impicit none

open(unit=10, file='hello.txt') ! 打开hello.txt文件, unit指定文件代码,file

指定文件名称。

write(10, *) "hello" !在代码为10的文件中写入hello

stop

end program ex0901

open中有很多参数可以使用,详细如下:

OPEN(UNIT=number, FILE='filename', FORM='...', STATUS='...', ACCESS='...', RECL=length, ERR=label, IOSTAT=iostat, BLANK='...', POSITION='...', ACTION=action, PAD='...', DELIM='...')

UNIT='number': number必须是一个正整数,它可以使用变量或是常量来赋值。number最好避开1,2,5,6。因为2,6是默认的输出位置,也就是屏幕。1,5则是默认的输入位置,

键盘。

FILE='filename':指定要打开的文件名称,文件名要符合系统规定。windows下不区分大小写,unix下则会区分大小写,最好不要使用中文文件名。

FORM='FORMATTED' OR 'UNFORMATTED'

FORM字段只有两个值可以设置:

FORM='FORMATTED' “文本文件”格式来保存

FORM='UNFORMATTED' “二进制文件”格式保存

这一栏不给定时候的默认值是: FORM='FORMATTED'

STATUS='NEW' or 'OLD' or 'SCRATCH' or 'UNKNOWN' 用来说明打开一个新的文件或已经存在的旧文件。

STATUS='NEW' 打开一个原本不存在的新文件

STATUS='OLD' 打开一个原来已经存在的文件

STATUS='REPLACE' 若文件已经存在则重新创建一次,原来的内容消失;若不存在则会创建新文件。

STATUS='SCRATCH' 表示要打开一个暂存文盘,这个时候可以不需要指定文件名称,也就是FILE这个一栏可以忽略。因为程序本身会自动取一个文件名,至于文件名是啥也不重要,因为暂存盘会在程序结束后自动删除。

STATUS='UNKNOWN' 由各编译器自定义。通常会同REPLACE的效果。

!这一栏不给定时,默认为STATUS='UNKNOWN'。

ACCESS='SEQUENTIAL' or 'DIRECT' 设置读写文件的方法:

ACCESS='SEQUENTIAL' 读写文件的操作会以“顺序”的方法来做读写,“顺序读取文件”。

ACCESS='DIRET' 读写文件的操作可以任意指定位置,“直接读取文件”。

!不赋值时候,默认为: ACCESS='SEQUENTIAL'。

RECL=length 在顺序读取文件中,RECL字段值用来设置一次可以读取多大容量的数据。

打开“直接读取文件”,RECL=length的length值是用来设置文件中每一个模块单元的分

区长度。

length的单位在文本根式下为1个字符,也就是1 byte。在二进制格式下则由编译器自行决定,一般可能为1 byte (G77) 或 4 byte (Visual Fortran)。

ERR=LABEL 这个字段用来设置当文件打开发生错误时,程序会跳跃到LABEL所指定的行代码处来继续执行程序。

IOSTAT=var 这个字段会设置一个整数值给后面的整型变量,这是用来说明文件打开的状态,数值会有下面三种情况:

var>0 表示读取操作错误

var=0 表示读取操作正常

var<0 表示文件终了

BLANK='NULL' or 'ZERO' 用来设置输入数字时,当所设置的格式字段中有空格存在时所代表的意义。

BLANK='NULL'时,空格代表没有东西。BLANK='ZERO'时,空格部分会自动以0代入。

以下是Fortran 90添加的功能:

POSITION='ASIS' or 'REWIND' or 'APPEND' 设置文件打开时候的读写位置:

POSITION='ASIS' 表示文件打开时的读取的位置不特别指定,通常就是在文件的开头。是默认值。

POSITION='REWIND' 表示文件打开时的读取位置移到文件的开头。

POSITION='APPEND' 表示文件打开时的读取位置移到文件的结尾。

ACTION='READ' or 'WRITE' or 'READWRITE' 设置打开文件的读写权限:

ACTION='READWRITE' 表示所打开的文件可以用来读取及写入,这是默认值。

ACTION='READ' 表示所打开的文件只能用来读取数据。

ACTION='WRITE' 表示所打开的文件只能用来写入数据。

PAD='YES' or 'NO'

PAD='YES' 在格式化输入时,最前面的不足字段会自动以空格填满,默认值是PAD='YES'。

PAD='NO' 在格式化输入时,不足的字段不会自动以空格填满。

DELIM='APOSTEROPHE' or 'QUOTE' or 'NONE'

DELIM='NONE' 纯粹输出字符串内容

DELIM='QUOTE' 输出字符串内容会在前后加上双引号

DELIM='APOSTEROPHE' 输出字符串内容会在前后加上单引号

---------------------------------------

--

WRITE & READ的使用(详细):

WRITE/READ(UNIT=number, FMT=format, NML=namelist, REC=record, IOSTAT=stat, ERR=errlabel, END=endlabel, ADVANCE=advance, SIZE=size)

UNIT=number 指定read/write所使用的输入输出的位置。

FMT=format 指定输入输出格式的使用。

NML=namelist 指定读写某个NAMELIST的内容(后续介绍)。

REC=record 在直接读取文件中,设置所要读写的文件的模块位置。

IOSTAT=stat 会设置一个数值给在它后面的变量,用来说明文件的读写状态。

stat>0 表示读取操作发生错误。

stat=0 表示读取操作正常。

stat<0 表示文件终了。

ERR=errlabel 指定在读写过程中发生错误时,会转移到某个行代码来继续执行程序。END=endlabel 指定在读写到文件末尾时,要转移到某个行代码来继续执行程序。

以下是fortran 90添加功能:

ADVANCE='YES' or 'NO' 设置在文本格式下的顺序文件中,每一次的READ,WRITE命令完成后,

读写位置会不会自动想下移动一行。

ADVANCE='YES' 是默认的状态,每读写一次会向下移动一行。

ADVANCE='NO' 会暂停自动换行的操作。

!使用这个字段时候一定要设置输出入格式,在屏幕输出时可以使用这个设置来控制write命令是否会自动换行。

SIZE=count 在ADVANCE='NO'时,才可以使用这个字段。它会把这一次输出入的字符数目设置给后面的整型变量。

----------------------------------

查询文件的状态INQUIRE:

在使用open打开文件的前后,都可以通过inquire命令来查询文件目前的情况,inquire 命令中的各个字段和第一小节中open的字段很类似。

example: !检查某个程序是否存在

program ex0903

implicit none

character(len=20) :: filename = "ex0903.f90"

logical alive

inquire(file=filename, exist=alive)

if(alive) then

write (*, *) filename, " exist."

else

write (*, *) filename, "doesn't exist."

end if

stop

edn program ex0903

详细介绍inquire的使用方法:

INQUIRE(UNIT=number, FILE=filename, IOSTAT=stat, ERR=label, EXIST=exist, OPENED=opened, NUMBER=number, NAMED=named, ACCESS=access, SEQUENTIAL=sequential, DIRECT=direct, FORM=form, FORMATTED=formatted, UNFORMATTED=unformatted, RECL=recl)

UNIT=number 文件代号

FILE=filename 文件名

IOSTAT=stat 查询文件读取情况,会设置一个整数给后面的变量:

stat>0 文件读取操作错误

stat=0 文件读取操作正常

stat<0 文件终了

ERR=errlabel 发生错误时会转移到复制的代码行继续执行程序。

EXIST=exist 检查文件是否存在,返回布尔变量,真表示存在,假值表示不存在。OPEND=opened 检查文件是否用已经用open打开,返回布尔变量,真表示已经打开,假表示尚未打开。

NUMBER=number 用文件名来查询这个文件所给定的代码。

NAMED=named 查询文件是否取了名字,也就是检查文件是否为临时保存盘,返回值为逻辑数。

ACCESS=access 检查文件的读取格式,返回一个字符串,可以是:

'SEQUENTIAL' 代表文件使用顺序读取格式

'DIRECT' 代表文件使用直接读取格式

'UNDEFINED' 代表没有定义

SEQUENTIAL=sequential 查看文件是否使用顺序格式,会返回一个字符串,可以是:

'YES' 代表文件是顺序读取文件

'NO' 代表文件不是顺序读取文件

'UNKNOWN' 代表不知道

DIRECT=direct 查看文件是否使用直接格式,会返回一个字符串,可以是:

'YES' 文件是直接读取文件

'NO' 文件是非直接读取文件

'UNKNOWN' 代表不知道

FORM=form 查看文件的保存方法,返回字符串,可以是:

'FORMATTED' 打开的是文本文件

'UNFORMATTED' 打开的是二进制文件

'UNDEFINED' 没有定义

FORMATTED=fmt 查看文件是否是文本文件,返回字符串,可以是:

'YES' 本文件是文本文件

'NO' 本文件非文本文件

'UNDEFINED' 无法判断

UNFORMATTED=fmt 查看文件是否是二进制文件,返回字符串,可以是:

'YES' 本文件是二进制文件

'NO' 本文件非二进制文件

'UNKNOWN' 无法判断

RECL=length 返回open文件时recl栏的设置值。

NEXTREC=nr 返回下一次文件读写的位置。

BLANK=blank 返回值是字符串,用来查看open文件时的blank参数所给定的字符串值。

以下是fortran 90的添加功能:

POSITION=position 返回打开文件时position字段所给定的字符串, 可能是'REWIND',

'APPEND', 'ASIS', 'UNDEFINED'

ACTION=action 返回打开文件时action 字段所赋值的字符串,可能是'READ', 'WRITE',

'READWRITE'。

READ=read 返回字符串,检查文件是否为只读文件:

'YES' 文件是只读的

'NO' 文件不是只读的

'UNKNOWN' 无法判断

WRITE=write 返回一个字符串,检查文件是否可写入:

'YES' 文件可以写入

'NO' 文件不可以写入

'UNKNOWN' 无法判定

READWRITE=readwrite 返回一个字符串,检查文件是否可以同时读及写:

'YES' 文件可以同时读写

'NO' 文件不可以同时读写

'UNKNOWN' 无法判定

DELIM=delim 返回打开文件时,DELIM字段所设置的字符串,返回值可以是:

'APOSTROPHE', 'QUOTE', 'NONE', 'UNDEFINED'

PAD=pad 返回打开文件时PAD字段所设置的字符串,返回值可以是:'YES', 'NO'。

其他文件运行命令:

BACKSPACE(UNIT=number, ERR=errlabel, IOSTAT=iostat) 把文件读写位置退回一步。ENDFILE(UNNIT=number, ERR=errlabel, IOSTAT=iostat)使用这个命令会把目前文件的读写位置变成文件的结尾。

REWIND(UNIT=number, ERR=errlabel, IOSTAT=iostat)把文件的读写位置倒回到文件开头。

CLOSE(UNIT=number, STATUS=string, ERR=errlabel, IOSTAT=) 把文件关闭,不要进行读写操作。

STAT='KEEP' 会在文件关闭后,保留这个文件。是默认状态。

STAT='DELETE' 在文件关闭后,消除这个文件。

---------------------------------------

----

!程序结束时候会自动关闭文件,不过最好要养成自己关闭文件的习惯。

!在读文件的时候要懂得略掉一些没有必要的数据,如文件中的注释行。

!自由格式的数据文件读取(可以先读入前面的判断字符,结合select case或其他方法判断读入的数据)

!在open,read,write时使用不同的unit值,就可以打开多个文件。最好不要同时打开很多个文件。

顺序文件(SEQUENTIAL):在读写时,不能任意赋值到文件的某个位置读写数据,只能从开头开始一步步向下进行。在改变文件读写位置时,只能一步步地退,或是直接移回到文件开头。

直接访问文件:把文件的空间,内容,事先分区成好几个同样大小的小模块,这些模块会自动安顺序编号。读写文件时,要先赋值文件读写位置在第几个模块,再进行读写的工作。直接访问文件可以任意到文件的任何一个地方来读写。在使用直接访问文件时,要小心使用endfile命令,使用这个命令会把目前所在的文件位置之后的数据都清除掉。

二进制文件的操作:使用二进制文件来做直接读取时,open命令中的recl字段所设置的

整数n值所代表的大小会随编译器不同而改变。每个编译器应该都可以经过设置来改变

recl字段的单位大小。二进制文件没有必要在数据之间用区分符号来增加文件的可读性,因为二进制文件本身就没有可读性。二进制文件是直接把内存的二进制数据写入文件,就没有所谓的格式化输入/出存在。存放“精确”及“大量”的数据时,使用二进制文件是比较好的选择。二进制文件也可以使用顺序格式来操作,顺序格式下显示来的二进制文件,每个数据的前后都会被编译器补上一些额外的信息,所生成的文件不太容易被其他程序读取。

关于以上文件操作详细见《fortran 95程序设计》9-3~9-5。

Internal File(内部文件)

使用写入文件的方法,把数据写到一个字符串变量中。

example:

a=2

b=3

character (len=20) :: string

write (unit=string, fmt="(I2,'+',I2,'=',I2)") a, b, a+b !把字符串变量当作输出的目的。

write(*, *) string

结果: 2+ 3= 5

还可以经过read命令从字符串读入数据:

integer :: a

character (len=20) :: string="123"

read(string, *) a

write(*, *) a

在某些情况下需要使用内部文件来设置数据:

使用read命令从键盘输入数据时,如果用户输入错误的数据,会导致死机。如需要输入整数时却输入英文字母,就可能会死机。比较好的处理办法是,程序先暂时把数据当作字符串读入,检查字符串中是否含有不合理的字符,如果字符串中都是0~9的数字字符,就把字符串转成整数,不然就请用户在输入一次。

内部文件还可应用在动态改变输出格式,输出格式可以事先存放在字符串中,程序进行时,动态改变字符串内容就可以改变输出格式。(见书P263)

NAMELIST:

NAMELIST是很特殊的输入/输出方法,收录在f90标准当中,f90中有统一NAMELIST的格式。

NAMELIST可以把一组相关变量封装在一起,输入/出这一组变量时,只要在write/read 中的NML字段赋值使用哪一个NAMELIST就行了。

example:

program ex0918

implicit none

integer :: a = 1, b = 2, c= 3

namelist /na/ a,b,c

write(*,nml=na)

stop

end program ex0918

&NA

A = 1,

B = 2,

C = 3,

/

程序中把a,b,c这三个变量放在名字叫做na的namelist中。namelist也算是声明的一部分,必须编写在程序执行命令前面。

NAMELIST的语法很类似COMMON,不过使用namelist时一定要取名字:

namelist /nl_name/ var1, var2, ... !后面的变量会放在nl_name这个namelist中。

封装好namelist后,在write的NML字段中指名要输出哪一个namelist,就可以把namelist中的变量全部输出。

write(*,nml=na) !输出na这个namelist

输出namelist时候不能赋值输出格式,f90标准中规定输出namelist时首先会输出符号&,后面紧接着这个namelist的名字。接着会根据顺序输出变量的名称,等号以及内容,变量之间用空格或逗号来做分隔,最后使用除号来作结束。

至于每个数值内容会使用何种格式输出由编译器自行决定。

NAMELIST也可以用来输入数据,不过通常都会用来读取文件,不会用在键盘输入。输入格式需要按照前面的格式。&na ....../ 不需要按照变量顺序输入,程序会自动按照变量名称来设置数值。变量甚至可以重复输入,不过变量会得到最后一次设置的数值。

namelist通常使用在文本文件的输入/输出中,使用read从文件中读取数据时,会自动从目前的位置向下寻找存放namelist的地方。

example:

program ex0920

implicit none

integer :: a(3)

namelist /na/ a

open(10, file="ex0920.txt")

read(10, nml=na)

write(*, "(3I2)") a

stop

end program

输入文件的内容如下:

happy birthday

&na a = 1,2,3/

程序打开时,读写位置在文件的开头,read命令会自动向下寻找na这个namelist的存放位置来读取数据,这边可以看到namelist处理数组的方法,它会在等号后面根据顺序显示数组内容。

fortran文件读取技巧

最近专业课海洋要素计算作业需要用fortran编程读取验潮站资料(如下,是txt,其中数据是有62行,限于篇幅,我只截取了前5行数据外加验潮站的4行头信息) !要注意的是最后一列数据后面没有空格 program ex1 !********************************************** !* written by 潘海东, 2015,3,20 !*一次性读取744个数据,放入一维数组中 !*(如果一次性读取太多的话可能会对系统造成某些影响) !********************************************** INTEGER :: b(62*12),i character(len=20) time,location,u1,u2 open(10, file = 'C:\Users\Administrator\Desktop\sjs_t_97aug_m(harmonic).txt', status = 'old') !********读取头信息 read(10,"(A3)") u1 read(10,"(A18)") time read(10,"(A13)") location read(10,"(A2)") u2 !********读取数据 read(10,100) b(:) 100 format(61(11(I4,1x),I4,/),11(I4,1x),I4) !在fortran的输入输出中'/'代表换行 close(10) end program ex2 !********************************************** !* written by 潘海东, 2015,3,20 !*读取第3列至第11列 !********************************************** INTEGER :: a(62,9),i character(len=20) time,location,u1,u2 open(10, file = 'C:\Users\Administrator\Desktop\sjs_t_97aug_m(harmonic).txt', status = 'old') !***读取头信息

liGrads讲义(1)

Last Update: Feb 25, 2008

GRADS (Grid Analysis and Display System) 讲义(1) 内容提要 一、引言 二、GrADS绘图软件包的安装 三、运行GrADS绘图软件包

一、引言 1.绘图工具的选择 1)实用 2)方便 3)美观 4)高效 5)取长补短;不同的软件可相互补充使用。2.气象常用绘图软件 MICAPS Excel------1D形 Grapher----1D GrADS----1D和2D平面图 Surfer-----2D平面图和3D曲面 NCL----1D、2D平面图和3D曲面

Vis5D----1D、2D平面图和3D曲面 MatLab---1D、2D平面图和3D曲面 3.学习GrADS软件的目的和要求 1)侧重于画图及图形美观,为毕业论文做准备。 2)熟悉基本概念及基本绘图指令,学会简单编程。 4.为什么选择GrADS软件 1)专门为从事大气海洋研究的科研和业务人员设计(COLA的Brian Doty)。 2)完全免费的软件。 GrADS主页https://www.doczj.com/doc/d916625371.html,/grads/ 中文讨论区:LASG动力论坛(中文手册下载、讨论)

3)需要读取的数据文件是无格式数据文件,体积小,运算速度快。 4)可以在目前流行的操作系统下安装,如PC 的Windows系列, Linux, 和工作站下的 UNIX. 5、实用文档 1)GrADS绘图基础教程马红云等 2)LASG编《GrADS适用手册》 3)GrADS reference card---绘图命令和函数查 询 放在手边,随时查找命令。

用Grads处理GRIB格式文件的准备_2007-07-12

Grads处理GRIB格式文件的准备 LYanbing 2007-7-2初稿,2007-7-12修改1 开场说明 WHAT IS GRIB? GRIB (GRIdded Binary) is an international, public, binary format for the efficient storage of meteorological/oceanographic variables. Typically, GRIB data consists of a sequence of 2-D (lon,lat) chunks of a (in most general sense) 4-D variable (e.g., u comp on the wind = f(lon,lat,level,time)). The sequence is commonly organized in files containing all variables at a particular time (i.e., 3-D (lon,lat,level) volume). 大气所的NCEP再分析资料使用这种格式。 这里针对6小时一次的1°×1°,26层数据来处理。 Grads中识别路径的方式基本为Unix的方式,即路径中用斜杠/,而不是反斜杠\,cmd中也支持这种方式,所以,使用Grads及其相关组件时,指定路径用斜杠/会很方便。 Grads中用!pwd可以看到当前目录,C:盘对应/cygdrive/c/,d:盘对应/cygdrive/d/。cmd中用pwd看到的也是如此,cygdrive是怎么来的?与cygwin程序有关,它能把Unix程序嫁接到windows下使用,它的目录系统以/cygdrive/为根目录。 如果ctl文件中,数据文件指定不是全路径,而是^,则可以在open命令中指定上述形式的全路径,例如: ga-> open /cygdrive/d/data/ncep/grib2006060100.ctl 它等效于: ga-> open d:/data/ncep/grib2006060100.ctl 2 生成描述文件 PCGrads软件的User’s Guide中介绍了GRIB及其处理方法,但不完全。实际上有两种方法:1)利用工具grib2ctl.exe生成整个文件的描述文件.ctl,再利用工具gribmap.exe生成映射文件.idx;2)利用工具wgrib.exe解码文件中需要使用的部分记录,建立新的数据文件,然后人工建立描述文件.ctl。 为了使用方便,环境变量Path中增加Grads可执行文件所在目录,则在cmd中其他路径下亦可访问所有该目录下的工具。 2.1 方法1 使用工具grib2ctl.exe生成GRIB数据文件的描述文件ctl,之后还要使用gribmap工具生成映射文件.idx。 1. 工具grib2ctl.exe的获得。

GrADSctl文件编写

Components of a GrADS Data Descriptor File DSET data_filename back to top This entry specifies the filename of the data file being described. If the data and the descriptor file are not in the same directory, then data_filename must include a full path. If a ^ character is placed in front of data_filename, then data_filename is assumed to be relative to the path of the descriptor file. If you are using the ^ character in the DSET entry, then the descriptor file and the data file may be moved to a new directory without changing any entries in the data descriptor file, provided their relative paths remain the same. For example: If the data descriptor file is: /data/wx/grads/sa.ctl and the binary data file is: /data/wx/grads/sa.dat then the data file name in the data descriptor file can be: DSET ^sa.dat instead of: DSET /data/wx/grads/sa.dat If data_filename does not include a full path or a ^, then GrADS will only look for data files in the directory where you are running GrADS. GrADS allows you use a single DSET entry to aggregate multiple data files and handle them as if they were one individual file. The individual data files must be identical in all dimensions except time, and the time range of each individual file must be indicated it its filename. To accomplish this, the DSET entry has a substitution template instead of a filename. See the section on Using Templates for a description of all the possible components of the template. Second, the OPTIONS entry must contain the template keyword. CHSUB t1 t2 string back to top (GrADS version 1.9b4) This entry is used with a new option for templating data files that allows for any user-specified string substitution, instead of only date string substitution. This is useful when none of the standard template options match the time ranges in the files you wish to aggregate, or if the files are located on different disks. When you put the %ch template in your DSET entry, then you also need to put additional CHSUB entries in the descriptor file. The string will be substituted for%ch in the data file name for the time steps beginning with t1 and ending with t2.See the section on Using Templates for examples. DTYPE keyword back to top The DTYPE entry specifies the type of data being described. There are four options: grib, hdfsds, netcdf, or station. If the data type is none of these, then the DTYPE entry is omitted completely from the descriptor file and GrADS will assume the data type is gridded binary.

fortran心得

Read 的规则: 按行读取,每次读一行,读完后光标自动跳到下一行的开头,空格和逗号代表结束(所以空格和逗号也是读取的一部分的话,需要使用“输入输出格式”) 如果想要将一行数据读入数组,代码为: Read(10,*) s(:,:,:) 不用规定输入输出格式,因为会根据s(:,:,:)确定需要读入的数字的个数,然后fortran会按部就班的读取,甚至文件中当前这一行的数字个数不足以填满s(:,:,:)的时候,read会自动跳到下一行继续搜索数字,直到填满s(:,:,:)为止。 但是需要注意给数组赋值的顺序:read会把它搜索到的第一个数字给s(1,1,1),第二个给s(2,1,1),第三个给s(3,1,1)… 程序9 1: 将read(unit=field,fmt="(A79)",iostat=status)buffer 中的A79改为A2,结果只输出每行的前两个字符,说明read是按整行整行读取的。 中间空了几行之后,空行之后的内容还是能被读取和输出,这说明,空行和空白是不一样的:空行也算是一种文本内容,因此不会终止读取,而空白意味着结束。 !读取文件 program main implicit none character(len=79)::filename="number.txt",buffer integer,parameter::field=10 integer::status=0 logical alive inquire(file=filename,exist=alive) if(alive)then open(unit=field,file=filename) do while(.true.) read(unit=field,fmt="(A79)",iostat=status)buffer if(status/=0)exit write(*,"(A79)")buffer end do else write(*,*)filename,"does't exist." end if pause stop end program main ============================================= 附number.txt =============================== 1234555666

FNL_1x1资料认识与应用(GrADS)- 兰溪整合版(grib1 grib2)

FNL 1X1 资料认识与应用 兰溪之水整合版2011-12-16 14:34:05(第一版) 2012-05-01 22:42:49(第二版)FNL 1.0X1.0数据下载地址:https://www.doczj.com/doc/d916625371.html,/datasets/ds083.2/需要注册通过方可下载。 FNL 1.0X1.0 资料包含的物理量及其缩写 缩写参数名称 No4LFTXsfc 近地表四层等压面的抬升指数 No5WAVAprs 500 hPa等压面位势高度距平 No5WAVHprs 500 hPa等压面位势高度 ABSVprs 绝对涡度 CAPE 对流有效位能 CIN 对流抑制能 CLWMRprs 云水 CWATclm 气柱云水 GPAprs 位势高度距平 HGT 位势高度 HPBLsfc 地表行星边界层高度 ICECsfc 海冰密集度 LANDsfc 陆地覆盖 LFTXsfc 地表抬升指数 O3MRprs 臭氧层混合比 POTsig995 位温 PRE 气压 PWATclm 可降水量 RH 相对湿度 SOILW 土壤体积含水量 SPFH 比湿 TCDCcvl 对流云总云量 TM 温度 TOZNEclm 臭氧含量 UGRD u分量 VGRD v 分量 VVEL 垂直速度 VWSH 垂直风切变 WEASDsfc 累积雪量

GrADS处理FNL 1.0X1.0(grib1)数据 处理前需要先将grib2ctl.exe放到GrADS安装文件夹GrADS19\win32(1.9版本)或OpenGrADS\Contents\Cygwin\Versions\2.0.a9.oga.1\i686(2.0版本)下,方便操作。gribmap.exe(这个GrADS自带的) 第一步:先生成一个描述文件ctl 打开命令提示符, C:\Documents and Settings\Administrator>grib2ctl grib_file > grib_file.ctl 如: 或者进入GrADS: gs>!grib2ctl grib_file > grib_file.ctl (!表示调用外部的程序,注意路径用“/”) 如: 这样fnl_20101013_00_00_c.ctl描述文件就生成了! 第二步:利用GrADS自带的gribmap.exe生成索引文件: C:\Documents and Settings\Administrator>gribmap –v –i grib_file.ctl > b.txt 如: 或进入GrADS: 这样就会在H:\test路径下生成名为fnl_20101013_00_00_c.idx的索引文件,并会把整个映射过程写入到b.txt文件中,当然这里也可省略查看映射过程,即 C:\Documents and Settings\Administrator>gribmap –i grib_file.ctl 这样就可以开始用GrADS读取FNL文件画图了! 不过我们处理FNL资料的时候一般都是不止一个文件,所以我们就需要用到批处理了! 第一步:利用grib2ctl.exe生成初始时刻ncep数据的ctl文件;示例中生成的是fnl_20101013_00_00_c数据的文件。

Fortran进行批处理地方法

Fortran中批量处理文件的方法总结 —循环读取目录下的所有符合条件的文件===================== 一、简单的介绍 在一年之前,我写过一个程序,主要是对Micaps资料进行批量处理,将逐日资料处理为旬、月的数据,在那个程序中,始终有一个问题困扰我,就是如何自动生成该读取的下一个文件名,这使我真正开始关注fortran中的批处理,时隔一年,决定写下这些文字,将我用到的一些fortran批处理的方法和大家共享,交流。 对于那些只要会用程序,不求其中原理的朋友,请马上跳过这些文字,直接去下载附件吧!程序里有使用说明,但是,如果你不懂原理,估计现成的程序你使用起来也会碰壁哦! 这里所说的批处理是指对某一个目录下的指定后缀的文件的批量读取和处理。 我总结的批处理方法大概可以用下面这个示意图来说明: | | |将文件目录写入一个文本文件,供fortran循环读取 |————手动输入文件名 |————运行程序之前命令行工具导出文件名 |————程序运行后,未开始计算之前,生成文件名 | ————调用CMD命令生成 | ————GETFILEINFOQQ方法生成 | ————调用WIN32API生成 | |在程序运行时动态生成文件名 | | 对于第一种方法,我将主要介绍如何将目录写入文件,然后举出一个小的示例来验证。第二种方法主要是说明其思路。 二、方法的介绍 1、将文件目录写入一个文本文件,供fortran循环读取 1.1、手动输入文件名 这是最基本的方法啦,如果文件个数不多,而且文件名中包含了空格等特殊字符的话,建议使用这种方法,在这里就不多说啦,至于在fortran中的处理,等几个小方法介绍完之后会有一个例子来说明。

fortran新建,添加外部文件和简要读写格式说明

1.建立新的运行空间 File>new>workspace>new>prject>console application>new>file>free-form 2.建立多个文件 可以把子程序文件和主程序文件放在同一个source文件下 3.建立外部文件用于读写数据 Open(1,file=’ exam.txt ‘)用于打开文件,其中1为设备号——用一整数表示,exam.txt为要打开的文件名,文件有文件名和文件类型构成,文件名可给出路径如file=’ D:\exam\exam.txt ‘Write(1,*)’学生的成绩为:’用于在写在前面打开的1文件里写数据,其中*和0、5、6是系统预定义的设备号由系统隐含规定。一个文件名只能和一个设备号建立联系,同样一个设备号也只能与一个文件建立联系,一个通过OPEN语句打开并指定了设备号的文件不能再次用OPEN语句打开 Read(1,*)表示从文件里面读取数据,一次读取一个数据,数据间用逗号隔开 每隔一个read语句或write语句默认的换一行读入或写入 Write(1,”(‘输入’)”)=write(1,*) ‘输入’ Write(1,”(‘I3,’输出’,I7)”) x,y结果是x以3个整型字符输出,输出,y以7个整型输出 Read(1,100)或write(1,100)I,j,k 100 format(I3,I7,F6)表示按照100语句的格式读入或输出顺序读写数据: Read(uint设备号,fmt格式说明,end结束语句转移,eor错误语句转移) 输入数据可以按规定的域宽输入,也可以用逗号强制间隔, 1.使用read语句读取数据时,read语句输入表中的数据类型和格式应该与当前指针位置 数据类型和格式一致。 2.使用read语句读取数据时,从当前文件指针开始读取,完成读取后文件指针自动后移一 个记录,使用OPEN和REWIND语句时,文件指针指向第一个记录,从第一个记录开始读取。 3.使用read语句读取时,如果输入表要求输入的数据少于当前记录的数据个数,则多余的 数据将被忽略,下一个read语句从下一个新的记录开始读取数据。相反则继续读取下条数据记录直到读完全部输入数据。 4.使用write语句时,从当前文件指针开始存写,完成存写后文件指针自动后移一个记录, 使用OPEN和REWIND语句时,文件指针指向第一个记录,从第一个记录开始读取。如果文件已存在,则原文件的数据将丢失。 5.使用write语句写入数据时,从当前的位置开始写入,可使用format语句中的格式说明 及括号和反斜杠/创建多条新纪录写入,完成操作后,文件指针自动后移一个记录。6.使用了read以后,立即使用write语句,将导致写入的数据为最后一个记录,其余的数 据将丢失。如果在文件末尾要写入新的记录可以通过下了语句实现: 100 read(1,*,end=200) Goto 100 200 write(1,*)’’ 7.使用了write语句立即使用read语句会遇到一个文件结束标志。如果写入后要立即进行 读取,需要用OPEN、rewind、backspace等对文件重新定位。 文件打开操作: Open(unit=设备号,file=文件名,access=存取方式,form=存取格式,recl=记录长度,err=错误转移,pad=补加空格,position=读取位置) 如err=100,表示跳到100号语句 Position 为文件位置包括三个格式,ASIS,已存在文件的上一次操作位置为文件的位置,缺

GrADS绘图软件安装及入门

GrADS绘图软件安装于入门

目录 第一章GrADS绘图软件概述 1.GrADS绘图软件简介 2.GrADS绘图软件的安装(windows环境) 3.1在windows环境下安装GrADS软件包第二章GrADS绘图模板 1.GrADS示例演示 启动GrADS 退出GrADS 示例演示GrADS命令的使用

第二章GrADS绘图软件概述 1GrADS绘图软件简介 The Grid Analysis and Display System(GrADS) 是一套应用广泛、使用方便的科学数据绘图软件包。其主要特点: GrADS属于自由软件,可以从Internet上免费获得。 可运行于各种Windows 和Unix工作平台。 GrADS可用于4D数据的分析。既经度、纬度、层(气压层、高度层等)和时间/xyzt 4维。数据可以是格点化的数据或离散点数据。GrADS特 别适用于气象类数据的分析。但也完全可以用于更广泛类型的数据分 析。 GrADS有多种显示方式:等值线、流线、矢量图、风矢量图、站点填图、折线图、直方图等多种两维图形。 可处理多种数据格式的数据。GRIB、NetCDF、HDF-SDS等通用数据格式 和系统自定义的一种二进制数据格式。 采用命令行输入的方式交互式地显示图形。并有多种命令对数据进行再 加工。如求平均;计算涡度、散度、垂直积分、计算差分等。 图形可以按多种格式存储:ps、png、jpg、tiff、gif、windows metafile 等。自身以 metafile格式存储。 提供多种辅助工具软件。如看图、打印、图形格式转换(gv)等工具。2Internet上的GrADS资源 GrADS在Internet上的主页 GrADS主页地址:从GrADS主页上可以找到预编译好了的适合于windows环境下的GrADS软件包, windows环境下GrADS资源

气象绘图软件GrADS高级使用技巧

收稿日期:2002-11-1 作者简介:高文良,男,31岁,主要从事短期气候预测等研究工作。 气象绘图软件GrADS 高级使用技巧 高文良1 刘晓燕2 曾小东3 (11成都高原气象研究所 成都 610072; 21阿坝州金川县气象局 624100 31阿坝州马尔康县气象局 624000 ) 摘 要:本文通过介绍气象绘图软件GrADS 使用中 的一些高级技巧,分析了GrADS Script 语言中的难理解之处,并介绍了在GrADS 中做合成分析和t 检验的程序,可以对学习和使用GrADS 的科研人员起参考、帮助作用,达到事半功倍的效果,促进GrADS 软件的应用更广泛、深入,提高科研人员的工作效率。关键词:GrADS ;技巧;程序中图分类号:TP391文献标识码:C 文章编号:1003-7187(2002)04-0057-03 1 引言 气象绘图软件GrADS (Grid Analysis and Dis 2play System )是免费共享软件,可随时从互联网上下载(http ://https://www.doczj.com/doc/d916625371.html,/grads/),后续版本正陆续推出[1]。GrADS 有丰富的内部函数,可以对数据进行计算和分析处理。它支持处理格点资料和站点资料,并且支持对GriB 码文件、特殊格式文件(如一字节整型、二字节整型、大中型机器二进制数据等)的直接读取,气象科研领域应用非常广泛[2]。在其最新1.8SL 9版本中,GrADS 又将应用领域推进到了海洋学科,功能也得到了进一步地增强和扩展。 但在使用GrADS 的过程中,特别是使用GrADS Script 语言编程当中,有一些问题需要特别注意。因为GrADS Script 语言是一种类似于VB Script (或MA TL AB Script )的高级语言,稍不注意就容易出现错误,且查错十分困难,这点与其他语言有较大的差别。2 站点数据处理 GrADS 中站点数据处理基于格点数据的基础之上,需先将站点数据通过Cressman 客观分析方法内插至格点上,然后再依照格点资料的处理方式对站点资料数据进行分析和处理。所以,内插的背景网格点的选取就显得比较重要。提供背景格点资料数据只起一个背景网格场的作用,格点数据并不参与运算,只提供网格背景,告诉站点数据插至什么点及各个点的距离、综合考虑几个点来插值等信息。 因此,对于需要揭示小尺度特征气象场的站点数据,就需要将背景网格点的间距取得小一些,这样可以将局地小尺度信息完整地体现出来。反之,如果要强调大尺度的信息,就可以将背景格点场的间距取得大一些,将小尺度的噪声滤掉,体现大尺度场的特征。两种方法的最终目的是画出真实而美观的原始数据场的图形。 要将已有的站点数据资料转换成GrADS 可以读取格式的站点数据,也可使用Visual Fortran 6.0或C 语言(Turbo C 、Visual C ++等)进行转换。但必须按照GrADS 的规定格式来变换。数据文件头的结构和定义也必须按规定且与后续数据一致。在Visual Fortran 6.0语言中可以用流式文件(Stream )的方式生成GrADS 需要的站点数据文件,可以写成多时次、多层次和多变量的数据集(在Power Station 4.0中则不能写成多时次和多层次的数据集,它不支持Stream 方式的文件,只能写一个时次的数据)。而在C 语言中的操作更加方便,因为C 语言中对文件的操作方式一般是以字节为单位进行的,没有其他多余的信息。只要按照GrADS 要求的数据格式生成数据,以上的各种语言环境下都能够被GrADS 正确读取。 另一个需注意的问题是在格点文件和站点文件之间,一定使两者的数据描述文件保持时间上的一致性。起始时间和时间步长都要符合数据本身的规定。如果起始时间不一致,在GrADS 中会出现少于两个站的提示,画出的图被标示为缺测值。如果上述两种数据的时间步长不一致,则可能出现错误的结果,导致在一个特定时间下的数据成为另一个时间下的数据,而不是操作者想要的时次。或者图形的结果和前面第一种错误一样,出现全为缺测值的错误情况。

grads处理多个ctl文件和nc文件

grads处理多个ctl文件和nc文件 2011-10-10 21:03:59| 分类:grads学习| 标签:|举报|字号大中小订阅 下载LOFTER我的照片书 | 用grads处理多个相同格式的数据时若单个单个处理非常麻烦,当文件非常多的时候是单个处理是不实际的。下面介绍一种方法; 第一步,在这种情况下可以重新写一个ctl描述文件,其文件变量都和已知的ctl相同,若原来的n 文件只是时间不同,那么新描述文件的时间维数是所有原文件的时间的和。同样,若其他维数不同时也用同样的方法处理。 第二步,在第一行之后添加一行:options template 表示多个时间序列原始数据文件想用一个描述文件统一地描述。这些原数据的原文件名由dset定义的形势命名文件名。 第三步,修改dset 的文件名。原路径不变,把文件名用%表示。其中: %y2 代表两位数年 %y4 代表四位数年 %m1 代表一位或者两位数的月 %m2 代表两位数月(用0补齐1位数) %mc 3个字符月份的缩写 %d1 1或2位天 %d2 两位天 %h1 1或者2位时 %h2 2位时 例如: 原文件其中之一的文件名为gdas2006050812f00,且所有文件只有天和时的变化 那么新描述文件的文件名为:gdas200605%d2%h2f00 另外如果源文件里有index项的话,需要修改其idx的文件名,假设改成fnl.idx。并用在dos下用gribmap函数生成一个新的idx文件。gribmap -e -i fnl.ctl(加绝对路径) open fnl.ctl就可以打开所有文件。 *************************************************************************************************************** *******************

fortran文件操作

fortran文件操作 From: 《Fortran 95 程序设计》彭国伦 1.文件读取的概念: 读取:“顺序读取”和“直接读取”。 保存:“文本文件”和“二进制文件”。 二进制文件:读取快,因为保存格式和数据在内存中的保存方法一样,同时也节省空间。 ---------------------------------- 2. 文件的操作: ---------------------------------- open的使用:使用open命令打开文件之后,就可以对文件来做输入输出。 example: program ex0901 impicit none open(unit=10, file='hello.txt') ! 打开hello.txt文件, unit指定文件代码,file 指定文件名称。 write(10, *) "hello" !在代码为10的文件中写入hello stop end program ex0901 open中有很多参数可以使用,详细如下: OPEN(UNIT=number, FILE='filename', FORM='...', STATUS='...', ACCESS='...', RECL=length, ERR=label, IOSTAT=iostat, BLANK='...', POSITION='...', ACTION=action, PAD='...', DELIM='...') UNIT='number': number必须是一个正整数,它可以使用变量或是常量来赋值。number最好避开1,2,5,6。因为2,6是默认的输出位置,也就是屏幕。1,5则是默认的输入位置,键盘。 FILE='filename':指定要打开的文件名称,文件名要符合系统规定。windows下不区分大小写,unix下则会区分大小写,最好不要使用中文文件名。 FORM='FORMATTED' OR 'UNFORMATTED' FORM字段只有两个值可以设置: FORM='FORMATTED' “文本文件”格式来保存 FORM='UNFORMATTED' “二进制文件”格式保存 这一栏不给定时候的默认值是: FORM='FORMATTED' STATUS='NEW' or 'OLD' or 'SCRATCH' or 'UNKNOWN' 用来说明打开一个新的文件或已经存在的旧文件。 STATUS='NEW' 打开一个原本不存在的新文件 STATUS='OLD' 打开一个原来已经存在的文件 STATUS='REPLACE' 若文件已经存在则重新创建一次,原来的内容消失;若不存在则会创建新文件。 STATUS='SCRATCH' 表示要打开一个暂存文盘,这个时候可以不需要指定文件名称,也就是FILE这个一栏可以忽略。因为程序本身会自动取一个文件名,至于文件名是啥也不重要,因为暂存盘会在程序结束后自动删除。 STATUS='UNKNOWN' 由各编译器自定义。通常会同REPLACE的效果。 !这一栏不给定时,默认为STATUS='UNKNOWN'。 ACCESS='SEQUENTIAL' or 'DIRECT' 设置读写文件的方法:

GrADS教程

第一讲 GrADS简介 一、G r A D S的应用领域及其功能 *GrADS的全称:“The Grid Analysis and Display System” *应用领域:可在UNIX工作站以及个人微机上进行地球科学领域的数据资料分析和绘图 *功能:对数据进行访问、分析和绘图 1.可以根据需要绘制单线图、直方图、等值线图、填色等值线图、流线图、矢量图、站点模型图等各类图形. 2.用描述语言编程,达到理想的绘图效果 3.可以把在GrADS中绘制的图形以文件的形式保存起来,以备对其进行编辑 4.调用GrADS的内部函数,能够对数据进行某些特定的计算,然后输出计算结果 二、GrADS中常用的基本概念 *数据格式:GrADS能够识别的数据为二进制无格式直接或顺序记录格式,该种格式数据的生成可以通过Fortran语言编程来实现。 *数据类型:格点数据(NCEP/NCAR的再分析资料)、站点数据(站点实测资料)、Grib数据(NMC产品)。*维数环境:GrADS的操作对象为4维的数据集(4D data set),包括空间三维(纬度、经度、高度)和时间一维。可以固定其中的一维或者几维以获得低于四维的数据子集。此概念是对于格点资料而言的。维数环境的定义可以在两种坐标上进行。一种是地球坐标(world coordinate),以经纬度为度量单位;一种是格点坐标(grid coordinate),以网格点数为度量单位。 *几种文件类型: *.dat―数据文件 *.ctl—原始数据描述文件 *.gs―GrADS控制文件,用命令run执行之 *.exe―GrADS在DOS环境下的各种执行文件 三、启动和退出GrADS *启动GrADS的两种方式: 1.在dos环境下直接输入grads命令 即:切换到MS-DOS方式,进入到 F:\pcgrads\msdos子目录下 输入:grads 回车 2.从windows桌面上的“我的电脑”进入F:\pcgrads\子目录,然后双击g.exe图标 *注意:在启动GrADS时,系统会问你以何种方式进入。此时有四个参数可供选择:b—以批处理的形式运行GrADS l—以风景画的形式运行GrADS,此时其硬拷贝输出的区域大小为11×8.5英寸。 p—以肖像画的形式运行GrADS,此时其硬拷贝输出的区域大小为8.5 ×11英寸。 c—在GrADS启动后,首先执行其后提供的命令。 如果直接键入回车,GrADS将以风景画的形式启动。 *因此,在画图时要注意,不要把画图区域取得超过硬拷贝输出区域的大小。 *进入GrADS后一般可以看到两个窗口,上面一个为字符窗口,可以输入命令以及显示执行命令后的回应信息;下面一个为图形输出窗口。两个窗口中红色的为当前窗口。 *退出GrADS时,在字符窗口中键入:

FORTRAN新建,添加外部文件和简要读写格式说明

1.建立新的运行空间 File>new>workspace>new>prject>console application>new>file>free-form 2.建立多个文件 可以把子程序文件和主程序文件放在同一个source文件下 3.建立外部文件用于读写数据 Open(1,file=’ exam.txt ‘)用于打开文件,其中1为设备号——用一整数表示,exam.txt 为要打开的文件名,文件有文件名和文件类型构成,文件名可给出路径如file=’D:\exam\exam.txt ‘ Write(1,*)’学生的成绩为:’用于在写在前面打开的1文件里写数据,其中*和0、5、6是系统预定义的设备号由系统隐含规定。一个文件名只能和一个设备号建立联系,同样一个设备号也只能与一个文件建立联系,一个通过OPEN语句打开并指定了设备号的文件不能再次用OPEN语句打开 Read(1,*)表示从文件里面读取数据,一次读取一个数据,数据间用逗号隔开 每隔一个read语句或write语句默认的换一行读入或写入 Write(1,”(‘输入’)”)=write(1,*) ‘输入’ Write(1,”(‘I3,’输出’,I7)”) x,y结果是x以3个整型字符输出,输出,y以7个整型输出 Read(1,100)或write(1,100)I,j,k 100 format(I3,I7,F6)表示按照100语句的格式读入或输出顺序读写数据: Read(uint设备号,fmt格式说明,end结束语句转移,eor错误语句转移) 输入数据可以按规定的域宽输入,也可以用逗号强制间隔, 1. 使用read语句读取数据时,read语句输入表中的数据类型和格式应该与当前指针位置 数据类型和格式一致。 2. 使用read语句读取数据时,从当前文件指针开始读取,完成读取后文件指针自动后移一个记录,使用OPEN和REWIND语句时,文件指针指向第一个记录,从第一个记录开始读取。 3. 使用read语句读取时,如果输入表要求输入的数据少于当前记录的数据个数,则多余的数据将被忽略,下一个read语句从下一个新的记录开始读取数据。相反则继续读取下条数据记录直到读完全部输入数据。 4. 使用write语句时,从当前文件指针开始存写,完成存写后文件指针自动后移一个记录,使用OPEN和REWIND语句时,文件指针指向第一个记录,从第一个记录开始读取。如果文件已存在,则原文件的数据将丢失。 5. 使用write语句写入数据时,从当前的位置开始写入,可使用format语句中的格式说明及括号和反斜杠/创建多条新纪录写入,完成操作后,文件指针自动后移一个记录。 6. 使用了read以后,立即使用write语句,将导致写入的数据为最后一个记录,其余的数据将丢失。如果在文件末尾要写入新的记录可以通过下了语句实现: 100 read(1,*,end=200) Goto 100 200 write(1,*)’’ 7. 使用了write语句立即使用read语句会遇到一个文件结束标志。如果写入后要立即进行读取,需要用OPEN、rewind、backspace等对文件重新定位。 文件打开操作: Open(unit=设备号,file=文件名,access=存取方式,form=存取格式,recl=记录长度,err=错误转移,pad=补加空格,position=读取位置) 如err=100,表示跳到 100号语句

GrADS下任意方向垂直剖面的实现

GrADS下任意方向垂直剖面分布的实现 缪明何宏让 (解放军理工大学气象学院大气科学系) 余清平廖德敏 (93966部队气象室) 摘要在三维数值模拟研究中,常常要分析某一模式预报变量沿某一方向的垂直剖面分布,在GrADS下,用户可很方便地实现某一模式预报变量的经纬向垂直剖面分布的分析,但如何实现非经纬向的垂直剖面分布的分析?本文针对困扰一般GrADS用户的这个问题,提出了在GrADS下如何实现某一模式预报变量沿某一方向(经纬向和非经纬向)的垂直剖面分布的分析。试验表明,该法简单、易行、可靠,在实际中有较强的应用价值。 关键词:GrADS,垂直剖面分布 Abstract The vertical cross-section distribution of model prognostic variable often is needed to be analyzed in three dimensional numerical simulation. The user of GrADS easily realizes the distribution of meridional or zonal vertical cross-section, but how to realize the distribution of non-meridinal or non-zonal vertical cross-section is the problem which puzzles the users of GrADS. In this paper, a simple and reliable method is provided to resolve the problem. The experiments show that the method is applicable and practicable for user of GrADS to analyze the distribution of vertical cross-section in the research. . Key words: GrADS, distribution of vertical cross-section. 引言 GrADS(Grid Analysis and Display System)是当前气象学中应用最为广泛的图形图像处理软件之一,它功能强大,使用方便而深受用户的欢迎。利用它可直接实现图像的动画显示,在三维数值模拟研究中,在固定模式高度的情况下,可较为方便地显示某一模式预报量在该层次上的水平分布;在固定经(纬)度的情况下,还可方便地显示某一模式预报量沿该经(纬)度的经(纬)向垂直剖面分布。但在实际问题的三维数值模拟研究中,用户关心的不仅仅是模式预报量沿某一经纬向的垂直剖面分布,更多的时候用户关心的是沿某一方向的垂直剖面分布,但在GrADS下如何实现这一功能,这可能是困扰一般的GrADS用户的问题。其实,GrADS除了强大的图形图象的分析处理能力外,还有较强的数据处理能力,我们可利用GrADS的交互性和数据处理的特点,利用GrADS脚本语言的编程技术,按GrADS的数据格式,通过提取所要分析的模式预报量沿某一方向上的值(ascII码形式),然后再将提取ascII 码值转换成GrADS支持的二进制格式,并为转化后的数据编写相应的数据描述文件(ctl文件),在GrADS下打开它就可实现某一模式预报量沿该方向的垂直剖面分布的分析。 一、实现的思想和步骤 在介绍实现的思想和gs编程(GrADS Script programing)之前先说明GrADS下某些基本的常识和某些基本命令的含义和功能。

相关主题
文本预览
相关文档 最新文档