科学网

 找回密码
  注册

tag 标签: 初始化

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

WRFV3使用指南:WRF的初始化及运行初步
热度 6 sanshiphy 2017-2-22 19:11
WRF 模拟分为两大类:第一类是理想化模拟。这类模拟采用理想化的边界条件,地形也或有或无,往往并不设定很复杂的物理过程,大多数模拟没有辐射、地表通量或摩擦效应。理想化模拟主要用于动力学研究,收敛或其它已知解的重现和理想化的云模拟等。第二类是实际数据模拟。这类模拟采用真实的边界条件和地形,加入复杂的物理过程,试图重现真实发生的天气过程或预报将要发生的真实天气过程。 在调用 wrf.exe 前,有一个初始化的步骤,用于准备 WRF 模拟所需要的数据,例如从 WPS 生成的文件中读取数据,气象数据的垂直插值,指定或准备好各网格模拟所需要的初始条件和边界条件等等。对于第一类模拟, WRF 利用 ideal.exe 程序进行初始化。对于第二类模拟, WRF 利用 real.exe 进行初始化。本指南重点介绍第二类实际数据模拟的初始化和运行的初步知识。 相关链接 《 WRFV3 使用指南: WPS 之 geogrid.exe 》 http://blog.sciencenet.cn/home.php?mod=spaceuid=200199do=blogid=1032368 《 WRFV3 使用指南: WPS 之 ungrib .exe 》 http://blog.sciencenet.cn/home.php?mod=spaceuid=200199do=blogid=1033599 《 WRFV3 使用指南: WPS 之 metgrid .exe 》 http://blog.sciencenet.cn/home.php?mod=spaceuid=200199do=blogid=1033851 目录 1 、 namelist.input 的设置 2 、 real.exe 的运行 3 、 双向嵌套和单向嵌套 3.1 双向嵌套运行 3.2 单向嵌套运行 3.3 单向嵌套和双向嵌套运行的比较 4 、 错误和优化汇总 说明 本文档不定期更新,请随时访问本页面,获取最新版本 使用指南下载 WRF的初始化及运行初步V3.pdf 附件 twoway_d02.pdf twoway_d01.pdf oneway_d02.pdf oneway_d01.pdf metgrid_slp_d01.pdf
个人分类: 技术备忘录|12573 次阅读|9 个评论
[转载]Python类 第一部分
xyzg198891 2016-10-26 16:46
python 中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象。 我们通过描述属性(特征)和行为来描述一个对象的。比如家里的小狗,它的颜色,大小,年龄,体重等是它的属性或特征。它会汪汪叫,会摇尾巴等是它的行为。 我们在描述一个真实对象(物体)时包括两个方面: 它可以做什么(行为) 它是什么样的(属性或特征)。 在 python 中,一个对象的特征也称为属性( attribute )。它所具有的行为也称为方法( method ) 结论:对象 = 属性 + 方法。 在 python 中,把具有相同属性和方法的对象归为一个类( class )。 比如人类,动物,植物等等,这些都是类的概念。 类是对象的模板或蓝图,类是对象的抽象化,对象是类的实例化。类不代表具体的事物,而对象表示具体的事物。 class people: ... def speak(self): ... print (hello!) ... ''' 定义一个people类,定义一个speak方法,但没有定义属性, 因为属性不属于类,而是属于各个类的实例。也就是说属于对象。 因此我们可以给每个实例设置不同的属性 ''' class people: #类 ... def speak(self): #方法 ... print (hello!) ... jack = people() #创建jack实例 tom = people() #创建tom实例 import tab #导入table键功能模块 jack. #输入jack.,可以看到以下方法 jack.__class__ jack.__doc__ jack.__module__ jack.speak( jack.speak() #引用speak方法 hello! jack.age=39 #添加age属性 jack.height=120 #添加height属性 jack. jack.__class__ jack.__module__ jack.height jack.__doc__ jack.age jack.speak( jack.height 120 jack.age 39 ''' #初始化对象 创建类时,可以定义一个特定的方法,名为__init__(),只要创建这个类的一个实例 就会运行这个方法。可以向__init__()方法传递参数, 这样创建对象时就可以把属性设置为你希望的值 __init__()这个方法会在创建对象时完成初始化, ''' class peo: ... def __init__(self,name,age,sex): ... self.Name = name ... self.Age = age ... self.Sex = sex ... def speak(self): ... print my name + self.Name ... 实例化这个类的对象时: zhangsan=peo(zhangsan,24,'man') print zhangsan.Age 24 print zhangsan.Name zhangsan print zhangsan.Sex man # ---------- print zhangsan __main__.peo instance at 0x7fe5041ec248 ''' 要让print能打印出来,就得使用__str__方法 __str__()这个方法告诉python在打印(print)一个对象时,具体显示什么内容 ''' #! /usr/bin/python class peo: def __init__(self,name,age,sex): self.Name = name self.Age = age self.Sex = sex def speak(self): print my name + self.Name def __str__(self): msg='my name is: ' +self.Name+ ,+ my age is: + self.Age +','+ my sex is: +self.Sex # msg='my name is: ' +self.Name+ ,+ my age is: + str(self.Age) +','+ my sex is: +self.Sex return msg shanghai=peo('shanghai','23','man') # shanghai=peo('shanghai',23,'man') ''' msg='my name is: ' +self.Name+ ,+ my age is: + self.Age +','+ my sex is: +self.Sex 此处23是年龄,但被转成了字符串,因为self.Age定义的是字符串 如果不将23转义,则会报错 如果希望在程序中就事先转义,需要使用str(self.Age) ''' print shanghai ''' 之前多次用到self这个形参 类就好比是一张蓝图,使用一个类可以创建多个对象实例, speak()方法在被调用时,必须知道是哪个对象调用了它. 这里self参数就会告诉方法是哪个对象来调用的.这称为实例引用。 zhangsan。speak()就好比写成了peo.speak(zhangsan) '''
个人分类: Python|1 次阅读|0 个评论
C shell:数组初始化
zhoufcumt 2015-12-5 14:17
set aa = (123 456 789) # set aa = (abc def ghi) set bb = '' # 数组bb初始化为空数组 set bb = ($ bb $ aa ) # set bb = ($ bb $ aa $aa ) 注:上行括号中bb和aa前要有$符号
个人分类: LINUX|5122 次阅读|0 个评论
Raspberry Pi用Wifi接入加密校园网的初始化
colacat4 2014-1-14 22:19
1. 安装: WICD (apt-get即可安装) 2. 证书:从U盘导入linux系统的网络证书( This case: uob_root_linux.pem ) 3. 修改: WPA_Supplicant.conf,etc/wpa_***文件夹下 ctrl_interface=/var/run/wpa_supplicant network={ ssid=eduroam proto=RSN key_mgmt=WPA-EAP group=CCMP eap=PEAP identity=insert username here password=insert password here ca_cert=/home/pi/ certificate location(This case: uob_root_linux.pem) phase2=auth=MSCHAPV2 } 4. 重启。
个人分类: 科研笔记|3896 次阅读|0 个评论
[转载]malloc和calloc区别(c)
Zhouwenju 2013-9-28 09:00
c each types float null 网上找到的英文解释如下: Boththe malloc() and the calloc() functions are used to allocate dynamicmemory. Each operates slightly different from the other. Boththe malloc() and the calloc() functions are used to allocate dynamicmemory. Each operates slightly different from the other. malloc() takesa size and returns a pointer to a chunk of memory at least that big: void *malloc( size_t size ); calloc() takes a number of elements, and the size of each, and returns a pointer to a chunk of memory at least big enough to hold them all: void *calloc( size_t numElements, size_t sizeOfElement ); Thereare one major difference and one minor difference between the twofunctions. The major difference is that malloc() doesn't initialize theallocated memory. The first time malloc() gives you a particular chunkof memory, the memory might be full of zeros. If memory has beenallocated, freed, and reallocated, it probably has whatever junk wasleft in it. That means, unfortunately, that a program might run insimple cases (when memory is never reallocated) but break when usedharder (and when memory is reused). calloc() fills the allocated memorywith all zero bits. That means that anything there you are going to useas a char or an int of any length, signed or unsigned, is guaranteed tobe zero. Anything you are going to use as a pointer is set to all zerobits. That is usually a null pointer, but it is notguaranteed.Anything you are going to use as a float or double is set toall zero bits; that is a floating-point zero on some types of machines,but not on all. The minor difference between the two is thatcalloc() returns an array of objects; malloc() returns one object. Somepeople use calloc() to make clear that they want an array. 下面是网上的中文说明 用 malloc() 函数更好还是用 calloc() 函数更好 函数 malloc() 和 calloc() 都可以用来动态分配内存空间 , 但两者稍有区别。 malloc() 函数有一个参数 , 即要分配的内存空间的大小 : void*malloc(size_tsize); calloc() 函数有两个参数 , 分别为元素的数目和每个元素的大小 , 这两个参数的乘积就是要分配的内存空间的大小。 void*calloc(size_tnumElements,size_tsizeOfElement); 如果调用成功 , 函数 malloc() 和函数 calloc() 都将返回所分配的内存空间的首地址。 函数 malloc() 和函数 calloc() 的主要区别是前者不能初始化所分配的内存空间 , 而后者能。如果由 malloc() 函数分配的内存空间原来没有被使用过,则其中的每一位可能都是 0; 反之 , 如果这部分内存曾经被分配过 , 则其中可能遗留有各种各样的数据。也就是说,使用 malloc() 函数的程序开始时 ( 内存空间还没有被重新分配 ) 能正常进 行 , 但经过一段时间 ( 内存空间还已经被重新分配 ) 可能会出现问题。 函数 calloc() 会将所分配的内存空间中的每一位都初始化为零 , 也就是说 , 如果你是为字符类型或整数类型的元素分配内存 , 那麽这些元素将保证会被初始化为 0; 如果你是为指 针类型的元素分配内存 , 那麽这些元素通常会被初始化为空指针 ; 如果你为实型数据分配内存 , 则这些元素会被初始化为浮点型的零。 http://blog.csdn.net/wstarx/article/details/875853
个人分类: c|744 次阅读|0 个评论
CPU设计我要让更多的人掌握它(续4)
accsys 2010-1-5 07:38
2.2.2.3 初始化功能设计 计算机中的元器件加电之后需要有最初的值,这种需要初值或设置初值的控制方式叫预置或复位。寄存器的预置和复位是在D型触发器的R、S线处接入或门电路,并在控制端增加非门完成的。图 2 9所示的是带预置端的D型触发器,其中prose和tclr都是低电位有效。 图 2 9 带预置端的触发器 proset和clr一般保持高电位不影响寄存器工作。若瞬间使proset=0,clr=1,那么有R=0,S=1,于是使Q=1。若瞬间使proset=1,clr=0,那么有R=1,S=0,于是使Q=0。 带预置与复位端的触发器的符号如图 2 11的右端矩形表示所示。 2.2.2.4 存储器 存储器本质上就是一个寄存器有组织的集合。存储器从功能上分为随机存储器(RAM)、只读存储器(ROM)和可擦写的只读存储器(EPROM、EEPROM)等。出于对计算机核心部件设计的需要,这里重点介绍存储器的读写原理,具体某种存储器的组成材质等方面问题,留给读者自己阅读相关书籍解决。 2.2.2.4.1 三态门电路 三态门电路实际上是电路通断的可控开关,它可以单向地控制数字电路的传输和断开,因而三态门的输出有三态。这三态是0状态1状态和高阻状态。高阻也就是断开状态,在电子电路学科中用z表示。 三态门的电路如图 2 10(a)所示。它是由两个或非门 、一个非门和两个MOS晶体三极管组成的,电路连接的方式基本上是对称的。两个三极管连接处引出的B线是它的输出端,一个或非门的输入线A是三态门的输入端,而非门的输入线E是三态门通断的控制端。正是由于E线起着通断的决定作用,所以这个电路被俗称为E门电路。 图 2 10 E门电路结构 三态门电路实际上是一个A到B的开关,这个开关是怎样起作用的呢? (1) 当E=0时,由于前端非门N和两个或非门Q1、Q2的作用,使G1=G2=0。于是三极管T1,T2都截止,故A和B之间就如同断开一般,这叫高阻状态。 (2) 当E=1时,通过非门加在两个或非门一个输入端的都是低电位,这时两个或非门的输出状态取决于A。 (a) 当A=1时,有G2=0,G1=1,于是T1导通,T2截止,故 B=V=1 ,这叫1状态。 (b) 当A=0时,有G2=1,G1=0,于是T2导通,T1截止,故 B=0 (相当于B点接地),这叫0状态。 由(1),(2)的分析知道图 2 10(a)的通断控制电路有三种状态,并且这三种状态都是稳定的,因而这个电路才叫三态门电路。 三态门通断控制电路的符号如图 2 10(b)所示,E是控制端,A是输入端,B是输出端。 用两个不同材质的三态门反方向连接,合并控制端,可以作成一个双向三态门电路。双向三态门可以像普通电路开关一样将导线接通或断开,它的工作原理涉及到P沟道MOS和N沟道MOS三极管的问题,牵扯到电子电路的更多知识,又由于这里极少使用双向三态门电路,故而不加以讨论。 需要指出,逻辑电路的通与断是不能直接用一个三极管替代的,原因是三极管连接在电路中,发射极和集电极的电位一般是固定的,用基极虽然能够决定通和断,但不能在接通时传递电路中任意地变化的0或1数据。 图 2 10(b)三态门在Verilog HDL的描述是 assign B = E ? A : 1'bz; 2.2.2.4.2 装填门 装填门(LOAD)又称L门,是控制数据进入寄存器的一种设备。L门电路可以用与、或、非门电路搭建(见图 2 11),DFF是前沿D型触发器。当LOAD=0时,与门B的输出总是0,而与门A的输出取决于Y,也就是Q,这样或门C的输出也就取决于Q,于是Clk=1使触发器的值刷新。当LOAD=1时,与门A的输出是0,与门B的输出取决于D,而或门C的输出也就取决于D了,当Clk=1时,触发器接收新值D。DFF的预置端proset和复位端clr都增加了非门,因而使用中clr和preset都是低电位有效,平时应处于高电位状态。 图 2 11 L门电路 寄存器安装了装填门之后,能否接收外部的数据就受到了L门的控制。不考虑预置端和复位端的寄存器,一般只多标出输入控制线就可以。 2.2.2.4.3 存储单元的结构 存储器是由存储单元构成的。虽然每个存储单元就是一个寄存器,但由于所有存储单元要共用输入输出总线,故必需进行选择的改造,这样才能够保证数据的读写不至于造成混乱。 图 2 12(a)所示的是一个随机存储器的存储单元。它是将一个具有E门和L门的可控缓冲寄存器,填加了两个与门和一个非门,像图中那样连接组成的。 把众多的存储单元放在一起,关键是如何找到某一个存储单元以及对它施行什么样的操作。为了达到这一目的,图中把缓冲寄存器的L门和E门的前端加了两个与门电路,将两个与门的一个输入端通过非门连在一起,共同的连线用IO来记,目的是用它来控制对存储单元的读还是写。两个与门的另一输入端被直接连在一起,用AD来标记,以备通过AD来选择这个存储单元。 图 2 12 随机存储单元及符号 2.2.2.4.4 存储单元的数据读写 现在来看数据是怎样通过AD、IO进行读和写的。 (1) 当AD端是高电位,即AD=1时,如果 IO=1, 那么可控缓冲寄存器的L门打开,此时Clk从0变到1的瞬间,会将数据X写入可控缓冲寄存器;如果IO=0,那么可控缓冲寄存器的E门打开,此时会将数据通过y 向外输出。 AD=1的状态称为存储单元的选通状态。 (2) 当AD端是低电位,即AD=0时, 由于与门A、B的输出都是0,即L和E门的控制线都是0,从而阻断了可控缓冲寄存器与外部的信息交换。 AD=0的状态称为存储单元的封闭状态。 为了简单方便,在电路中要将RAM的存储单元记成 图 2 12(b) 的形式。 2.2.2.4.5 RAM结构与工作原理 图 2 13中,每个矩形代表一个随机存储单元,矩形内的二进制数就是存储单元的地址编号。地址编号信息是靠abc这三条线来输送的,这些专门传送地址信号的线叫地址线。在每一个寄存器ri (i=1、2、3、4、5、6、7、8)线的前端都接了一个与门,将与门的控制端连在一起标记为me。me=1时,每个存储单元都可能被选中,也就是说由这8个存储单元组成的存储器正在工作,此时可以对这个随机存储器进行读或写操作。如果me=0,那么所有的存储单元的选通线都是0,这样这个存储器的所有存储单元就不能再工作了。每一个存储单元的读写线IO连接在一起,仍然用IO来标记。IO线上的信号只会对选通线ri为1的存储单元的读写起作用。 图 2 13 RAM存储器 (1)地址译码器 图 2 13上端的译码器叫做地址译码器。它用于计算机存储器存储单元的选择。其作用是根据地址信号abc的值在某个与门的输出端产生高电位,使与之连接的存储单元选通线为1。例如,要选择010号存储单元进行数据操作,那么可以让 a=0 b=1 c=0,通过地址译码器就会有r3=1,而其余的存储单元选通线都是0,这样被选择工作的存储单元只能是010号。 这个3位的地址译码器用Verilog HDL语言描述为形式上简单。3位输入用向量a 表示,8个输出线用向量r 表示。表示数左移,那么3位输入译码器的描述是 assign r = 8b00000001 a; 这表示将8位二进制数00000001左移a位,空位补零。Verilog HDL语言的描述最终还要转成电路。 (2)RAM工作原理 不论有多少个存储单元的RAM,只要控制线me = 0,那么这个RAM就不能进行总线上的数据传输,RAM要与总线上的其他设备进行数据交换,必须在me=1的状态下进行。 如果想要往RAM的某一个存储单元写数据(这一过程叫存储器的输入),需要将这个存储单元的地址编号放在地址线上,将数据放在数据总线上,然后让me=1,IO=1,这样当Clk由0变到1的瞬间,数据就会从总线进入到指定的存储单元。 将数据放入存储器的存储单元的操作叫写操作,简称为写。 如果想从RAM的某个存储单元将数据读到总线上(这一过程叫存储器的输出),同样需要事先将存储单元的地址编号放在地址线上,让me =1,让读写线IO=0,则会将指定地址编号存储单元的内容输送到总线上。 将存储器的存储单元内容输出的操作叫读操作,简称为读。 --- 待续 ---
个人分类: 计算机核|4533 次阅读|0 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-2 16:05

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部