首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

FORTRAN 90 程序典型示范

2012-09-01 
FORTRAN 90 程序典型示例?1 FORTRAN 90 程序示例代码?!------------------------------------------------

FORTRAN 90 程序典型示例

?

1 FORTRAN 90 程序示例代码

?

!------------------------------------------------!

! Code NAME: people.F90 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? !

! Code DESC: This code contains module, structure(type),pointer ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?!

! array,subroutine et al. usage. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? !?

!------------------------------------------------!

! IGSNRR of CAS ?shuchangs@126.com ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? !

!------------------------------------------------!


MODULE peopleType


IMPLICIT NONE

!PRIVATE


TYPE,PUBLIC :: peopleT

? INTEGER,POINTER ? ? ? ? ? ? ?:: idCard

? CHARACTER *10,POINTER ? ?:: name

? CHARACTER *4,POINTER ? ? ?:: sex

? INTEGER,POINTER ? ? ? ? ? ? ?:: age

? INTEGER,POINTER ? ? ? ? ? ? ?:: archiveYear(:)

? CHARACTER *50,POINTER ? ?:: archiveHistory(:)

END TYPE peopleT


TYPE,PUBLIC :: studentT

? TYPE(peopleT) ? ? ? ? ? ? ? ? :: p

? INTEGER,POINTER ? ? ? ? ? ? :: familyMembersNum?

? CHARACTER *10,POINTER ? :: familyMembers(:)

END TYPE studentT


!----------------------------------------------------

! Declare single instance of peopleType

!----------------------------------------------------

TYPE(peopleT) , PUBLIC, TARGET, SAVE ? :: people

TYPE(studentT), PUBLIC, TARGET, SAVE ?:: student


PUBLIC :: peopleInit

PUBLIC :: peoplePrint

PUBLIC :: studentInit

PUBLIC :: studentPrint

?

CONTAINS

SUBROUTINE peopleInit()

? INTEGER,TARGET ? ? ? ? ? ? :: NUMBER=001

? CHARACTER *10,TARGET ? :: NAME='SHU Chang'

? INTEGER,TARGET ? ? ? ? ? ? :: AGE=20

? CHARACTER *4,TARGET ? ?:: SEX='Girl'

? INTEGER ? ? ? ? ? ? ? ? ? ? ? ?:: I

? people.idCard ? ? => NUMBER

? people%name ? ? => NAME

? people.sex ? ? ? ? => SEX

? people.age ? ? ? ?=> AGE

? ALLOCATE(people.archiveYear(1:AGE))

? ALLOCATE(people.archiveHistory(1:AGE))

? !Assign values to pointer arrays:

? DO I=1,AGE

? ? people.archiveYear(I)=2000+I

? ? people.archiveHistory(I)='WELL'

? END DO

END SUBROUTINE peopleInit


SUBROUTINE peoplePrint()

? INTEGER :: i

? print *,'The People Information----------------------------------------'

? print *,'Basic Information:'

? print *,'ID-CARD:',people.idCard,'NAME:',people.name,'SEX:',people.sex,&

? ? ? ? ? 'AGE:',people.age

? print *,'Archive Information:'

? DO i=1,people.age

? ? ?print *,'Archive Year:',people.archiveYear(i),'Archive History:',&

? ? ? ? ? people.archiveHistory(i)

? END DO

? print *,'---------------------------'

END SUBROUTINE peoplePrint


SUBROUTINE studentInit()

? INTEGER,TARGET ? ? :: n=3

? student.familyMembersNum => n?

? ALLOCATE(student.familyMembers(1:n))

? student.familyMembers=(/'Father','Mother','Self'/)

? call peopleInit

END SUBROUTINE studentInit


SUBROUTINE studentPrint()

? INTEGER ? :: i

? call peoplePrint

? print *,'The Student Information----------------------------------------'

? print *,'The family-members number is:',student.familyMembersNum

? print *,'They are respectively:'

? DO i=1,student.familyMembersNum

? ? print *,student.familyMembers(i)

? END DO

