The following table similarly compares the Fortran 90 data types with C.
Table 11-2 Data Sizes and Alignment--(in Bytes) Pass by Reference (f90 and cc)
Fortran 90 Data Type |
C Data Type |
Size |
Alignment |
|
---|---|---|---|---|
CHARACTER x |
unsigned char x ; | 1 | 1 | |
CHARACTER (LEN=n) x |
unsigned char x[n] ; | n | 1 | |
COMPLEX x |
struct {float r,i;} x; | 8 | 4 | |
COMPLEX (KIND=4) x COMPLEX (KIND=8) x COMPLEX (KIND=16) x |
struct {float r,i;} x; struct {double dr,di;} x; struct {long double, dr,di;} x; |
8 16 32 |
4 4/8 4/8/16 |
|
DOUBLE COMPLEX x | struct {double dr, di;} x; | 16 | 4/8 | |
DOUBLE PRECISION x |
double x ; | 8 | 4 | |
REAL x |
float x ; | 4 | 4 | |
REAL (KIND=4) x REAL (KIND=8) x REAL (KIND=16) x |
float x ; double x ; long double x ; |
4 8 16 |
4 4/8 4/8/16 |
|
INTEGER x |
int x ; | 4 | 4 | |
INTEGER (KIND=1) x INTEGER (KIND=2) x INTEGER (KIND=4) x INTEGER (KIND=8) x |
signed char x ; short x ; int x ; long long int x; |
1 2 4 8 |
4 4 4 4 |
|
LOGICAL x |
int x ; | 4 | 4 | |
LOGICAL (KIND=1) x LOGICAL (KIND=2) x LOGICAL (KIND=4) x LOGICAL (KIND=8) x |
signed char x ; short x ; int x ; long long int x; |
1 2 4 8 |
4 4 4 4 |