grads,fortran,ncl二进制文件
- Fortran里面,二进制文件的存储方式有sequential(顺序存取)和direct(直接存取)两种。其中,"顺序存取"不需要每次存取的数据(也称"记录“)的长度一致,而是在每笔记录两端加上了记录该记录所占长度的标识符。而"直接存取"要求每一笔记录的长度相同。
- Fortran文件的存放方式
顺序文件存放方式:
[length 1][记录1][length 1] [length 2][记录2][length 2] …… [length n][记录n][length n]…每一笔记录的两端都有一个占四个字节位的整数(length),记录了该笔记录所占的长度(单位字节)。
直接文件存放方式:
[记录1] [记录2] …… [记录n] …每一笔记录的长度是固定(相同)的。打开文件时,需要指定RECL= ???字段,告诉编译器每一笔记录的长度。因为每笔记录的长度都一致(可以认为是有格式文件),还需要加上form="formatted"这一参数描述。
- GrADS 用fwrite命令写的二进制文件的存放方式
fwrite命令写的二进制文件(比如grd文件)的方式很特别。它是按顺序(从前到后写的方式)写数据。但是,与fortran顺序文件的存放方式不同,每个记录的两端没有长度指示符。所以需要有相应的数据描述文件(*.ctl)对数据的存放格式进行描述。需要注意的是,一些代码中form="binary”这个参数描述,不是标准的fortran语法,一些编译器(如gfortran)可能无法通过编译。
关于二进制文件读取,有一种流文件读取的方法很好。在open语句里面添加access='stream',读文件的时候根据form=???字段指定的文件格式(有格式/无格式),自动用该类文件的读取方式读取数据。详见http://fcode.cn/guide-86-1.html
- 用NCL读取二进制文件的数据
在读数据之前需要知道文件的存取方式,是直接存取还是顺序存取的。根据相应的存取方式使用对应的函数读取数据。
此外,二进制文件存放的字节序 还有大小端(Big_Endian和Little_Endian)的区别。一些数据(如wrfout)是用Big_Endian 形式存储的,需要注意。
grads,fortran,ncl二进制文件的更多相关文章
- GrADS,NCL一些经验
GrADS画特定经线方法 set clevs 23.5; d lat set clevs 120;d lon GrADS 查看多个打开文件的ctl q ctlinfo 1 q ctlinfo 2 .. ...
- 目前比较流行的Python科学计算发行版
经常有身边的学友问到用什么Python发行版比较好? 其实目前比较流行的Python科学计算发行版,主要有这么几个: Python(x,y) GUI基于PyQt,曾经是功能最全也是最强大的,而且是Wi ...
- 地图绘制之basemap第一弹 basemap选择与安装
作为一个测绘GIS专业的学生,会有很多绘制地图的需求,一般情况使用ArcGIS.QGIS就可以解决,但是在绘制如论文插图时需要使用更加专业可定制化程度更高的工具,专业传统一般使用GMT,几经比较,最终 ...
- [转载:]Fortran 二进制文件读写
一些朋友总是咨询关于二进制文件的读写和转化.这里就我自己的理解说一说. 一).一般问题 二进制文件与我们通常使用的文本文件储存方式有根本的不同.这样的不同很难用言语表达,自己亲自看一看,理解起来会容易 ...
- 用matlab将nc数据读出来,写成二进制文件,然后用grads画图
clear,clc nt=735;ny=73; %2.5*2.5格点的nx=144; %2.5*2.5格点的f=netcdf('air.mon.mean.nc','nowrite');tt ...
- Intel Visual Fortran Compiler 11调用lapack库实现并行多处理计算
采用fortran进行数值计算的朋友们都应该听说过大名鼎鼎的lapack库,我就不多做介绍了,在此,我只是介绍一个编译好的lapack二进制包ACML(AMD Core Math Library),并 ...
- 使用gfortran将数据写成Grads格式的代码示例
使用gfortran将数据写成Grads格式的代码示例: !-----'Fortran4Grads.f90' program Fortran4Grads implicit none integer,p ...
- c和fortran混编(基于GNU/Linux,转自 linzch)
网 上说要分c为主程序和fortran为主程序两种情况讨论,其实我觉得不用,只要你了解生成可执行文件的机制.这个机制就是:不论是单一语言模块之间的 链接还是不同语言之间的混合链接,本质目的都是要链接器 ...
- Java———较大二进制文件的读、写
由于项目需要,需要对二进制文件进行读写.转换. 文件说明:由其他程序得到的二进制文件,文件内容为:包含23543个三角形.13270个顶点的三角网所对应的721组流速矢量(u.v)文件,通俗些说,一条 ...
随机推荐
- Cloudstack
1.cloudstack介绍 一个开源具有高可用性及扩展性的云计算平台,Cloudstack是一个开源的云操作系统: cloudstack支持管理大部分主流的hypervisors,如:VMware, ...
- jenkins 安卓打包生成二维码下载
先来张图看看吧 构思 jenkins gradle 打包apk文件,python myqr 模块生成二维码 放入nginx 访问图片的路径,apk安装包放在 nginx 下载目录. 环境 centos ...
- Django ImportError 模块路径正确,且将文件夹设置为Source Root
问题描述: 在用PyCharm进行Django项目开发时,由于业务需求需要增加一个外键字段,但在引入外键关联的model时,报错ImportError 解决方案: 无奈中,尝试更改导入模块语句的位置, ...
- 张高兴的 Windows 10 IoT 开发笔记:0.96 寸 I2C OLED
This is a Windows 10 IoT Core project on the Raspberry Pi 2/3, coded by C#. GitHub:https://github.co ...
- Crond定时任务
crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond ...
- U-Mail:多方面因素避免EDM邮件进垃圾箱
有很多做邮件营销的企业客户给U-Mail来电或来函咨询一件困扰他们的事:群发邮件时,要怎么样才能降低被收件人列入垃圾邮件的概率呢?其实关于这个问题,U-Mail小编已经请资深营销专家解答过多次了,经常 ...
- debian 7上安装svn
1.在终端中直接输入 sudo apt-get install subversion,选择安装即可 2.查看版本命令 svnserve --version(更多命令直接键入svnserve --he ...
- Android 高级UI设计笔记24:Android 夜间模式之 WebView 实现白天 / 夜间阅读模式 (使用JavaScript)
1. 问题引入: 前面我们是使用方法 降低屏幕亮度(不常用) 和 替换theme,两者都是针对Activity的背景进行白天.夜间模式的交换,但是如果我们显示的是Html的内容,这个时候改怎么办? 分 ...
- android小游戏模版—重力感应
好久没更新博客了,今天来谈谈android小游戏---重力感应,一般在游戏里运用的比較多,比方这类游戏有:神庙逃亡.极品飞车,平衡球.三围重力迷宫,重力赛车等. 首先什么是重力感 ...
- [BJOI2019] 排兵布阵
题目 这个\(dp\)出在普及都算水题吧 直接背包,\(O(nms)\)跑不满,非常稳 #include<cstdio> #include<vector> #include&l ...