科学网

 找回密码
  注册

tag 标签: 源文件

相关帖子

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

没有相关内容

相关日志

圣诞节快乐贺卡,PPT源文件
qijiayebing 2015-12-21 11:12
下载地址:http://vdisk.weibo.com/s/diI16ifsPVmwN/1450665791
个人分类: 群干货|3232 次阅读|0 个评论
Matlab按照字母顺序排序源文件
zhoufcumt 2013-7-23 16:36
因为需要将文件中的站点名按照字母顺序排序,用matlab实现比较简单。 源文件: e_ann.gps 源程序: clear; clc; tic; filename = 'e_ann.gps'; fid = fopen(filename,'r'); i = 0; % 270个站点,对应文件270行 site_name = cell(1,270); while 1 line = fgetl(fid); if ~ischar(line),break,end text = textscan(line,'%s %f %f %f %f %f %f %f %s'); i = i+1; site_name{i} = text{9}{1}; end site_sort = sort(site_name); fclose(fid); fid = fopen('e_ann.gps_new','wt'); a = importdata(filename); nn = length(a); for i = 1:nn for j = 1:nn if strfind(a{j},site_sort{i}) 0 fprintf(fid,'%s\n',a{j}); end end end toc; 生成需要的文件: e_ann.gps_new
个人分类: Matlab|5962 次阅读|0 个评论
[转载]在cmd命令行下编译运行C/C++源文件
hailuo0112 2013-3-14 17:37
一直用java来写程序,java配置好jre路径之后,在cmd下编译运行,很方便。 刚好要给一个舍友改下C程序,想到可不可以像java一样在环境变量里配置好C的编译路径呢? 于是上网搜了一下,得到如下结果: 一、如果装有VC,那就简单了,因为VC带有C的编译器,可以将此路径设置进环境变量。 Windows系统下编译连接源代码方法: cl -GX test.c -GX: 启动同步异常处理 上面的命令会产生可执行程序:test.exe 在命令行中直接输入:test.exe 就可运行该程序 Tips: 一、cmd中键入cl提示不认识cl命令,则由于无法找到cl.exe程序。解决方法如下: 添加系统变量(Path),这样:我的电脑-属性-高级-环境变量-系统变量,在path中添加 C:/Program Files/Microsoft Visual Studio 9.0/VC/bin;。 注意: 1、结尾最后用“;”隔开! 2、如果你的Microsoft Visual Studio 低于9.0版本或高于9.0版需要修改上面的路径名称。 二、cmd中键入cl执行编译时会出现mspdb80.dll无法找到的情况,是因为VC/Bin/下没有 “msobj80.dll, mspdb80.dll,mspdbcore.dll,mspdbsrv.exe”这四个文件,解决的方法: 1直接从Common7/IDE/下复制这四个文件到VC/Bin/下即可解决 2添加系统变量(Path),这样:我的电脑-属性-高级-环境变量-系统变量,在path中添加 C:/Program Files/Microsoft Visual Studio 8/Common7/IDE;,注意结尾最后用“;”隔开! 这样在用cl编译就不会出现mspdb80.dll文件找不到的错误了。 三、如果你在编译过程中,出现一下错误: 1、fatal error C1034: stdio.h: no include path set 2、fatal error LNK1104: cannot open file "kernel32.lib 请在我的电脑-属性-高级-环境变量-系统变量中新建系统变量LIB、INCLUDE并设置它们的值为: (LIB)C:/Program Files/Microsoft SDKs/Windows/v6.0A/Lib;C:/Program Files/Microsoft SDKs/Windows/v5.0/Lib;C:/Program Files/Microsoft Visual Studio 9.0/VC/lib (INCLUDE)C:/Program Files/Microsoft Visual Studio 9.0/VC/include Linux系统下编译连接源代码的方法: gcc -g -c test.c -o test 只生成目标文件(.obj文件),没有生成可执行文件(也就是说test是.obj文件) gcc -g test.c -o test 生成可执行文件(可以通过./test运行程序) -g:生成调试信息。GNU 调试器可利用该信息。 -c:只编译并生成目标文件。(没有中间文件生成和可执行文件,如列表文件、可执行文件) -o:设置生成的可执行程序的名字为test 上面的命令会产生可执行程序:test 在Terminal中输入:./test 就可以运行该程序了。 操作步骤如下: 1.在命令行下,先运行vcvars32.bat(此文件在VC安装目录/Bin文件夹里,其中设置了环境变量和路径等信息)。或者,手动修改环境变量: path=你安装VS的路径/VC98/Bin lib=你安装VS的路径/VC98/lib;你安装VS的路径/VC98/MFC/lib include=你安装VS的路径/VC98/include;你安装VS的路径/VC98/MFC/include;你安装VS的路径/VC98/ATL/lib 2.然后直接用CL编译器编译C++程序(如:CL /GX /MT zx.cpp)。 CL经常使用的选项为: 多线程dll(/MD)-动态链接,不包含运行时库文件 多线程(/MT)-静态链接,包含运行时库文件 附:CL 参数,即编译选项如下: -优化- /O1 最小化空间 /Op 改善浮点数一致性 /O2 最大化速度 /Os 优选代码空间 /Oa 假设没有别名 /Ot 优选代码速度 /Obn 内联展开(默认 n=0) /Ow 假设交叉函数别名 /Od 禁用优化(默认值) /Ox 最大化选项。(/Ogityb2 /Gs) /Og 启用全局优化 /Oy 启用框架指针省略 /Oi 启用内部函数 -代码生成- /G3 为 80386 进行优化 /Gh 启用 _penter 函数调用 /G4 为 80486 进行优化 /GH 启用 _pexit 函数调用 /G5 为 Pentium 进行优化 /GR 启用 C++ RTTI /G6 对 PPro、P-II、P-III 进行优化 /GX 启用 C++ EH (与 /EHsc 相同) /G7 对 Pentium 4 或 Athlon 进行优化 /EHs 启用 C++ EH (没有 SEH 异常) /GB 为混合模型进行优化(默认) /EHa 启用 C++ EH(w/ SEH 异常) /Gd __cdecl 调用约定 /EHc extern "C" 默认为 nothrow /Gr __fastcall 调用约定 /GT 生成纤维安全 TLS 访问 /Gz __stdcall 调用约定 /Gm 启用最小重新生成 /GA 为 Windows 应用程序进行优化 /GL 启用链接时代码生成 /Gf 启用字符串池 /QIfdiv 启用 Pentium FDIV 修复 /GF 启用只读字符串池 /QI0f 启用 Pentium 0x0f 修复 /Gy 分隔链接器函数 /QIfist 使用 FIST 而不是 ftol() /GZ 启用堆栈检查(/RTCs) /RTC1 启用快速检查(/RTCsu) /Ge 对所有函数强制堆栈检查 /RTCc 转换为较小的类型检查 /Gs 控制堆栈检查调用 /RTCs 堆栈帧运行时检查 /GS 启用安全检查 /RTCu 未初始化的本地用法检查 /clr 为公共语言运行库编译 noAssembly - 不产生程序集 /arch:SSE|SSE2 CPU 结构的最低要求,以下内容之一: SSE - 启用支持 SSE 的 CPU 可用的指令 SSE2 - 启用支持 SSE2 的 CPU 可用的指令 -输出文件- /Fa 命名程序集列表文件 /Fofile 命名对象文件 /FA 配置程序集列表 /Fpfile 命名预编译头文件 /Fd 命名 .PDB 文件 /Fr 命名源浏览器文件 /Fefile 命名可执行文件 /FR 命名扩展 .SBR 文件 /Fm 命名映射文件 -预处理器- /AIdir 添加到程序集搜索路径 /Fx 将插入的代码合并到文件 /FUfile 强制使用程序集/模块 /FIfile 命名强制包含文件 /C 不抽出注释 /Uname 移除预定义宏 /Dname{=|#}text 定义宏 /u 移除所有预定义宏 /E 预处理到 stdout /Idir 添加到包含搜索路径 /EP 预处理到 stdout,没有 #line /X 忽略“标准位置” /P 预处理到文件 -语言- /Zi 启用调试信息 /Ze 启用扩展(默认) /ZI 启用“编辑并继续”调试信息 /Zl 省略 .OBJ 中的默认库名 /Z7 启用旧式调试信息 /Zg 生成函数原型 /Zd 仅有行号调试信息 /Zs 只进行语法检查 /Zp 在 n 字节边界上包装结构 /vd{0|1} 禁用/启用 vtordisp /Za 禁用扩展(暗指 /Op) /vmx 指向成员的指针类型 /Zc:arg1 C++ 语言一致性,这里的参数可以是: forScope - 对范围规则强制使用标准 C++ wchar_t - wchar_t 是本机类型,不是 typedef - 杂项 - @file 选项响应文件 /won 发出一次警告 n /?, /help 打印此帮助消息 /wln 为 n 设置警告等级 1-4 /c 只编译,不链接 /Wn 设置警告等级(默认 n=1) /Hnum 最大外部名称长度 /Wall 启用所有警告 /J 默认 char 类型是 unsigned /Wp64 启用 64 位端口定位警告 /nologo 取消显示版权消息 /WX 将警告视为错误 /showIncludes 显示包含文件名 /WL 启用单行诊断 /Tcsource file 将文件编译为 .c /Yc 创建 .PCH 文件 /Tpsource file 将文件编译为 .cpp /Yd 将调试信息放在每个 .OBJ 中 /TC 将所有文件编译为 .c /Yl 为调试库插入 .PCH 引用 /TP 将所有文件编译为 .cpp /Yu 使用 .PCH 文件 /Vstring 设置版本字符串 /YX 自动 .PCH /w 禁用所有警告 /Y- 禁用所有 PCH 选项 /wdn 禁用警告 n /Zmn 最大内存分配(默认为 %) /wen 将警告 n 视为错误 -链接- /MD 与 MSVCRT.LIB 链接 /MDd 与 MSVCRTD.LIB 调试库链接 /ML 与 LIBC.LIB 链接 /MLd 与 LIBCD.LIB 调试库链接 /MT 与 LIBCMT.LIB 链接 /MTd 与 LIBCMTD.LIB 调试库链接 /LD 创建 .DLL /Fnum 设置堆栈大小 /LDd 创建 .DLL 调试库 /link 关于链接时参数的说明: VC项目属性 →配置属性→C/C++→代码生成→运行时库 可以采用的方式有:多线程(/MT)、多线程调试(/MTd)、多线程DLL(/MD)、多线程调试DLL(/MDd)、 单线程(/ML)、单线程调试(/MLd) 。 Reusable Library Switch Library Macro(s) Defined Single Threaded /ML LIBC (none) Static MultiThread /MT LIBCMT _MT Dynamic Link (DLL) /MD MSVCRT _MT and _DLL Debug Single Threaded /MLd LIBCD _DEBUG Debug Static MultiThread /MTd LIBCMTD _DEBUG and _MT Debug Dynamic Link (DLL) /MDd MSVCRTD _DEBUG, _MT, and _DLL 其中以小写“d”结尾的选项表示的DEBUG版本的,没有“d”的为RELEASE版本。大型项目中必须要求所有组件和第三方库的运行时库是统一的,否则将会出现 LNK2005 井喷。 单线程运行时库选项/ML和/MLd在VS2003以后就被废了。 /MT和/MTd表示采用多线程CRT库的静态lib版本。该选项会在编译时将运行时库以静态lib的形式完全嵌入。该选项生成的可执行文件运行时不需要运行时库dll的参加,会获得轻微的性能提升,但最终生成的二进制代码因链入庞大的运行时库实现而变得非常臃肿。当某项目以静态链接库的形式嵌入到多个项目,则可能造成运行时库的内存管理有多份,最终将导致致命的“Invalid Address specified to RtlValidateHeap”问题。另外托管C++和 CLI 中不再支持/MT和/MTd选项。 /MD和/MDd表示采用多线程CRT库的动态dll版本,会使应用程序使用运行时库特定版本的多线程DLL。链接时将按照传统VC链接dll的方式将运行时库MSVCRxx.DLL的导入库MSVCRT.lib链接,在运行时要求安装了相应版本的VC运行时库可再发行组件包(当然把这些运行时库dll放在应用程序目录下也是可以的)。 因/MD和/MDd方式不会将运行时库链接到可执行文件内部,可有效减少可执行文件尺寸。当多项目以MD方式运作时,其内部会采用同一个堆,内存管理将被简化, 跨模块内存管理 问题也能得到缓解。 结论: /MD和/MDd将是潮流所趋,/ML和/MLd方式请及时放弃,/MT和/MTd在非必要时最好也不要采用了。 二、单独下载gcc程序,同样的设置环境变量就可以了。
个人分类: 学术坊|12814 次阅读|0 个评论
编程知识 专贴
qlearner 2012-9-26 10:46
C++在指定文件夹下实时输出数据,并根据时间为输出文件命 名 1、把整型数据转换为字符型,从而可在文件名应用。 C++中也有类似于C语言的sprintf的函数,即stringstream类。它可将计数变量等的数值变成字符型数值,从而可以用在文件的命名上,实现实时输出数据,并改名。 经典实例:转自csdn博客的一条回复 http://topic.csdn.net/u/20080523/05/f55b68ee-a594-4933-82ae-87beb143c2d9.html #include "iostream" #include "string" #include "sstream" using namespace std; void main() { string a("12+"); string b("12"); int d=24; string c; string e; ostringstream ost(e); ostd; c=a+b+"="+ost.str(); coutcendl; } 2、真正输出文件时可添加如下代码: fstream outfile; string fullname,partname; ostringstream ost(partname); osti; fullname="u_h_"+ost.str()+".dx"; outfile.open(fullname.c_str(),ios::out); outfile.close(); 3、上述输出的文件与当前程序在同一个文件夹下,不易归档查看,可设定在指定文件夹下批量输出文件,此时可以把文件名与路径结合,添加代码如下: system("mkdir ./a");//由系统建立文件夹,可以用绝对路径或相对路径 fullname="./a/"+fullname; 随机数的产生: 随机数的产生由以下代码实现:(http://www.cnblogs.com/bingcaihuang/archive/2011/03/12/1982181.html) srand(time(NULL)); 之后调用rand()即可得到0 ~ 32757范围的随机数 包含头文件stdlib.h和time.h 或 cstdlib和ctime #include stdlib.h #include time.h 或 #include cstdlib #include ctime 用下列公式即可得到指定范围 的随机数: r = rand()%(n - m + 1) + m; 注意:n - m 的绝对值不能超过32767 但是如果要产生这期间的随机小数,还要加上小数部分: r=rand()%(n-m)+m+(float)(rand()%10000)/10000; 如果要产生0-1之间的随机数: 可以用cout (double)rand()/RAND_MAX; 还有几个注意点: (1)srand()函数是初始化随机数产生器,它产生随机数种子,说白了就是初始化随机数。 srand((unsigned)time(0));取的是系统时间,也就是距离1970.1.1午夜有多少秒。 而for循环每循环一次时间远远小于1秒,这就导致了srand((unsigned)time(0))产生的种子并没有改变。 那么,相同的随机数种子所产生的随机数肯定是一样的了。 (http://zhidao.baidu.com/question/104430435.html) 故要把srand()函数放在for循环之外。 (2)如果不用srand,则今天和明天产生的随机数是相同的。 注意编程中的取商运算 : 两个int型相除取商,还是int型,可能就会造成误差很大,或者直接就是0的情况。注意强制类型转换。 类的成员函数的声明和定义后面加const与不加const的区别: 加const表示成员函数可以对const对象进行操作,但是不能改变数据成员的内容。 举例:http://bbs.csdn.net/topics/60366514 #includeiostream usingnamespacestd; classA{ intdata; public: A(intda=100):data(da){} voiddisplay1(){coutdataendl;} voiddisplay2()const{coutdataendl;} voiddisplay3()const { data+=100; coutdataendl; } }; intmain() { Aa1; constAa2; a1.display1(); a1.display2(); a1.dispaly3();//error,const声明的成员函数不能改变数据成员的值 a2.display1();//error,const对象不能调用非const函数 a2.display2();//right a2.display3();//error,const对象能调用const函数,但是该函数不能改变数据成员值 system("Pause"); return0; }
个人分类: 编程学习|3508 次阅读|0 个评论
linux 常规文件操作
cwjwang 2012-8-11 15:12
(1)cp: -r, 复制文件夹; cp=cp -i /bin/cp -r,不会提醒; cp -fr 会提想的 平常cp是cp -i的别名; cp yun me:复制yun,并命名为me。 (2)file 文件的详细信息 (3)rm rm 删除文件,提醒覆盖 rm -f 强制删除,不提醒; rm -r 删除目录; rm -rf 强制删除目录,不提醒; rm -rf / 千万不能使用,会失去根目录的; (4)mv mv+源文件+目的地;如果目的地存在,就是移动;如果目的地不存在,变成重命名; (5)ln ln -s 软链接,符号链接即快捷方式 pwd-P, 真正路径 ln -s + 旧文件 +新文件,即新文件链接到旧文件; (6) cat -n 加编号; 重定向 cat hosts passwd 2.txt 将 hosts 与 passwd合并到2.txt cat file3 eof 从键盘输入到file3,遇到eof结束。 (7)more 查看,分页显示文件的内容,按enter 一行一行的显示;按空格是 一页一页的显示;按字母b往上一页一页显示。 (8)less 分页显示内容,与more相比,支持pageup, pagedown ,/ 表示查找; q表示退出。 (9)head 默认显示头10行; head -数字 (10)tail显示文件的后几行; head -5 passwd |tail -1显示passwd的第五行; |管道符号,表示前面的命令输出作为后面的一个输入。tail -f 实时监控日志文件。 log:表示日志; syslogd:进程 ctrl+c终止命令。 (11)mkdir -p 建立一系列文件;mkdir -v可视化。 tree查看目录。 (12)du -sh 查看文件的大小。 (13)touch 新建空文件或者修改文件的时间,若文件不存在新建空文件。 (14)系统定义的别名 alias cp='cp -i' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias rm='rm -i' alias ff=‘mm’ 定义别名 unalias ff 取消别名;重启计算机失效。
3778 次阅读|0 个评论
LaTeX2e 完全学习手册示例源文件
热度 4 zjzhang 2012-5-18 12:14
第 1 章 LaTeX 简介.rar 第 2 章 LaTeX 基础.rar 第 3 章 字体.rar 第 4 章 版面设计.rar 第 5 章 标题.rar 第 6 章 表格.rar 第 7 章 列表.rar 第 8 章 数学式.rar 第 9 章 插图.rar 第 10 章 正文工具.rar 第 11 章 编译.rar 第 13 章 幻灯片-beamer.rar 注: 应该感谢 Dr. S.Y. Liu, who gave me the CD ROM of Latex Files several months ago.
个人分类: 数学|8013 次阅读|8 个评论
[转载]split_dos and vp 源文件
guolingju 2011-2-28 09:47
split_dos and vp 源文件 Split_dos 源文件 #!/bin/ksh # Script to break the VASP DOSCAR file into segments for # each atomic site. # JMS NRL 5/0/02 # Modified to also align the Fermi level from the ground state # to E=0.0 # JMS NRL 6/19/02 # Executables reside here BIN=~/bin if ; then echo "Usage: split_dos" exit 2 fi # Script to split the DOSCAR file into the atomic # projections labeled by atom number dosfile=DOSCAR outfile=OUTCAR infile=INCAR # Token for splitting the files token=$(sed -n '6 p' $dosfile | awk '{print $1}') # Number of points nl=$(sed -n '6 p' $dosfile | awk '{print $3}') # Number of atoms natom=$(sed -n '1 p' $dosfile | awk '{print $1}') # Get the Fermi level if the OUTCAR file is present, # else we set it to zero. if ; then echo "The" $outfile "exists, we use it to get the Fermi level," echo "the RWIGS tag and the number of spins." efermi=$(grep "E-fermi" $outfile | tail -1 | awk '{print $3}') echo "Fermi level:" $efermi nspin=$(grep "ISPIN" $outfile | tail -1 | awk '{print $3}') if ; then echo "Spin polarized calculation" else echo "Unpolarized calculation" fi # 2.a # JMS 2/3/03 Modified to accept specification by LORBIT token. # lorbit=$(grep "LORBIT" $outfile | tail -1 | awk '{print $3}') if ; then echo "LORBIT 10" echo "WARNING: not completely test for vasp.4.*" echo "Use at your own risk. Please check results for consistency." form=1 else # 2.a rwigs=$(grep "RWIGS" $outfile | tail -1 | awk '{print $3}' | sed 's/\.//g') if ; then echo "RWIGS token not set" form=0 else echo "RWIGS token set" form=1 fi # 2.a fi # 2.a else echo "The" $outfile "does not exist, we set the Fermi level to 0" echo "assume an unpolarized calculation, and RWIGS not set" form=0 nspin=1 efermi=0.0 fi # If the outcar file is not present and you wish to set something by hand # you should do it here. Uncomment the tokens below and set them by hand. #efermi=2.255 #form= #nspin= # Get the atomic coordinates $BIN/vp | tmp.dat tail -$natom tmp.dat | awk '{printf "%s %12.8f %12.8f %12.8f \n", "#", $2, $3, $4}' | tmp.dat2 # Total is first DOS if ; then i=0 else i=0 fi start=7 end=$((start+nl-1)) #echo $start $end #exit 0 rm -f DOS0 if ; then while ; do #echo $i $start $end if ; then sed -n ''$i' p' tmp.dat2 | DOS$i fi if ; then # Atomic projected DOS if ; then sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, -1*$3, $4, -1*$5, $6, -1*$7}' DOS$i else sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, $3, $4 }' DOS$i fi else # Total DOS if ; then sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, -1*$3, $4, -1*$5 }' DOS$i else sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, $3 }' DOS$i fi fi start=$((end+2)) end=$((start+nl-1)) i=$((i+1)) done else while ; do #echo $i $start $end if ; then sed -n ''$i' p' tmp.dat2 | DOS$i fi if ; then # Atomic projected DOS if ; then sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, -1*$3, $4, -1*$5, $6, -1*$7}' DOS$i else sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, $3, $4 }' DOS$i fi else # Total DOS if ; then sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, -1*$3, $4, -1*$5 }' DOS$i else sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, $3 }' DOS$i fi fi start=$((end+2)) end=$((start+nl-1)) i=$((i+1)) done fi exit 0 VP文件 #注意,split_dos中默认路径为BIN/vp,vp所在文件夹要有POSCAR,OUTCAR #用来得到原子坐标 #!/bin/ksh # Script to grab the atomic positions from the # OUTCAR VASP file and write them to a file for use # with an xmol movie. # J M Sullivan NRL 12/4/01 # Scale the forces by this factor for visualization fscale=1 posfile=POSCAR # Output file containing the data outfile=OUTCAR # Token to search for to get the atomic positions token=POSITION # Get the atom number types set -A ntype $(sed -n '6 p' $posfile) echo "Number of atom types:" ${#ntype } echo "Multiplicities of these types:" ${ntype } ns=${#ntype } i=0 natoms=0 while ; do nt=${ntype } let natoms=$natoms+$nt i=$((i+1)) done echo "Total number of atoms:" $natoms # Get the atom labels from the OUTCAR file set -A type #_jms 4/2/03 #set -A label $(grep "POTCAR:" $outfile | head -$ns | sed 's/POTCAR://g' | sed 's/US//g') #set -A label $(grep "POTCAR:" $outfile | head -$ns | sed 's/POTCAR://g' | sed 's/US//g'| sed 's/PAW//g' | awk '{print $1}') set -A label $(grep "POTCAR:" $outfile | head -$ns | sed 's/POTCAR://g' | sed 's/US//g'| sed 's/PAW//g' | sed 's/_PBE//g' | awk '{print $1}') #_jms 4/2/03 #label =H1 echo ${label } nt=0 i=0 while ; do j=1 while } ]; do nt=$((nt+1)) j=$((j+1)) type =${label } #echo $nt ${type } done i=$((i+1)) done echo ${type } grep -n "$token" $outfile | sed 's/POSITION/\ POSITION/g' | sed 's/://g' | tmp.dump while read nstart trash do nstart=$((nstart+2)) nend=$((nstart+natoms-1)) #nend=$(echo $nstart $natoms | awk '{print $1+$2-1}') #echo $nstart $nend echo $natoms echo sed -n ''$nstart','$nend' p' $outfile | awk '{printf "%12.9f %12.9f %12.9f %s %12.9f %12.9f %12.9f \n", $1, $2, $3, NR, '$fscale'*$4, '$fscale'*$5, '$fscale'*$6}' | tmp.dump2 i=1 while read a b c do echo ${type } $a $b $c i=$((i+1)) done tmp.dump2 done tmp.dump rm -f tmp.dump tmp.dump2 exit 0
个人分类: 第一性原理(vasp)|9671 次阅读|0 个评论

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

GMT+8, 2024-6-16 23:06

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部