爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 19966|回复: 1

[源代码] 【分享贴】把ncl中的gc_inout改写成f90子程序

[复制链接]

新浪微博达人勋

发表于 2021-5-20 10:59:53 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 立方光年的团子 于 2021-5-20 11:11 编辑

ncl中的gc_inout:判定目标点在闭合曲线内(含边界上)/外

官网:
F77源码包含在ncl安装包的这个文件中:
/ncl_ncarg-6.6.2/ni/src/lib/nfpfort/sg_tools.f


提取与gcinout有关的子函数,并改写成f90子程序

使用示例:
  1. !--------------------------------------------------
  2. !-------------- USAGE -----------------------------
  3. !--------------------------------------------------

  4. !----GCINOUT=0   : in
  5. !----GCINOUT=1   : out
  6. !----GCINOUT=-1  : error


  7. include "./gc_inout.f90"
  8. program ex1
  9.     implicit none
  10.     integer,parameter :: NPTS=5
  11.     real(kind=8) :: blat(NPTS),blon(NPTS)
  12.     real(kind=8) :: plat,plon
  13.     real(kind=8) :: WORK(4,NPTS)
  14.     integer GCINOUT

  15.     blat=DBLE((/20,20,40,40,20/))         !边界:闭合曲线(头尾同一点)注意双精度
  16.     blon=DBLE((/100,120,120,110,100/))   

  17.     plat=DBLE(30)                         !目标点
  18.     plon=DBLE(110)

  19.     print*,GCINOUT(plat, plon, blat, blon, 5, WORK)

  20.     stop
  21. end




注意事项:
1.边界和目标点都需要双精度
2.边界需闭合,若想看在环装区域的内/外,可使用两次gcinout函数来实现


附件包含
1.打包以下两个文件,由于付出了时间和精力,想要1贡献
①.改写后的可以直接使用的f90子程序 gc_inout.f90
②.源码(F77)sg_tools.f
gcinout.zip (10.81 KB, 下载次数: 3, 售价: 1 贡献)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2024-1-16 18:13:07 | 显示全部楼层
谢谢分享
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

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

本版积分规则

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

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

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