FPT and WinFPT Reference Manual - Command-line Commands

| SimCon Home | Reference Manual Home |


CHANGE DATA SIZES TO KINDS

Syntax:

[DO NOT] CHANGE [DATA] SIZES TO [DATA] KINDS

Function:

All logical, integer, real and complex declarations with data size specifications of the form, for example, INTEGER*4 are re-written with data kind specifications, of the form, for example, INTEGER(KIND=ki4). Fortran parameters which define the kind values are declared in the module fpt_module_kinds written in the file with the same name, and with the current primary output file name extension, for example, fpt_module_kinds.f90. USE statements for this module are inserted systematically in all top-level sub-programs.

Please note:

The command CHANGE KINDS TO SIZES systematically replaces kind specifications with data size specifications. For a discussion of the relative advantages of kind and data size specifications please see Whether to use kinds or data sizes.

Where to use this command:

Operating system command line

Yes


Configuration file, config.fsp

Yes


Specification (FSP) files, *.fsp

Yes


Interactively, to FPT> prompt:

Yes


Interactive command files

Yes


Embedded in the Fortran code

Yes


Default:

Declarations are not changed by default (Note that defaults may be changed in the configuration file).

Example:

The code fragment:

LOGICAL*4 fl,lstat INTEGER*4 i,j,k,n_val,ie INTEGER*1 b REAL*4 dx,dh,ddx,ddh REAL*8 x,h,xic,hic COMPLEX*8 dphase COMPLEX*16 phase

is changed by the command:

% change data sizes to kinds

to:

LOGICAL*4 fl,lstat USE fpt_module_kinds ! LOGICAL(KIND=kl4)fl,lstat INTEGER(KIND=ki4)i,j,k,n_val,ie INTEGER(KIND=ki1)b REAL(KIND=kr4)dx,dh,ddx,ddh REAL(KIND=kr8)x,h,xic,hic COMPLEX(KIND=kr4)dphase COMPLEX(KIND=kr8)phase

Note that the diagnostic number 2255, which is used by fpt to mark the change, was suppressed by the SUPPRESS ERROR command.

The module fpt_module_kinds is written in the file fpt_module_kinds.fpt. The code is:

MODULE fpt_module_kinds ! IMPLICIT NONE ! INTEGER,PARAMETER :: kl1=1 INTEGER,PARAMETER :: kl2=2 INTEGER,PARAMETER :: kl4=4 INTEGER,PARAMETER :: kl8=8 INTEGER,PARAMETER :: ki1=SELECTED_INT_KIND(2) INTEGER,PARAMETER :: ki2=SELECTED_INT_KIND(4) INTEGER,PARAMETER :: ki4=SELECTED_INT_KIND(9) INTEGER,PARAMETER :: ki8=SELECTED_INT_KIND(18) INTEGER,PARAMETER :: kr4=SELECTED_REAL_KIND(6,37) INTEGER,PARAMETER :: kr8=SELECTED_REAL_KIND(15,307) INTEGER,PARAMETER :: kr16=SELECTED_REAL_KIND(33,4931) ! END MODULE fpt_module_kinds


Copyright ©1995 to 2014 Software Validation Ltd. All rights reserved.