关于发展模式加入变量的问题解决

问题1描述:

编译的时候不报错,但是在运行的时候出错输出

FLDLST: ustar in fincl( 17 ) not found

ENDRUN: called without a message string

问题1解决:

这是因为在cas-esm 的atm_in 中写入了某个变量,但是在F90 代码里面没有加入场变量。

这是因为没有addfld(),尝试在init 的时候加入场变量来解决问题,或者在atm_in的fincl中删除这个变量。

call addfld( 'ustar'       , 'm/s'      , 1      , 'A', 'ustar'                              , phys_decomp )!mayubin 2023-12-20

问题2描述:

最近遇到一个奇怪的问题,当我输出ustar和obklen的时候,在运行的时候居然一只卡在了输出文件上很奇怪啊

然后我打开casesm.o10997620文件查看我的出错信息

 

(base) [chengxl@login03 run]$ cat casesm.e10997620

srun: ROUTE: split_hostlist: hl=e2112r7n[2-4],e2113r1n[1-4],e2113r2n[1-4],e2113r3n[1-4],e2113r4n[1-4],e2113r5n[1-4],

e2113r6n[1-4],e2113r7n[1-4],e2201r1n1 tree_width 0

slurmstepd: error: *** STEP 10997620.0 ON e2112r7n2 CANCELLED AT 2023-12-26T23:21:33 ***

srun: Job step aborted: Waiting up to 32 seconds for job step to finish.

slurmstepd: error: *** JOB 10997620 ON e2112r7n2 CANCELLED AT 2023-12-26T23:21:33 ***

forrtl: error (78): process killed (SIGTERM)

Image PC Routine Line Source

casesm.exe 0000000001682A6A Unknown Unknown Unknown

libpthread-2.17.s 00002B8F83C075D0 Unknown Unknown Unknown

libpthread-2.17.s 00002B8F83C044A3 pthread_spin_lock Unknown Unknown

解决2方法:

由于将原来的atm_in 和drv_in复制进现在的运行目录导致的。

问题2解决探索过程:

这个我还没有找到解决办法,也不知道问题是怎么出现的。

我试图减少我自己输出变量的个数

当我减少了我的输出变量之后,确实问题消失了,这就说明可能是我剩下的注释掉的变量的输出可能存在问题。

 nhtfrq = 0, 0 ! , -1 , 1     ! ,-1     ,-24    ,0     ,-2190  , -8760 mfilt  = 1, 1 ! , 24 , 26280 ! ,8760   ,365    ,12    , 4     ,1     fincl1 = 'lhf_tbf','tau_tbf' ,'shf_tbf','n2','pbl_h','h_wave','ri','tau_coare','hsb_coare','hlb_coare', 'LHFLX', 'SHFLX'fincl2 = 'QREFHT', 'TREFHTMN', 'TREFHTMX', 'TREFHT', 'PRECT', 'RHREFHT', 'PS', 'PSL', 'U10', 'CLDTOT', 'PRECC', 'PRECSC', 'PRECSL', 'LHFLX', 'SHFLX', 'FLDS', 'FLUT', 'FSDS', 'FSUTOA', 'FLUTC', 'TS', 'T', 'Q', 'RELHUM', 'OMEGA', 'U', 'V', 'Z3', 'FLNS','ri','n2','pbl_h','h_wave',

接下来要进一步排查问题。

插入:我们可以看见,在atm_in中加入要输出的变量,但是实际上在fortran中没有写outfld语句的时候,是不会报错的。只会 全部输出为0。

接下来我们试验加入变量h_wave_ln,结果发现,这个变量加入就导致了在变量输出的时候卡住了。

接下来我去掉h_wave_ln .然后加入qsss,tau_coare,hsb_coare,hlb_coare ,pbl_h 再次运行试验,不存在输出问题。

接下来,我们加入,ri , n2 , ustar 和obklen 再尝试一下

在运行的时候出现了这个

FLDLST: ustar in fincl( 16 ) not found

ENDRUN: called without a message string

 我在init的时候加上addfld再尝试

 

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(802): error #6410: This name has not bee

n declared as an array or a function. [IFRAC]

