資源描述:
《讀有限元Fortran程序筆記》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、讀有限元程序筆記1.ALLOCATABLE::COORD(:,:),PROPS(:,:,:)!聲明兩個(gè)可變大小的數(shù)組,COORD(:,:)是二維數(shù)組,PROPS(:,:,:)是三維數(shù)組。2.Fortran程序行首為C代表改行為注釋,不會(huì)被編譯3.全局變量(common),不同的程序之間,也就是在不同的函數(shù)之間或者是主程序跟函數(shù)之間,除了可以通過傳遞參數(shù)的方法來共享內(nèi)存,還可以通過“全局變量”來讓不同程序中聲明出來的變量使用相同的內(nèi)存位置。4.Dimensional維的,viscoplastic塑性的,elas
2、tic有彈力的,finite有限的,element元素,program程序。5.THREEDIMENSIONALELASTIC-VISCOPLASTICFINITEELEMENTPROGRAM三維彈塑性有限元程序6.Module可以用來封裝程序模塊,通常是用來把程序中,具備相關(guān)功能的函數(shù)及變量封裝在一起。程序在開始定義了一個(gè)module模塊,在模塊中定義了MXKKK=50000000,MXGSJ=1000,MXGSJ=1000三個(gè)常量(PARAMETER表示常量),并且每個(gè)常量都賦了值。在module模塊中定
3、義了NELEM,NPOIN,NPROP,MXDFN,NSTEP,IDEVP,IDDP,LTYPE以及NFIX1,NPL,NVL,NSL,NHL,NTL,IDCVG,NTOTV,NKK以及DTIME,TOLER,SCALE,DSCALE這些全局變量(common表示全局變量),定義了ICM(3,8),CGAUS(2),VSHAP(8,8),DERIV(3,8,8)以及POSGP(3),COPG(3),EJ(3,3),EJACI(3,3),R(8,8)這些維數(shù)與大小都確定的全局?jǐn)?shù)組變量,定義了COORD(:,:)
4、,PROPS(:,:,:)以及STRSG(:,:,:),DJ(:,:),CARTD(:,:,:,:)以及TRANJ(:,:,:,:),DJRMX(:,:,:)以及DREMX(:,:,:),DJEMX(:,:,:,:)以及CREMX(:,:,:),CJEMX(:,:,:,:)以及MELEM(:,:),MPROP(:),ISSOR(:,:),NNDEX(:)以及MPFIX(:,:),MPSJ(:),MMATP(:),MPIV(:)以及TSTIF(:)以及ADISP(:),TDISP(:),ALOAD(:)以及PS
5、NBR(:,:,:),PSNBJ(:,:)以及PSTNR(:,:,:),PSTNJ(:,:)以及STRSP(:,:),STRSJ(:,:)這些維數(shù)確定但是大小不確定的可變大小的數(shù)組,ALLOCATABLE表示可變大小的數(shù)組變量。Module的程序代碼要編寫在最前面,整個(gè)程序在主程序以及子程序中都使用了MODULEDIMDATA。模塊module的名字是DIMDATA,表示模塊里面定義的變量都是內(nèi)容不確定或者大小不確定的,需要后面補(bǔ)充。7.RESIZE調(diào)整大小的意思,采用子程序SUBROUTINERESIZE(
6、KELEM,KPOIN,KPROP,KFIX1),子程序名稱RESIZE(KELEM,KPOIN,KPROP,KFIX1)括號(hào)里面的KELEM,KPOIN,KPROP,KFIX1是指定四個(gè)變量用來接收傳遞進(jìn)來的參數(shù),名字可以完全自定,不需要跟呼叫時(shí)所放入的變量名稱有任何聯(lián)系。子程序的目的是把module模塊里面的可變大小的數(shù)組變量的維數(shù)與大小都確定下來,相應(yīng)的數(shù)組變量的內(nèi)存大小也就確定下來了。在子程序SUBROUTINERESIZE(KELEM,KPOIN,KPROP,KFIX1)里面要用到module模塊里
7、面的變量,要在子程序開始聲明之前就使用USEDIMDATA的描述來使用這個(gè)module。8.在聲明時(shí),只能使用常數(shù)來賦數(shù)組的大小,常數(shù)包括填入數(shù)字或者使用聲明為parameter的常數(shù)。9.18這段程序作用是給各個(gè)數(shù)組內(nèi)容賦予初值。這段程序代碼的作用是配置數(shù)組的內(nèi)存空間大小。ALLOCATE(A(STUDENTS))!配置內(nèi)存空間10.主程序并不一定要放在整個(gè)程序代碼的最開頭,它可以安排在程序中的任意位置,可以先寫子程序再寫主程序。PROGRAMFEM3v04是主程序開頭,主程序沒有放在最開頭,放在中間了。但
8、是module的程序代碼需要編寫在整個(gè)程序的最前面。11.18Module模塊截圖。12.這些語句用于賦予數(shù)組的初值。13.ALLOCATEMEMORYOK!配置內(nèi)存完畢14.CARRIAGECONTROL='FORTRAN'的字段用來指定所要開啟的文件名稱,“6”的作用是給后面的文件指定一個(gè)代碼。主程序PROGRAMFEM3v04里面調(diào)用了很多個(gè)主程序,每一個(gè)主程序都有一個(gè)特定的功能。主程序PRO