在 C++ 中,可以通过各种选项将参数传递给函数(按值传递、引用、指针、const 引用、const 指针等)。我想知道所有这些选项的 Fortran 模拟是什么。这种模拟是从概念的角度来看的,而不是从互操作性的角度来看。
据我所知,Fortran 通过引用传递其参数,此规则有一些例外(非连续数组)。考虑到这一点,以下转换是否正确,或者是否可以给出更好的属性?
void f(X x); // Pass by value
这只是传递的原始值的副本
SUBROUTINE f(x)
TYPE(X), VALUE :: x
...
END SUBROUTINE f
Run Code Online (Sandbox Code Playgroud)void f(X &x); // Pass by reference
这x是一个引用,其值已更新。由于引用传递是 Fortran 中的“默认值”,我看到剩下两个可能的选项:参数 anINTENT(OUT)或INTENT(INOUT)
SUBROUTINE f(x)
TYPE(X), INTENT([IN]OUT) :: x
...
END SUBROUTINE f
Run Code Online (Sandbox Code Playgroud)void f(X const &x); // Pass by reference-to-const
这x是一个无法更新其值的引用。
SUBROUTINE f(x)
TYPE(X), INTENT(IN) :: x
...
END SUBROUTINE f
Run Code Online (Sandbox Code Playgroud)void f(X *p); // Pass by …
我使用此资源在EC2中创建了一个带有terraform的AMI:
resource "aws_instance" "devops-demo" {
ami = "jnkdjsndjsnfsdj"
instance_type = "t2.micro"
key_name = "demo-devops"
user_data = "${file("ops_setup.sh")}"
}
Run Code Online (Sandbox Code Playgroud)
用户数据执行安装Java JRE 的shell脚本:
sudo yum remove java-1.7.0-openjdk -y
sudo wget -O /opt/server-jre-8u172-linux-x64.tar.gz --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u172-b11/a58eab1ec242421181065cdc37240b08/server-jre-8u172-linux-x64.tar.gz"
sudo tar xzf /opt/server-jre-8u172-linux-x64.tar.gz
export JAVA_HOME=/jdk1.8.0_172
export JRE_HOME=/jdk1.8.0_171/jre
export PATH=$JAVA_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
但是没有一个环境变量可行.但是,如果我通过ssh连接到实例并执行export命令,它可以正常工作.
有没有办法用terraform定义环境变量?
linux environment-variables amazon-ec2 amazon-web-services terraform
我正在 Fortran 90/95 的 Monte Carlo 模拟中编写一个检查点函数,我使用的编译器是 ifort 18.0.2,在详细说明我正在使用的伪随机生成器的版本之前:
A C-program for MT19937, with initialization, improved 2002/1/26.
Coded by Takuji Nishimura and Makoto Matsumoto.
Code converted to Fortran 95 by Josi Rui Faustino de Sousa
Date: 2002-02-01
Run Code Online (Sandbox Code Playgroud)
源代码见mt19937。
我的蒙特卡罗模拟代码的一般结构如下:
program montecarlo
call read_iseed(...)
call mc_subroutine(...)
end
Run Code Online (Sandbox Code Playgroud)
内 read_iseed
subroutine read_iseed(...)
use mt19937
if (Restart == 'n') then
call system('od -vAn -N4 -td4 < /dev/urandom > '//trim(IN_ISEED)
open(unit=7,file=trim(IN_ISEED),status='old')
read(7,*) i
close(7)
!This is only used to initialise the PRNG …Run Code Online (Sandbox Code Playgroud) 当我在某些记录集上执行求和时,我得到了奇怪的答案.在一种情况下,我没有使用%d,在下一种情况下我使用的是%d
使用%d之和的第一个表达式
awk -F"|" '(NR > 0 && NR < 36) {sum +=$150} END {printf ("%d\n",sum)}' muar.txt
-|33
Run Code Online (Sandbox Code Playgroud)
没有%d
awk -F"|" '(NR > 0 && NR < 36) {sum +=$150} END {printf ("\n"sum)}' muar.txt
-|34
Run Code Online (Sandbox Code Playgroud)
为什么它从34变为33
只是添加更多信息,直到34行我得到的总和为33.03而第35行的值为0.97所以实际上它应该是34而不是33
根据测试评论的附加细节 - 您可以创建一个文件,让我们的a.txt只有一个字段.第一个值是空白第二个是1.95然后连续18次097,然后是0.98然后是6次0.97然后是0.98然后是3次0.97然后是0.98 2次然后是2次0.97
或者,您可以连续使用1.95 - 1次,0.97 - 29次和0.98次4次
我浏览了文档以使用kubectl edit命令编辑kubernetes资源。执行命令后,将在编辑器中打开YAML格式的文件,在其中可以根据需要更改值并保存。我正在尝试通过执行这些步骤sed。如何实现以下步骤?
kubectl edit部署资源true到的值false(使用sed)我试图通过以下方式实现这一目标:
$ kubectl edit deployment tiller-deploy -n kube-system | \
sed -i "s/\(automountServiceAccountToken:.*$\)/automountServiceAccountToken: true/g"`
Run Code Online (Sandbox Code Playgroud) 例如,如果您希望在每次重新启动后运行一个 cron 作业,您可以像这样将 sth 添加到您的 cron 文件中:
@reboot ./do_sth
Run Code Online (Sandbox Code Playgroud)
有没有类似从睡眠状态醒来的东西?
我正在尝试计算 Unix 目录中所有子目录中的子目录和所有文件总数。我试过这个:
ls -lR | grep ^d | wc -l
Run Code Online (Sandbox Code Playgroud)
但这只是给了我总的子目录,而不是总文件。我将如何修改它,或者有没有办法从一个命令中找出两个数字?还是我应该把它分成两部分?
从shell,我需要列出所有子目录的大小.我目前正在使用:
du -hs * | sort -hr
Run Code Online (Sandbox Code Playgroud)
但是,这只会降低一级,并且不会遍历目录树.
我的文件包含以下内容:
IP
111
22
25
Run Code Online (Sandbox Code Playgroud)
我想以 格式打印输出IP 111,22,25。
我已经尝试过tr ' ' ,,但不起作用
我有很多文件(我以5为例)
如果与第一个文件不匹配,则应在输出中附加0
文件1
1001 1 2
1002 1 2
1003 3 5
1004 6 7
1005 8 9
1009 2 3
Run Code Online (Sandbox Code Playgroud)
文件2
1002 7
1003 8
Run Code Online (Sandbox Code Playgroud)
文件3
1001 5
1002 3
Run Code Online (Sandbox Code Playgroud)
文件4
1002 10
1004 60
1007 4
Run Code Online (Sandbox Code Playgroud)
文件5
1001 102
1003 305
1005 809
Run Code Online (Sandbox Code Playgroud)
期望的输出
1001 1 2 0 5 0 102
1002 1 2 7 3 10 0
1003 3 5 8 0 0 305
1004 6 7 0 0 60 0
1005 8 9 0 0 0 …Run Code Online (Sandbox Code Playgroud)