ifrac(i,j) = x2o_o%rAttr(index_x2o_Si_ifrac,n) ! ice fraction

-----------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(803): error #6410: This name has not bee

n declared as an array or a function. [PATM]

patm (i,j) = x2o_o%rAttr(index_x2o_Sa_pslv,n) ! sea level pressure index_x2o_Sa_pslv

-----------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(805): error #6410: This name has not bee

n declared as an array or a function. [TAUX]

taux (i,j) = x2o_o%rAttr(index_x2o_Foxx_taux,n) ! surface stress, zonal

-----------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(806): error #6410: This name has not bee

n declared as an array or a function. [TAUY]

tauy (i,j) = x2o_o%rAttr(index_x2o_Foxx_tauy,n) ! surface stress, merid

-----------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(807): error #6410: This name has not bee

n declared as an array or a function. [NETSW]

netsw(i,j) = x2o_o%rAttr(index_x2o_Foxx_swnet,n) ! net sw rad

-----------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(808): error #6410: This name has not bee

n declared as an array or a function. [SEN]

sen (i,j) = x2o_o%rAttr(index_x2o_Foxx_sen,n) ! sensible

-----------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(809): error #6410: This name has not bee

n declared as an array or a function. [LWUP]

lwup (i,j) = x2o_o%rAttr(index_x2o_Foxx_lwup,n) ! long-wave up

-----------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(810): error #6410: This name has not bee

n declared as an array or a function. [LWDN]

lwdn (i,j) = x2o_o%rAttr(index_x2o_Foxx_lwdn,n) ! long-wave down

-----------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(811): error #6410: This name has not bee

n declared as an array or a function. [MELTH]

melth(i,j) = x2o_o%rAttr(index_x2o_Foxx_melth,n) ! melt heat

-----------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(812): error #6410: This name has not bee

n declared as an array or a function. [SALT]

salt (i,j) = x2o_o%rAttr(index_x2o_Foxx_salt,n) ! salinity flux

-----------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(813): error #6410: This name has not bee

n declared as an array or a function. [PREC]

prec (i,j) = x2o_o%rAttr(index_x2o_Foxx_prec,n) !index_x2o_Foxx_prec

-----------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(814): error #6410: This name has not bee

n declared as an array or a function. [EVAP]

evap (i,j) = x2o_o%rAttr(index_x2o_Foxx_evap,n) ! evaporation

-----------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(815): error #6410: This name has not bee

n declared as an array or a function. [MELTW]

meltw(i,j) = x2o_o%rAttr(index_x2o_Foxx_meltw,n) ! melt water

-----------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(816): error #6410: This name has not bee

n declared as an array or a function. [ROFF]

roff (i,j) = x2o_o%rAttr(index_x2o_Forr_roff,n) ! runoff !LPF 20121219

-----------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(817): error #6410: This name has not bee

n declared as an array or a function. [DUU10N]

duu10n(i,j) = x2o_o%rAttr(index_x2o_So_duu10n,n) ! 10m wind speed squared

-----------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(819): error #6410: This name has not bee

n declared as an array or a function. [SNOW1]

snow1(i,j) = x2o_o%rAttr(index_x2o_Foxx_snow,n) !snow flux

-----------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(820): error #6410: This name has not bee

n declared as an array or a function. [ICEOFF]

iceoff(i,j)= x2o_o%rAttr(index_x2o_Forr_ioff,n) !ice runoff

-----------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(837): error #6404: This name does not ha

ve a type, and must have an explicit type. [LAT1]

lat1= LATVAP*evap ! latent (derive from evap)

--------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(837): error #8497: Illegal use of a proc

edure name in an expression, possibly a function call missing parenthesis. [EVAP]

lat1= LATVAP*evap ! latent (derive from evap)

---------------------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(839): error #6087: An array assignment s

tatement is required in this context. [PATM]

