CentOS中Fortran资源(文件/库)共享方法
NFS是Linux/Unix系统间常用的分散式文件共享协议,适合局域网内多台CentOS主机共享Fortran代码、库文件或数据。
yum install -y rpc-bind nfs-utils;mkdir /datas && chmod -R 777 /datas;/etc/exports,添加共享规则(*表示允许所有IP访问,rw表示读写权限,sync表示同步写入):/datas *(rw,sync);systemctl start nfs && systemctl enable nfs。yum install -y nfs-utils;<服务器IP>替换为实际IP):mount -t nfs <服务器IP>:/datas /data-nfs;/etc/fstab文件,添加一行):<服务器IP>:/datas /data-nfs nfs defaults 0 0。/data-nfs目录访问服务端的Fortran资源。Samba支持Windows与Linux系统间文件共享,适合需要跨平台的场景。
yum install -y samba samba-client;/etc/samba/smb.conf,在文件末尾添加共享段(path指定共享目录路径,valid users指定允许访问的用户,writable=yes允许写入,create mask和directory mask设置文件/目录权限):[fortran_share]
comment = Fortran Resources
path = /path/to/fortran/files
valid users = your_username
writable = yes
browsable = yes
create mask = 0664
directory mask = 0775
重启Samba服务:systemctl restart smb;firewall-cmd --permanent --zone=public --add-service=samba && firewall-cmd --reload。yum install -y samba-client;username替换为服务端授权的用户,password为用户密码):mount -t cifs //server_IP/fortran_share /mnt/samba -o username=username,password=password;/etc/fstab文件,添加一行)://server_IP/fortran_share /mnt/samba cifs username=username,password=password,uid=1000,gid=1000,iocharset=utf8 0 0(uid/gid设置为当前用户ID,iocharset=utf8支持中文路径)。若需共享Fortran编写的函数/子程序,可将代码编译为共享库(.so文件),供其他Fortran或C/C++程序调用。
example.f90,包含add子程序):subroutine add(a, b, c) bind(C, name="add_fortran") ! 使用bind(C)确保C兼容
use iso_c_binding
real(c_double), intent(in), value :: a, b
real(c_double), intent(out) :: c
c = a + b
end subroutine add
使用gfortran编译为共享库(-shared表示生成共享库,-fPIC表示位置无关代码):gfortran -shared -fPIC -o libexample.so example.f90。/usr/local/lib):sudo cp libexample.so /usr/local/lib/;sudo ldconfig;-L/path/to/library -lexample,如gfortran main.f90 -L/usr/local/lib -lexample -o main)。使用Git等版本控制系统可实现Fortran资源的协同开发与共享,适合团队环境。
yum install -y git;git clone <仓库URL>;git add .)、提交(git commit -m "message")、推送(git push origin main);团队成员通过git pull获取最新代码。