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
相关推荐
#### 一、Fortran程序设计基础 Fortran(Formula Translation)是一种广泛应用于科学计算、数值分析等领域的高级编程语言。Fortran90是Fortran语言的一个重要版本,引入了许多现代编程特性,极大地提高了程序的...
标题中的“大气科学常用FORTRAN程序”表明了这个压缩包主要包含的是用于大气科学计算的FORTRAN语言编写的程序。FORTRAN(Formula Translation)是一种早期的高级编程语言,尤其适合处理数值计算和科学计算任务,因此...
在给定的程序示例中,可以看到典型的Fortran程序结构: 1. **Program声明**:`program ex0003`表示程序的开始。 2. **隐式类型声明**:`implicit none`用于指定所有变量都必须明确声明其数据类型,这有助于避免因...
一个典型的 Fortran 95 程序通常包含基本的结构元素,如声明部分、执行语句等。 ```fortran program Hello write (*,*) "Hello, World!" end program Hello ``` 这段代码展示了如何使用 `write` 语句输出文本。 ...
它支持多种Fortran标准,包括Fortran 77、Fortran 90以及部分Fortran 95特性。该编译器旨在为Windows平台上的科学计算、工程分析等领域提供高效的编程工具。 #### 三、支持的操作系统 Compaq Visual Fortran 6.6...
本压缩包文件“Abaqus用户子程序Fortran———Power Law 模型.zip”提供了一个使用Fortran编写的示例,用于实现Power Law材料模型。在本文中,我们将详细讨论Power Law模型以及如何用Fortran编写Abaqus用户子程序。 ...
压缩包中的文件包括README.txt,它通常会包含重要的使用指南和说明,例如如何解压、如何运行示例程序、需要注意的细节等。其余的文件如C12、D11、D6、D12、Data、C11、D13、D5、C3,可能是按照算法或功能模块命名的...
压缩包中的源码文件提供了实际的编程示例,初学者可以通过阅读这些代码了解如何在Fortran中编写VUMAT子程序。常见的步骤包括: - 初始化:设置初始状态变量。 - 应力更新:根据当前应变和历史信息计算应力。 - ...
### Fortran基础语法知识点 #### 1. Fortran语言简介 - **定义与起源**:Fortran(FORmula TRANslation的缩写),意为...以上内容涵盖了Fortran语言的基础语法和几个典型示例,有助于理解该语言的基本结构和应用方式。
源程序部分将提供具体的代码示例,通过阅读和理解这些代码,学习者能更直观地看到MATLAB语法的应用,并学习如何将理论知识转化为实际操作。这也是提高编程技能和解决问题能力的有效途径。 总之,“MATLAB程序设计与...
这些子程序通常以Fortran语言编写,然后在ABAQUS求解器中调用。通过FRIC子程序,用户可以实现更复杂的摩擦行为,如考虑速度、压力、温度、湿度等因素的影响。 **FRIC子程序的结构** 一个典型的FRIC子程序通常包含...
在提供的代码中,可以看到一个Fortran程序,它用于读取工作目录下所有的`.txt`文件,并对这些文件进行某种计算操作。这段代码的关键知识点包括: 1. **循环结构**:`do i=1900, 1999` 是一个循环,虽然这里的`i`并...
描述中提到"openMP经典实用例程,为众多程序员采用",意味着我们将讨论一些被广大开发者认可和使用的OpenMP程序示例。这可能包括一些基础和高级的并行编程技术,如并行循环、并行区域、任务并行以及同步机制等。此外...
三、典型用户子程序详解 1. **SUBROUTINE DLOAD**:定义积分点荷载。参数包括荷载大小F、当前STEP和INCREMENT值(KSTEP、KINC)、时间、单元和积分点信息等。用户可以依据坐标、时间、单元编号和节点编号定义荷载,...
这里提供的Fortran源码可能是为了帮助用户了解Abaqus内部的工作原理,或者提供自定义子程序的示例。用户可以通过阅读和分析源码,学习如何编写用户自定义的材料模型、单元类型或特殊求解器,进一步扩展Abaqus的功能...
#### 典型示例 假设我们需要获取当前系统时间,可以参考以下示例代码: ```fortran PROGRAM Main USE KERNEL32 IMPLICIT NONE TYPE SYSTEMTIME INTEGER, DIMENSION(7) :: wYear, wMonth, wDayOfWeek, wDay, ...
Fortran语言MATLAB引擎... 310 10.4 Visual C++与MATLAB接口... 311 10.4.1 Visual C++调用MATLAB引擎... 312 10.4.2 Visual C++使用数学函数库... 312 10.4.3 Visual C++创建MAT文件... 314 10.4.4 应用COM实现...
综上所述,这个示例是一个典型的跨平台计算案例,通过MATLAB Compiler将MATLAB的计算能力嵌入到VC6的C++程序中,利用DLL实现了代码的重用和跨语言调用。在实际应用中,这种技术可以帮助我们充分利用MATLAB的数值计算...
例如,`GridupdateRefinementroutine` 子程序就是一个典型示例。 #### 四、安装与配置流程 1. **下载源码**: 从官方网站下载最新版本的FLASH源码压缩包 `FLASH4.6.tar.gz`。 2. **解压缩**: 解压压缩包后,在...