where(vit(:,:,1)

------------------------------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(840): error #6087: An array assignment s

tatement is required in this context. [IFRAC]

where(vit(:,:,1)

------------------------------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(841): error #6087: An array assignment s

tatement is required in this context. [TAUX]

where(vit(:,:,1)

------------------------------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(842): error #6087: An array assignment s

tatement is required in this context. [TAUY]

where(vit(:,:,1)

------------------------------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(843): error #6087: An array assignment s

tatement is required in this context. [NETSW]

where(vit(:,:,1)

------------------------------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(844): error #6087: An array assignment s

tatement is required in this context. [SEN]

where(vit(:,:,1)

------------------------------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(845): error #6087: An array assignment s

tatement is required in this context. [LWUP]

where(vit(:,:,1)

------------------------------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(846): error #6087: An array assignment s

tatement is required in this context. [LWDN]

where(vit(:,:,1)

------------------------------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(847): error #6087: An array assignment s

tatement is required in this context. [MELTH]

where(vit(:,:,1)

------------------------------^

/data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90(848): error #6087: An array assignment s

tatement is required in this context. [SALT]

where(vit(:,:,1)

------------------------------^

/tmp/ifortws2x0W.i90(2855): catastrophic error: Too many errors, exiting

compilation aborted for /data/chengxl/CAS-ESM2.0-test1/run/HIST_var_list_2/ocn/source/licomcpl7.F90 (code 1)

gmake: *** [licomcpl7.o] Error 1

gmake: *** Waiting for unfinished jobs....

 突然在编译的时候出现了licom 的一堆问题,很奇怪,之前也遇到过这样的问题。或许这只是偶然的现象。再次编译,这个问题消失。

运行后出现,

=====================================================================

Opened file B20TR_C35_y100.iap.h1.2000-01.nc to write 1638400

pio_support::pio_die:: myrank= -1 : ERROR:

pionfwrite_mod::write_nfdarray_double: 217 :

N

etCDF: Numeric conversion not representable

NETCDF:数值转换无法表示,这可能是存在什么变量类型转变问题。检查一下ustar,obklen,h_wave_ln的计算代码

会不会是因为这个,
————————————————
原文链接:https://blog.csdn.net/weixin_38594380/article/details/108335540

所以我改成D试一下,因为其他都是双精度的。

另外,sign是什么函数?

取前面数的绝对值,取后面数的符号。
例如:
c = SIGN (5.2, -3.1) ! returns -5.2
c = SIGN (-5.2, -3.1) ! returns -5.2
c = SIGN (-5.2, 3.1) ! returns 5.2

 将E改成D之后在进行实验

还是不对,不知道哪里出问题了。

删去输出ustar和obklen的代码,然后就不会出现在输出中断的问题。

现在发现在atm_in加上ustar和obklen都不行,会导致中断

现在发现这些还不是问题,可能原因是:我直接把原来的atm_in,drv_in复制过来导致的问题。

我后来终于发现,导致这种情况的原因就是:我把atm_in,drv_in 复制到当前运行文件夹下导致的问题。

 但是我又得将我新加的变量放里面输出,所以我使用sed命令在当前生成的atm_in里加入新输出的变量配置语句。

sed -i "12 a\\nhtfrq=0,0" atm_in
sed -i "13 a\\fincl1 = 'lhf_tbf','tau_tbf' ,'shf_tbf','n2','pbl_h','h_wave','tau_coare','hsb_coare','hlb_coare', 'LHFLX', 'SHFLX','qsss'" atm_in
sed -i "14 a\\fincl2 =  'U10','LHFLX', 'SHFLX', 'TS', 'T', 'Q', 'RELHUM', 'OMEGA', 'U', 'V', 'Z3','ri','n2','pbl_h','h_wave','obklen','ustar','h_wave_ln' "  atm_in

这里面:

sed -i "12 a\\nhtfrq=0,0" atm_in

12 表示在第十二行,

\\后加入想要加入语句

atm_in 表示想要操作的文件

总结一下:

sed -i "行号 a\\加入的命令" 文件名.后缀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/314414.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MODIS ET 蒸散发数据

MODIS ET 即 MOD16 系列产品,属于MODIS Level4 的产品。 在 LP DAAC - MODIS 上搜索了现存的 ET(Evapotranspiration) 数据: 建议使用最新版本Collection 6.1,也就是结尾是.061的数据集。 在 Collection 6.1 中&…

旅游平台网页前后端

功能清单 游客功能 用户注册、登录登录权限拦截按名称搜索房间支付流程查看订单信息和状态评论预定过的房间,并自动修改订单状态查看统计剩余房间数量,数量为0时不可预定 管理员功能 房间分类管理 类型的删除、修改、查询(准备添加增添功能…

数据库中的时间和前台展示的时间不一样,如何保存日期格式的数据到数据库? 如何展示数据库的日期数据到前台

我 | 在这里 🕵️ 读书 | 长沙 ⭐软件工程 ⭐ 本科 🏠 工作 | 广州 ⭐ Java 全栈开发(软件工程师) ✈️公众号 | 热爱技术的小郑 文章底部有个人公众号二维码。回复 Java全套视频教程 或 前端全套视频教程 即可获取 300G 教程资料…

Springboot整合Elasticsearch 7.X 复杂查询

这里使用Springboot 2.7.12版本&#xff0c;Elasticsearch为7.15.0。 导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency> yaml文件配置…

CGAL的空间排序

1、介绍 许多在CGAL中实现的几何算法都是增量的&#xff0c;因此它们的速度取决于插入顺序。此软件包提供了排序算法&#xff0c;可以大大提高此类算法的运行时间。 其基本原理是沿着空间填充曲线对对象进行排序&#xff0c;这样在插入顺序上&#xff0c;几何上接近的两个对象将…

详解协方差矩阵,相关矩阵,互协方差矩阵(附完整例题分析)【2】

目录 一. 写在前面 二. 相关矩阵&#xff08;Correlation Matrix&#xff09; 三. 实战分析 例题1 &#xff08;1&#xff09;均值的关系 &#xff08;2&#xff09;协方差的关系 &#xff08;3&#xff09;小结 例题2 小结 四. 补充 一. 写在前面 有关协方差矩阵和…

学习Vue单文件组件总结

今天主要学习了组件实例对象的一个重要内置关系和单文件组件。先说一下实例对象的内置关系&#xff0c;在这里要对JS中的原型链有一定的基础&#xff0c;Vue构造函数的prototype原型指向的是Vue的原型对象&#xff0c;new出来的Vue实例对__proto__同样指向的是Vue的原型对象&am…

云计算复习提纲

第一章 大数据的概念&#xff1a;海量数据的规模巨大到无法通过目前主流的计算机系统在合理时间内获取、存储、管理、处理并提炼以帮助使用者决策 大数据的特点&#xff1a;①数据量大&#xff0c;存储的数据量巨大&#xff0c;PB级别是常态&#xff1b;②多样&#xff0c;数…

Friedman检验及后续Nemenyi检验可视化

文章目录 Friedman 检验Nemeny检验 合作推广&#xff0c;分享一个人工智能学习网站。计划系统性学习的同学可以了解下&#xff0c;点击助力博主脱贫( •̀ ω •́ )✧ Friedman 检验 弗里德曼检验&#xff08;Friedman test&#xff09;是一种非参数统计检验方法&#xff0c;用…

OSG读取和添加节点学习

之前加载了一个模型&#xff0c;代码是&#xff0c; osg::Group* root new osg::Group(); osg::Node* node new osg::Node(); node osgDB::readNodeFile("tree.osg"); root->addChild(node); root是指向osg::Group的指针&#xff1b; node是 osg:…

[笔记] GICv3/v4 ITS 与 LPI

0. 写在前面 由于移植一个 pcie 设备驱动时&#xff0c;需要处理该 pcie 设备的 msi 中断(message signaled interrup)。 在 ARM 中&#xff0c; ARM 建议 msi 中断实现方式为&#xff1a; pcie 设备往 cpu 的一段特殊内存&#xff08;寄存器&#xff09;写某一个值&#xff0…

ASM-HEMT射频建模

关于ASM-HEMT RF模型 ASM-HEMT是指用于氮化镓高迁移率电子晶体管的先进SPICE模型。该模型于2018年由紧凑模型委员会&#xff08;CMC&#xff09;进行了标准化。 ASM-HEMT模型涵盖了氮化镓器件在射频&#xff08;RF&#xff09;和功率电子应用中的应用。模型手册提供了模型方程…