给芒果公主的一封信
给芒果公主的一封信
(如果看不清图片,拉到最后有文字版)
亲爱的芒果公主:
见字不如面,尽管我的字丑,但我相信当你在读这段话时脑海里仍然会浮现出我英俊的面庞。是的小老鼠半夜偷偷溜进了芒果公主家的园子,藏起了这封信,然后咚咚咚地敲响芒果公主的门,等待芒果公主发现这封信。
转眼又是一年,遥记去年此时一切还未尘埃落定,芒果公主还在四处寻找国外的学校,鼠鼠还在写论文的旋涡中挣扎。那时的我们聊得多么甜蜜,现在回看还是会会心一笑,原来网络上别人甜甜的恋爱,自己已经拥有了。
这一年里发生了很多。在北京你空降在我身后,你给了我伸手就能拥抱日夜思念的人的喜悦;在广州融创我们跨过新年,烟火下我们拥抱,你的大眼睛无辜地望着我,嘴角带着些许笑意,那是我见过最美的女人;在珠海长隆我们体验了鹦鹉过山车,那是我第一次坐过山车,但你比我还害怕。你紧紧抓着我的手,我告诉自己要守护好这只胆小的猫猫。在石家庄我们走过古寺,穿过小火车步行街,爬上苍岩山,在温泉谷度过了特别的一夜,和你一起历险的感觉真好;在敦煌,我们吃到了美味的手抓饭、沙葱和杏皮茶。在雅丹的星空下,在荒芜的 ...
Linux 操作
前言
记录Linux相关操作命令和学习过程、心得。学习网站:蓝桥云课程
基本操作
123456789101112131415161718# 创建一个名为 file 的文件,touch是一个命令touch file# 进入一个目录,cd是一个命令cd /etc/# 查看当前所在目录pwd# 显示当前目录下文件名lsls -a # 显示隐藏文件ls *.txt# 查看命令帮助manman ls
用户及文件权限管理
12345678# 创建新用户sudo adduser xiao# 切换用户su xiao# 退出当前用户exit
123456789# 查看用户所在组groups xiao# 把用户加入sudo中sudo usermod -G sudo lilei# 删除用户sudo deluser lilei --remove-home
查看文件权限
12# 使用较长格式列出文件ls -l
读权限,表示你可以使用 cat <file name> 之类的命令来读取某个文件的内容;写权限,表示你可以编辑和修改某个文件的内容;
执行权限,通常指可以运行的二进制程序文件或者脚本文 ...
CESM的安装及运行
关于CESM的安装
总的过程下来,安装的问题基本出在 config_machines.xml 和 config_compilers.xml 上。 对于这两个文件一定要根据自己的机器情况进行设置。
除此之外,在安装过程中,库的依赖库需要统一。例如在编译 esmf 时使用的是 mpich , 而在配置CESM时,我设置的是 openmpi。 这就导致在 ./case.build 中出现 mct 等报错问题,最后我删除了esmf 用openmpi 重新编译解决了问题。 应该把CESM所有的库,以及这些库的依赖库都统一起来 (类似的还有pnetcdf 也应该统一成用openmpi 编译)。
另一个问题是网络问题,不过是在./manage_externals/checkout_externals 还是 ./case.submit 都需要从网络下载一些文件。然而网络被墙,这些步骤频繁失败。解决方案可以是在本地开启Clash 代理,然后在linux 中开启使用本地的代理,从而让linux 连上本地开启的VPN。
还有一个关于Lapack的问题。这个库的编译参照linux关于blas、 ...
作图颜色选取
前言
不管是做折线图还是填色图,matplotlib默认的颜色用多了总有些审美疲劳。且大部分颜色是暗色调,缺乏视觉冲击。下面我收集一些觉得好看的颜色或colorbar,用于后续随时选取调用。
折线颜色
冷暖色调
1234567891011fig, ax = plt.subplots(1,2)ax[0].plot(range(1,6), color='#ff4500', label='Warm #ff4500')ax[0].plot(range(5), color='#00bfff', label='Cold #00bfff')ax[1].plot(range(1,6), color='#FF69B4', label='Warm #FF69B4')ax[1].plot(range(5), color='#00CED1', label='Cold #00CED1')fig.legend(ncol=2)
DART学习
前言
DART是一款NCAR开发的资料同化系统,可以直接与CESM、WRF等模式结合。同化包括MLS、SABER等卫星资料。这个文章记录一下,使用WACCM+DART中遇到的一些坑。
DART_config
在DART/models/cam-fv/shell_scripts/cesm2_1/中运行setup_hybrid,这将创建CESM的case。在caseroot下将创建DART_config, 他相当于是DART的激活器。 运行DART_config才能在运行case中实现同化,否则就是普通的CESM的case运行。
然而自动生成DART_config有个小bug
123456if (-f ${DART_SCRIPTS_DIR}/compress.csh) then $COPY -f -${VERBOSE} ${DART_SCRIPTS_DIR}/compress.csh . || exit 43else echo "ERROR: no compress.csh in ${DART_SCRI ...
barotroicalModel
前言
最近想试着用Fortran写一个正压原始方程的预报程序。在这过程中会遇到很多问题,例如fortran编译,程序编写等。这个博文就用来做记录了。
随笔
ifort和gfortran
在用gfortran编译时遇到一下问题:
f951: Fatal Error: Reading module ‘/public/home/elzd_2024_000125/libs/netcdf/intel/4.7.4/include/netcdf.mod’ at line 1 column 2: Unexpected EOF compilation terminated.
原因是我在程序里用了 use netcdf 而我使用的netcdf是ifort编译的,因此在编译fortran程序是也得用ifort
编译顺序
不同例如在main.f90里 use 了 constant.f90在编译时不能写为 ifort main.f90 constant.f90 -o main 。因为应该把constant.f90写在main.f90之前。或者
12345ifort -c main.f90ifort ...
VsCode使用jupyter时附加交互窗口
前言
Vscode里使用jupyter notebook是很方便的事情,但我习惯使用F9逐行运行。这样方便调试和查看变量。但是在notebook中使用F9跳出的交互窗口与notebook本身并不共享内存,也就是在交互窗口与notebook之间数据不互通。Github上也有不少帖子在呼吁这一功能的增加,例如Support a notebook “scratch pad” and/or integrate interactive window experience for notebooks · Issue #4573 · microsoft/vscode-jupyter (github.com) 和 Support a scratchpad for a jupyter notebook · Issue #6484 · microsoft/vscode-jupyter (github.com)。 目前有一个可行的解决方案来自第二个链接。
jupyter 添加conda环境
jupyter使用的比较少,我才发现在使用之前需要先做一些操作才能找到conda环境
如果jupyter显示内核不可用 ...
VsCode连接到集群的计算节点
前言
最近拿到了大装置的账号,在大装置中用户在登陆节点登陆,在网络节点下载,在计算节点计算。VsCode可以正常连接到登陆节点,但在登陆节点运行程序、处理数据会引起节点拥堵。应当进一步连到计算节点上进行处理数据。
申请计算节点
大装置上的调度系统是slurm,可使用 salloc 申请计算节点
1salloc -n 1 -c 1 -p cpu_single --mem=50G
在debug分区,申请ntask=1, cpu=1的节点资源, 申请50G内存,内存太小读取数据会导致崩溃
使用 squeue 查询申请到的节点名,假如是 a3105n01
跳板机
查询网络教程,我发现大神们是通过本地计算机作为”跳板“连接到计算节点的。首先应当在本地cmd中输入
1ssh-keygen -t rsa
一路回车,将在C:/User/用户名/.ssh/下生成 id_rsa.pub
添加密钥
假设我们已经在登陆节点login02上使用xshell登陆。将 id_rsa.pub改名myDesktop_id_rsa.pub上传到 ~/.ssh/。然后将密钥添加
1cat myDesktop_id_rsa. ...
气象知识随笔
前言
记录一些大气科学基础知识。例如水汽通量的定义和单位总是忘记。罗斯贝波波速也记不清。这篇文章就当是平时学习的note。
水汽通量及散度
罗斯贝波速
罗斯贝波频率:
$$
\begin{align}
\omega = Uk - \beta \frac{k} { { {k^2} + {l^2} } }
\end{align}
$$
相速度和群速度:
$$
\begin{align}
c &= \frac{\omega } {k} = U - \frac{\beta } { { {k^2} + {l^2} } }\\
{c_g} &= \frac{ {\partial \omega } } { {\partial k} } = U - \frac{ {\beta ({l^2} - {k^2})} } { { { { ( {k^2} + {l^2})}^2} } }
\end{align}
$$
静力稳定度/Brunt vaisala frequency
$$
\begin{align}
{N^2} = \frac{g} {\theta }\frac{ {d\theta } ...
LBM 安装-运行-修改-debug
[TOC]
前言
LBM(linear baroclinic model)LBM main (u-tokyo.ac.jp)是日本人开发的线性斜压模式。它运行快,资源占用少,易上手。给定背景场和强迫场,可以得到大气的定常响应。利用LBM可以快速验证自己的猜测和结论。
这几天安装、运行、调试了LBM,大致摸清了整个流程。其中有许多坑点,但都被解决了,下文将记录安装运行流程和坑点。
安装
首先需要向LBM的管理人员索要账号和密码以下载LBM,他的邮箱是 hayashi.michiya@nies.go.jp
我的账号密码记录在所邮箱中。
接着安装LBM的流程基本是跟着洪海旭师兄在CDSN上的博文来的LBM模式学习·保姆级安装及初步使用教程_lbm保姆-CSDN博客 以及 线性斜压模式LBM学习&安装实录 - chinagod - 博客园 (cnblogs.com)
两篇博文分别使用的是ICC和GCC编译模式,我只使用了GCC。第一篇博文提到sysdep_linux20201125.tar.gz 文件,也是从LBM官网上下载。
以下是文件结构
运行
1. 分辨率设置
位置:$LNHOM ...









