| 查看: 1663 | 回复: 12 | ||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||
[求助]
数组超出问题
|
||
| 各位虫右,本人在用fortran编程序处理问题时遇到了数组超出的问题(超出了fortran默认允许的最大值),请问有什么方法可以解决这个问题吗? 因为我在处理数据时需要开很大的数组,所以还望大家提供点意见啊。 |
» 猜你喜欢
存款400万可以在学校里躺平吗
已经有7人回复
基金委咋了?2026年的指南还没有出来?
已经有10人回复
拟解决的关键科学问题还要不要写
已经有6人回复
基金申报
已经有6人回复
推荐一本书
已经有13人回复
国自然申请面上模板最新2026版出了吗?
已经有17人回复
纳米粒子粒径的测量
已经有8人回复
疑惑?
已经有5人回复
计算机、0854电子信息(085401-058412)调剂
已经有5人回复
Materials Today Chemistry审稿周期
已经有5人回复
» 本主题相关价值贴推荐,对您同样有帮助:
已经排好序的数组的求和问题
已经有13人回复
求助数组越界问题!
已经有8人回复
ssh上运行程序出现segmentation fault
已经有6人回复
求助:关于fortran建数组问题,谢谢!
已经有4人回复
VC++中函数返回数组指针或者带指针的结构体的编译方式是否可取?
已经有6人回复
数组超出限制怎么办?
已经有3人回复
关于c语言的一个小问题 坐等回复啊 急啊 是关于建立数组的
已经有9人回复
【求助】C# 中如何声明结构体数组并赋值
已经有13人回复
【求助】DPD程序编写边界如何处理?
已经有12人回复
【求助】一个求数组绝对值的小问题
已经有7人回复
【求助】C++程序所需内存远远大于物理内存怎么办?
已经有8人回复


3楼2013-06-30 18:25:11
pippi6
铁杆木虫 (著名写手)
工程和科学数值计算咨询
- 应助: 413 (硕士)
- 贵宾: 0.002
- 金币: 7116.5
- 散金: 15
- 红花: 63
- 帖子: 1639
- 在线: 798.9小时
- 虫号: 2469437
- 注册: 2013-05-14
- 专业: 计算数学与科学工程计算
2楼2013-06-30 18:06:31
pippi6
铁杆木虫 (著名写手)
工程和科学数值计算咨询
- 应助: 413 (硕士)
- 贵宾: 0.002
- 金币: 7116.5
- 散金: 15
- 红花: 63
- 帖子: 1639
- 在线: 798.9小时
- 虫号: 2469437
- 注册: 2013-05-14
- 专业: 计算数学与科学工程计算
4楼2013-06-30 18:39:21
|
program main implicit none integer nn_conf, nn_mol, n_conf, n_mol1,n_mol2 parameter (nn_conf=200000, nn_mol=196) real*8 len,b integer a, i, j, m, n, t,num2(nn_conf,nn_mol) parameter(m=4,n=2) character*4 name1 character*20 filename real*8 xc_1(nn_conf,nn_mol), yc_1(nn_conf,nn_mol), zc_1(nn_conf,nn_mol) real*8 xcc(nn_mol),ycc(nn_mol),zcc(nn_mol) real*8 xcc_1, ycc_1, zcc_1, xcc_2, ycc_2, zcc_2 real*8 xc_c, yc_c, zc_c real*8 dx_c, dy_c, dz_c real*8 num_ch4(nn_conf),num_co2(nn_conf), d_ch4(nn_conf),d_co2(nn_conf), r_c write(*,18) 18 format(/' ###################################################################') write(*,19) 19 format(' #####################################################################') write(*,20) 20 format(' ### ###') write(*,21) 21 format(' ### MEAN SQUARED DISPLACEMENT --- Software Tools for Deffusion ###') write(*,22) 22 format(' ## ##') write(*,30) 30 format(' ## Version 1.1 December 2012 ##') write(*,23) 23 format(' ## ##') write(*,24) 24 format(' ## Copyright <c> Zhen Yang & Guobing 2012-2022 ##') write(*,25) 25 format(' ## ##') write(*,26) 26 format(' ### All Rights Reserved ###') write(*,27) 27 format(' ### ###') write(*,28) 28 format(' #####################################################################') write(*,29) 29 format(' ###################################################################') write(*,11) 11 format(/'Enter the filename of archive (.arc):',$) read(*,*) filename open(1, file=filename) write(*,12) 12 format(/'Enter the filename of output (.txt):'$) read(*,*) filename open(2, file=filename) write(*,13) 13 format(/,'Enter the number of configurations:', $) read(*,*) n_conf write(*,14) 14 format(/,'Enter the number of methane molecules:', $) read(*,*) n_mol1 write(*,15) 15 format(/,'Enter the number of carbon dioxide molecules:', $) read(*,*) n_mol2 write(*,16) 16 format(/,'Enter the length of simulation box:', $) read(*,*) len write(*,38) 38 format(/,'Enter the time of dump(ps):', $) read(*,*) b write(*,*) ' Calculating ...... ' do i =1 , n_conf do j = 1, n_mol1 + n_mol2 read(1, *) a, name1, xc_1(i,j), yc_1(i,j), zc_1(i,j),num2(i,j) end do end do do j = 1, n_mol1 + n_mol2 xcc(j) = xc_1(1,j) ycc(j) = yc_1(1,j) zcc(j) = zc_1(1,j) end do do i = 1 , n_conf-1 do j = 1 , n_mol1 + n_mol2 dx_c = xc_1(i+1,j) - xcc(j) dy_c = yc_1(i+1,j) - ycc(j) dz_c = zc_1(i+1,j) - zcc(j) dx_c = dx_c - anint(dx_c/len)*len dy_c = dy_c - anint(dy_c/len)*len dz_c = dz_c - anint(dz_c/len)*len xcc(j) = xc_1(i+1,j) ycc(j) = yc_1(i+1,j) zcc(j) = zc_1(i+1,j) xc_1(i+1,j) = xc_1(i,j) + dx_c yc_1(i+1,j) = yc_1(i,j) + dy_c zc_1(i+1,j) = zc_1(i,j) + dz_c end do end do do t = 1, n_conf/2 num_ch4(t) = 0.0 num_co2(t) = 0.0 end do do i=1, n_conf do j=1, n_mol1 + n_mol2 xcc_1 = xc_1(i,j) ycc_1 = yc_1(i,j) zcc_1 = zc_1(i,j) do t=1,n_conf/2 if ( i + t <= n_conf ) then xcc_2 = xc_1(i+t,j) ycc_2 = yc_1(i+t,j) zcc_2 = zc_1(i+t,j) xc_c = xcc_1 - xcc_2 yc_c = ycc_1 - ycc_2 zc_c = zcc_1 - zcc_2 r_c = xc_c**2 + yc_c**2 + zc_c**2 if(num2(i,j)==1)then num_ch4(t) = num_ch4(t) + r_c elseif(num2(i,j)==3)then num_co2(t) = num_co2(t) + r_c end if else goto 10 end if end do 10 continue end do end do do t=1, n_conf/2 d_ch4(t) = real(num_ch4(t))/(real(n_conf-t)*real(n_mol1)) d_co2(t) = real(num_co2(t))/(real(n_conf-t)*real(n_mol2)) write(2,"(f12.6,2f14.6)" b*t, d_ch4(t)*0.01,d_co2(t)*0.01end do end 对于上面的程序,如果就按照设置的最大值输入的话,编译的时候会出现warning,这个时候该采取什么办法呢? |

5楼2013-06-30 19:00:56











回复此楼
b*t, d_ch4(t)*0.01,d_co2(t)*0.01