? print *,'---------------------------'

END SUBROUTINE studentPrint

END MODULE peopleType


!The main program begins here:

program main

? !Use the module of peopleType above.

? use peopleType?

??

? !Local pointer variables:

? integer,pointer ? ? ? ? ? ? ? ? :: numberL

? character(len=10),pointer ?:: nameL

? character(len=4),pointer ? ?:: sexL

? integer,pointer ? ? ? ? ? ? ? ? :: ageL ?

? !Call the subroutine: peopleInit() to initialize the peopleT structure.

? print *,'The result is below when the subroutine is called:'

? call peopleInit

? call peoplePrint

? !Relate the free pointer and the target pointer

? numberL => people%idCard

? nameL ? ?=> people.name?

? sexL ? ? ? => people.sex

? ageL ? ? ? => people.age

? !Revalue them

? numberL ?= 002

? nameL ? ? = 'LIU Fei'?

? sexL ? ? ? ?= 'Boy'

? ageL ? ? ? ?= 22?

? print *,'The result is here after the values being assigned:'

? call peoplePrint ?

??

? call studentInit

? !Revalue them

? numberL ? = 003

? nameL ? ? ?= 'CHEN Qing'

? sexL ? ? ? ?= 'Girl'

? ageL ? ? ? ?= 18

? print *,'The student Information is below:'

? call studentPrint

end program


2 运行结果
$ ifort people.F90$ ./a.out??The result is below when the subroutine is called:?The People Information----------------------------------------?Basic Information:?ID-CARD: ? ? ? ? ? 1 NAME:SHU Chang SEX:GirlAGE: ? ? ? ? ?20?Archive Information:?Archive Year: ? ? ? ?2001 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2002 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2003 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2004 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2005 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2006 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2007 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2008 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2009 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2010 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2011 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2012 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2013 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2014 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2015 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2016 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2017 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2018 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2019 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2020 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???---------------------------?The result is here after the values being assigned:?The People Information----------------------------------------?Basic Information:?ID-CARD: ? ? ? ? ? 2 NAME:LIU Fei ? SEX:Boy AGE: ? ? ? ? ?22?Archive Information:?Archive Year: ? ? ? ?2001 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2002 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2003 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2004 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2005 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2006 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2007 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2008 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2009 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2010 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2011 Archive History: ? ? ?WELL??Archive Year: ? ? ? ?2012 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2013 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2014 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2015 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2016 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2017 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2018 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2019 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2020 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ? ? 0 Archive History: ? ? ?1??Archive Year: ? ? ? ? ? 0 Archive History:??---------------------------?The student Information is below:?The People Information----------------------------------------?Basic Information:?ID-CARD: ? ? ? ? ? 3 NAME:CHEN Qing SEX:GirlAGE: ? ? ? ? ?18?Archive Information:?Archive Year: ? ? ? ?2001 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2002 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2003 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2004 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2005 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2006 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2007 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2008 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2009 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2010 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2011 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2012 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2013 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???Archive Year: ? ? ? ?2014 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2015 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2016 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2017 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Archive Year: ? ? ? ?2018 Archive History: ? ? ?WELL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??---------------------------?The Student Information----------------------------------------?The family-members number is: ? ? ? ? ? 3?They are respectively:?Father ? ??Mother ? ??Self ? ? ??---------------------------
3 ?使用Fortrain小结(1)Fortran中使用指针(pointer)必须进行初始化(即指向Target 对象),否则会造成内存错误(segmentation fault)。(2)Fortran中的指针数组相当于动态数组。(3)结构体类型中调用成员函数可以使用‘%’或‘.’符。(4)Fortran中变量定义永远在过程体(执行体)之前,比如? ? ? ? integer :: r=5? ? ? ???print *,'hellow world'? ? ? ? 不能为:? ? ? ? print *,'hellow world'? ? ? ??integer :: r=5(5)Fortran不区分大小写。(6)Fortran变量限定符大致有:变量类型符(integer,real,character...),public(private),target,pointer,save,parameter,dimiension等等。

?

热点排行