爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 266|回复: 2

NCL代码运行错误

[复制链接]

新浪微博达人勋

发表于 2024-9-30 11:03:45 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
哪位大佬能帮我看看这NCL代码问题出在哪???


; 打开NetCDF文件
filename = "herold_etal_eocene_biome_1x1.nc"
f = addfile(filename, "r")

; 读取纬度数据
lat = f->lat

; 读取需要修改的变量 'eocene_biome_zonal_hp'
data_var = f->eocene_biome_zonal_hp

; 获取纬度的维度信息
nlat = dimsizes(lat)

; 创建一个新的数组来存储修改后的数据,保持与原数据维度一致
new_data_var = new(dimsizes(data_var), "float")  ; 初始化新的数据数组

; 循环遍历每个纬度,并根据纬度范围重新赋值
do i = 0, nlat - 1
    if (lat(i) >= -90 .and. lat(i) < -60) then
        new_data_var(i,:) = 19
    else if (lat(i) >= -60 .and. lat(i) < -30) then
        new_data_var(i,:) = 18
    else if (lat(i) >= -30 .and. lat(i) < -20) then
        new_data_var(i,:) = 2
    else if (lat(i) >= -20 .and. lat(i) <= 20) then
        new_data_var(i,:) = 10
    else if (lat(i) > 20 .and. lat(i) <= 30) then
        new_data_var(i,:) = 2
    else if (lat(i) > 30 .and. lat(i) <= 60) then
        new_data_var(i,:) = 18
    else if (lat(i) > 60 .and. lat(i) <= 90) then
        new_data_var(i,:) = 19
    end if
end do

; 将修改后的数据写入新的NetCDF文件
new_filename = "modified_herold_etal_eocene_biome_1x1.nc"
fout = addfile(new_filename, "c")

; 定义新的变量,并将数据写入
fout->eocene_biome_zonal_hp = new_data_var

; 关闭文件
delete(fout)



密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2024-9-30 14:47:58 | 显示全部楼层
连报错都没,怕是要让大家当人肉计算器哦
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2024-9-30 17:56:45 | 显示全部楼层
有多少个else if 就要写多少个end if,这个和fortran好像不一样
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表