Fortran 与C++的混合调用例程对应

本文介绍了Fortran中不同类型的整数、浮点数、复数变量的声明方法,包括长整型、短整型、单精度浮点数和双精度浮点数。此外,还详细讲解了Fortran中的字符串变量声明和操作,如赋值、截取、连接等,并提到了一些常用的字符串函数。最后,文章提及了一维和二维数组的声明方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

例程对应
Fortran     FUNCTION     SUBROUNTINE
C/C++      function          (void)function

Fortran 整型变量(INTEGER)的类型
  1. !整数类型分为长整型和短整型  
  2. !长整型的声明方法(使用4個bytes来存放整数)  
  3. integer(kind=4) x_long !Fortran 90  
  4. integer*4 y_long           !Fortran 77  
  5. integer(4) z_long          !Fortran 77  
  6. !短整型的声明方法(使用2個bytes来存放整数)  
  7. integer(kind=2)  x_short  !Fortran 90  
  8. integer*2 y_short             !Fortran 77  
  9. integer(2) z_short            !Fortran 77  
  10. !通常编译器会默认使用长整型  
  11. !有的编译器还支持1bytes的整数类型  
  12. integer(kind=1)  x_byte  !Fortran 90  
  13. integer*1 y_byte             !Fortran 77  
  14. integer(1) z_byte            !Fortran 77  
Fortran浮点型变量(REAL)的类型 
[plain]  view plain copy print ?
  1. !单精度浮点数的声明方法(使用4个字节)  
  2. real(kind=4) x_float !Fortran 90  
  3. real(4) y_float !Fortran 77  
  4. real*4 z_float !Fortran 77  
  5.   
  6. !双精度浮点的声明方法(使用8个字节)  
  7. real(kind=8) x_double !Fortran 90  
  8. real(8) y_double !Fortran  
  9. real*8 z_double !Fortran  

Fortran复数型变量(COMPLEX)的类型

[plain]  view plain copy print ?
  1. !复数由实部和虚部组成,Fortran中用两个浮点数来保存 
  2. complex(kind=4) a_single !单精度,Fortran 90  
  3. complex(4) b_single !单精度,Fortran 77  
  4. complex*4 c_single !单精度,Fortran 77  
  5. complex(kind=8) a_double !双精度, Fortran 90  
  6. complex(8) b_double !双精度, Fortran 77  
  7. complex*8  c_double !双精度, Fortran 77  
  8.   
  9. !设置一个复数数值的方法  
  10. !a=(x,y); x为实部,因为虚部  


Fortran字符串变量(STRING)

[plain]  view plain copy print ?
  1. program stringtest  
  2.     !声明字符串的方法  
  3.     character(len=10) a !Fortran 90 添加  
  4.     character(10) b !Fortran 77  
  5.     character*20 c !Fortran 77  
  6.     character*(20) d !Fortran 77  
  7.     !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  
  8.     character(len=20) e  
  9.     character(len=20) string  
  10.     character(len=6) first  
  11.     character(len=10) second  
  12.     character(len=20) add  
  13.     !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  
  14.     !字符串赋值  
  15.     a="Hello" !Fortran 90 可用双引号来封装字符串  
  16.     b='Hello' !Fortran 77 只能用单引号来封装字符串  
  17.     c="That's right." !用双引号封装字符串时,可以在字符串中任意使用单引号  
  18.     d='That''s right.' !用单引号封转字符串时,输出单引号时要连续用两个单引号  
  19.     e="That's ""right""."!用双引号来封装时,输出双引号也要连续使用两个双引号  
  20.     !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  
  21.     string="Good morning."  
  22.     write(*,*) string  
  23.     string(6)="evening." !重新设置从第6个字符之后的字符串  
  24.     write(*,*) string  
  25.     string(1:2)="Go" !字符串最前面两个字符变为”Go“  
  26.     string(13:13)="!" !字符串的第13个字符变为“!”  
  27.     first="Happy "  
  28.     second="Birthday"  
  29.     add=first//second !经过两个连续的除号可以连接两个字符串  
  30.     write(*,*) add  
  31.     !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  
  32.     !一些常用函数  
  33.     !char(num) 返回计算机所使用的字符表上,数值num所代表的字符  
  34.     !ichar(char) 返回所输入的char字符在计算机所使用的字符表中所代表的编号,返回值是整数类型  
  35.     !len(string) 返回输入字符串的声明长度,返回值是整数类型  
  36.     !len_trim(string) 返回字符串去除尾端空格后的实际内容长度  
  37.     !index(string, key) 所输入的string可key都是字符串。这个函数会返回key这个“子字符串”在”母字符串“string中第一次出现的位置  
  38.     !trim(string) 返回把string字符串尾端多余空格清除后的字符串  
  39.       
  40. end  
Fortran 逻辑变量(LOGICAL)
[plain]  view plain copy print ?
  1. program logicaltest  
  2.     logical(kind=4) a   !用4 bytes来记录true/false, Fortran 90  
  3.     logical*4 b     !Fortran 77  
  4.     logical(4) c    !Fortran 77  
  5.     logical(kind=2) e   !用2 bytes来记录true/false, Fortran 90  
  6.     logical*2 f !Fortran 77  
  7.     logical(2) g    !Fortran 77  
  8.     !对变量赋值  
  9.     a=.true.  
  10.     b=.false.  
  11.     write(*,*) a,b  
  12. end  
Fortran 数组的声明
[plain]  view plain copy print ?
  1. <span style="font-size:18px;">!一维数组的声明  
  2. integer x(10)  
  3. integer, dimension(10) :: y  
  4. integer z  
  5. dimension z(10)  
  6. !二维数组的声明  
  7. integer x_2(10,10)  
  8. integer,dimension(10,10):: y_2  
  9. integer z_2  
  10. dimension z_2(10,10)  
  11. !特殊的声明  
  12. integer x_s(5) !下标为1,2,3,4,5  
  13. integer y_s(0:5) !下标为0,1,2,3,4,5  
  14. integer z_s(-3:3) !下标为-3,-2,-1,0,1,2,3  
  15. integer x_2s(5,0:5) !下标分别为1~5和0~5  
  16. integer y_2s(2:3,-1:3) !下标分别为2~3和-1~3</span>  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值