| 24小時(shí)熱門版塊排行榜 |
| 10 | 1/1 | 返回列表 |
| 查看: 2589 | 回復(fù): 9 | ||
todd0226新蟲(chóng) (初入文壇)
|
[求助]
fortran 調(diào)用子程序時(shí),出現(xiàn)program exception-access violation 已有1人參與
|
|
大家好,本人fortran新人,編了一段程序,但是在運(yùn)行時(shí)出現(xiàn)了如題所示的錯(cuò)誤! 因?yàn)槌绦蛱L(zhǎng),而且錯(cuò)綜復(fù)雜,不方便貼出,敬請(qǐng)見(jiàn)諒! 下面我進(jìn)行一些相關(guān)的描述,請(qǐng)各位指導(dǎo)! 我通過(guò)debug調(diào)試出問(wèn)題的出處:錯(cuò)誤信息出現(xiàn)在subroutine info_nd(...)這一行 其中:step,nelm, nj,nnode 是在主程序中聲明的整數(shù)常量 剩余的變量全是數(shù)組,全部是動(dòng)態(tài)變量,而且我全部在主程序中進(jìn)行了allocate,各個(gè)數(shù)組的維數(shù)以及上下界和子程序中聲明的完全一樣。 調(diào)試時(shí),屏幕輸出了“info_nd調(diào)試開(kāi)始”,沒(méi)有輸出“info_nd調(diào)試第一點(diǎn)”,而且綠色箭頭指向了subroutine info_nd(...),所以我斷定問(wèn)題出處在這一行。 我網(wǎng)上搜了一下,這種問(wèn)題的可能原因之一是數(shù)組越界,但是我感覺(jué)我的這種定義數(shù)組的形式應(yīng)該不會(huì)造成這個(gè)問(wèn)題(?) 此外,有這樣一個(gè)現(xiàn)象:nj = 6904,nelm=6804的時(shí)候,無(wú)論debug還是release都會(huì)在subroutine info_nd(...)這一行出現(xiàn)如題目所說(shuō)的問(wèn)題;但是當(dāng)我把nj,nelm調(diào)小了之后(<6000),發(fā)現(xiàn)debug下可以運(yùn)行成功,但是release仍然出現(xiàn)上述問(wèn)題。 所以在此請(qǐng)教大家,懇請(qǐng)予以指導(dǎo)!謝謝! 主程序 program main integer,parameter:: step=10,nj=6904,nelm=6804,nnode=4 ...... ...... do istp = 1,step ...... write(*,*)'info_nd調(diào)試開(kāi)始' call info_nd(step,istp,nelm,nj,nnode,maxgint,id_el_nd,id_nd_el,num_nd_el,gint_t,gint,elarea,stgp,svars_gp,sig11_nd,sig22_nd,sig12_nd,mises_nd) ...... end do ...... end !主程序結(jié)束 出現(xiàn)問(wèn)題的子程序 subroutine info_nd(step,istp,nelm,nj,nnode,maxgint,id_el_nd,id_nd_el,num_nd_el,gint_t,gint,elarea,stgp,svars_gp,sig11_nd,sig22_nd,sig12_nd,mises_nd) implicit none integer step,istp,nelm,nj,nnode integer:: id_el_nd(nelm,nnode),id_nd_el(nj,nelm),num_nd_el(nj),gint_t(nelm+1,step),gint(nelm,step),maxgint(step) real*8:: svars_gp(nelm,20*24,step),elarea(nelm),stgp(3,24*nelm,step) real*8:: sig_nd_temp(nnode,3),sig11_nd_temp(nj,nelm),sig22_nd_temp(nj,nelm),sig12_nd_temp(nj,nelm) real*8:: sig11_nd(nj,step),sig22_nd(nj,step),sig12_nd(nj,step),mises_nd(nj,step),area(nj) real*8:: NTN(nnode,nnode),invNTN(nnode,nnode) real*8,allocatable:: sig_gp(:, ,N(:, ,NT(:, ,invN(:,![]() real*8 sigp,tigp integer gint_el,gint_iel integer iel,igp,i,j,ii write(*,*)'info_nd調(diào)試第一點(diǎn)' ...... end |
鐵桿木蟲(chóng) (著名寫(xiě)手)
工程和科學(xué)數(shù)值計(jì)算咨詢
新蟲(chóng) (初入文壇)
新蟲(chóng) (初入文壇)
|
我在Intel visual Fortran中找到了/check:bound /trackback,然后調(diào)試發(fā)現(xiàn)沒(méi)有出現(xiàn)數(shù)組越界的問(wèn)題。 在運(yùn)行到subroutine info_nd(...)時(shí), 提示信息說(shuō):其原因可能是堆被破壞,這說(shuō)明NASA_mb05_p1.exe中或它 所加載的任何DLL中有Bug。原因也可能是用戶在NASA_mb05_p1.exe具有焦點(diǎn)時(shí)按下了F12 其中,不是后一個(gè)原因,在運(yùn)行時(shí)我并沒(méi)有碰到鍵盤(pán),關(guān)于第一個(gè)原因,能從中得到哪些信息呢? |
鐵桿木蟲(chóng) (著名寫(xiě)手)
工程和科學(xué)數(shù)值計(jì)算咨詢
新蟲(chóng) (初入文壇)
|
下面是調(diào)試程序運(yùn)行時(shí)出現(xiàn)的信息: “NASA_mb05_p1.exe”: 已加載“D:\XDT\IVF\NASA_mb05_p1\NASA_mb05_p1\x64\Debug\NASA_mb05_p1.exe”,已加載符號(hào)。 “NASA_mb05_p1.exe”: 已加載“C:\Windows\System32\ntdll.dll” “NASA_mb05_p1.exe”: 已加載“C:\Windows\System32\kernel32.dll” “NASA_mb05_p1.exe”: 已加載“C:\Windows\System32\KernelBase.dll” “NASA_mb05_p1.exe”: 已加載“D:\Program Files (x86)\Intel\Composer XE 2013\redist\intel64\compiler\libiomp5md.dll”,已加載符號(hào)(去除源信息)。 “NASA_mb05_p1.exe”: 已加載“C:\Windows\System32\imagehlp.dll” “NASA_mb05_p1.exe”: 已加載“C:\Windows\System32\msvcrt.dll” “NASA_mb05_p1.exe”: 已加載“C:\Windows\System32\advapi32.dll” “NASA_mb05_p1.exe”: 已加載“C:\Windows\System32\sechost.dll” “NASA_mb05_p1.exe”: 已加載“C:\Windows\System32\rpcrt4.dll” “NASA_mb05_p1.exe”: 已卸載“C:\Windows\System32\advapi32.dll” “NASA_mb05_p1.exe”: 已卸載“C:\Windows\System32\sechost.dll” “NASA_mb05_p1.exe”: 已卸載“C:\Windows\System32\rpcrt4.dll” “NASA_mb05_p1.exe”: 已加載“C:\Windows\System32\advapi32.dll” “NASA_mb05_p1.exe”: 已加載“C:\Windows\System32\sechost.dll” “NASA_mb05_p1.exe”: 已加載“C:\Windows\System32\rpcrt4.dll” “NASA_mb05_p1.exe”: 已卸載“C:\Windows\System32\advapi32.dll” “NASA_mb05_p1.exe”: 已卸載“C:\Windows\System32\sechost.dll” “NASA_mb05_p1.exe”: 已卸載“C:\Windows\System32\rpcrt4.dll” NASA_mb05_p1.exe 中的 0x0000000140586727 處最可能的異常: 0xC0000005: 寫(xiě)入位置 0x000000000000f000 時(shí)發(fā)生訪問(wèn)沖突 “NASA_mb05_p1.exe”: 已加載“C:\Windows\System32\dbghelp.dll” HEAP[NASA_mb05_p1.exe]: HEAP: Free Heap block 20a80 modified at 21000 after it was freed Windows 已在 NASA_mb05_p1.exe 中觸發(fā)一個(gè)斷點(diǎn)。 其原因可能是堆被損壞,這說(shuō)明 NASA_mb05_p1.exe 中或它所加載的任何 DLL 中有 Bug。 原因也可能是用戶在 NASA_mb05_p1.exe 具有焦點(diǎn)時(shí)按下了 F12。 輸出窗口可能提供了更多診斷信息。 程序“[3172] NASA_mb05_p1.exe: 本機(jī)”已退出,返回值為 0 (0x0)。 不知道從“HEAP[NASA_mb05_p1.exe]: HEAP: Free Heap block 20a80 modified at 21000 after it was freed”中能得到什么信息嗎 |
鐵桿木蟲(chóng) (著名寫(xiě)手)
工程和科學(xué)數(shù)值計(jì)算咨詢
新蟲(chóng) (初入文壇)
銅蟲(chóng) (初入文壇)
銅蟲(chóng) (初入文壇)
| 10 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 342求調(diào)劑 +14 | Mary Keen 2026-03-28 | 15/750 |
|
|---|---|---|---|---|
|
[考研] 319求調(diào)劑 +15 | 太容易1018 2026-04-01 | 15/750 |
|
|
[考研] 求調(diào)劑 302分初試 0854 +5 | 伶可樂(lè) 2026-04-02 | 5/250 |
|
|
[考研] 一志愿085600中科院寧波所276分求調(diào)劑 +26 | 材料學(xué)257求調(diào)劑 2026-03-28 | 27/1350 |
|
|
[考研] 求調(diào)劑!生物與醫(yī)藥專碩 +4 | 逆轉(zhuǎn)陸先生 2026-04-01 | 4/200 |
|
|
[考研] 一志愿北交大材料工程總分358 +8 | cs0106 2026-04-01 | 9/450 |
|
|
[考研] 324分 085600材料與化工 +20 | 呆鵝oor 2026-03-27 | 20/1000 |
|
|
[考研] 0710生物學(xué)求調(diào)劑 +9 | manman511 2026-04-01 | 9/450 |
|
|
[考研] 270調(diào)劑 +7 | maxjxbsk 2026-04-02 | 7/350 |
|
|
[考研] 302求調(diào)劑一志愿北航070300,本科鄭大化學(xué) +8 | 圣日耳曼條 2026-04-01 | 11/550 |
|
|
[考研] 0703一志愿南師大334求調(diào)劑 +4 | seven7yu 2026-03-30 | 4/200 |
|
|
[考研] 調(diào)劑 +5 | 好好讀書(shū)。 2026-03-28 | 7/350 |
|
|
[考研] 301求調(diào)劑 +8 | axibli 2026-04-01 | 8/400 |
|
|
[考研] 080500-315分復(fù)試調(diào)劑 +9 | 上岸3821 2026-03-31 | 9/450 |
|
|
[考研]
|
小羊36 2026-03-30 | 4/200 |
|
|
[考研] 289求調(diào)劑 +3 | Acesczlo 2026-03-29 | 4/200 |
|
|
[考研] 085404 22408 315分 +5 | zhuangyan123 2026-03-31 | 6/300 |
|
|
[考研] 一志愿浙江大學(xué)工科動(dòng)力工程370,數(shù)一121,專業(yè)課135,現(xiàn)在能去哪里 +3 | 080700調(diào)劑 2026-03-30 | 4/200 |
|
|
[考研] 085600,專業(yè)課化工原理,320分求調(diào)劑 +6 | 大饞小子 2026-03-29 | 6/300 |
|
|
[考研] 調(diào)劑求收留 +7 | 果然有我 2026-03-26 | 7/350 |
|