MONC
Data Types | Functions/Subroutines | Variables
conversions_mod Module Reference

Conversion between common inbuilt FORTRAN data types. More...

Data Types

interface  conv_is_integer
 Determines whether a data item can be represented as an integer or not. More...
 
interface  conv_is_logical
 Determines whether a data item can be represented as a logical or not. More...
 
interface  conv_is_real
 Determines whether a data item can be represented as a real or not. More...
 
interface  conv_to_generic
 Converts a data type into the generic (class *) form. More...
 
interface  conv_to_integer
 Converts data types to integers. More...
 
interface  conv_to_logical
 Converts data types to logical. More...
 
interface  conv_to_real
 Converts data types to real. More...
 
interface  conv_to_string
 Converts data types to strings. More...
 

Functions/Subroutines

real(kind=double_precision) function, public conv_single_real_to_double (input_real)
 Converts from a single to double precision real. This applies some rounding to a certain number of decimal places to ignore very small fractions. More...
 
logical function string_is_integer (string)
 Determines whether a string is an integer or not. More...
 
logical function string_is_real (string)
 Determines whether a string is a real or not. More...
 
logical function string_is_logical (string)
 Determines whether a string is a logical or not. More...
 
character(len=str_length) function, pointer generic_to_string (generic, makecopy, str_length)
 Converts a generic to a string. More...
 
character(len=15) function integer_to_string (input)
 Converts an integer to a string. More...
 
character(len=30) function real_single_to_string (input, decimal_places, exponent, exponent_small_numbers)
 Converts a single precision real to a string. More...
 
character(len=30) function real_double_to_string (input, decimal_places, exponent, exponent_small_numbers)
 Converts a double precision real to a string. More...
 
subroutine limit_to_decimal_places (string_to_parse, decimal_places)
 Helper subroutine which trims the string down to an upper limit of decimal places, with all numbers beyond this point removed. More...
 
subroutine trim_trailing_zeros (string_to_parse, zeros_to_retain)
 A helper subroutine which trims training zeros from the string after a decimal place this is to make the string more readable when printed out. More...
 
character(len=5) function logical_to_string (input)
 Converts a logical to a string. More...
 
logical function, pointer generic_to_logical (generic, makecopy)
 Converts a generic to a logical. More...
 
logical function string_to_logical (string)
 Converts a string to a logical. More...
 
logical function integer_to_logical (input)
 Converts an integer to a logical. More...
 
logical function real_to_logical (input)
 Converts a real to a logical. More...
 
real(kind=default_precision) function, pointer, public generic_to_double_real (generic, makecopy)
 Converts a generic to a double real. More...
 
real function, pointer generic_to_real (generic, makecopy)
 Converts a generic to a real. If this is infact an integer then will do a conversion and allocate pointed to this. More...
 
real function string_to_real (string)
 Converts a string to a real. More...
 
real function integer_to_real (input)
 Converts an integer to a real. More...
 
real function logical_to_real (input)
 Converts a logical to a real. More...
 
integer function, pointer generic_to_integer (generic, makecopy)
 Converts a generic to an integer. More...
 
integer function string_to_integer (string)
 Converts a string to an integer. More...
 
integer function real_to_integer (input)
 Converts a real to an integer. More...
 
integer function logical_to_integer (input)
 Converts a logical to an integer. More...
 
class(*) function, pointer string_to_generic (string, makecopy)
 Converts a string into its generic data representation. More...
 
class(*) function, pointer integer_to_generic (input, makecopy)
 Converts an integer into its generic data representation. More...
 
class(*) function, pointer real_single_to_generic (input, makecopy)
 Converts a single real into its generic data representation. More...
 
class(*) function, pointer real_double_to_generic (input, makecopy)
 Converts a double real into its generic data representation. More...
 
class(*) function, pointer logical_to_generic (input, makecopy)
 Converts a logical into its generic data representation. More...
 

Variables

logical l_original_rounding = .False.
 
integer, parameter real_rounding_precision =int(1e8)
 

Detailed Description

Conversion between common inbuilt FORTRAN data types.

The user will still need to supply conversions between their derived types but this makes it easier when handling common inbuilt type conversions.

Function/Subroutine Documentation

◆ conv_single_real_to_double()

real(kind=double_precision) function, public conversions_mod::conv_single_real_to_double ( real(kind=single_precision), intent(in)  input_real)

Converts from a single to double precision real. This applies some rounding to a certain number of decimal places to ignore very small fractions.

Parameters
input_realThe single precision real to convert
Returns
Double precision representation which is smoothed to a specific rounding precision

Definition at line 113 of file conversions.F90.

114  real(kind=single_precision), intent(in) :: input_real
115 
116  if (l_original_rounding) then
117  ! This rounding methods only works for values than 1.e-8. Aerosol masses
118  ! are smaller than this value and hence this rounding method can cause
119  ! issues
120  conv_single_real_to_double=dnint(real(input_real, kind=default_precision)* &
121  real_rounding_precision) / real_rounding_precision
122  else
123  ! This method will round to the precision of the machine.
124  conv_single_real_to_double=real(input_real, kind=default_precision)
125  if (abs(conv_single_real_to_double) < epsilon(1.0_default_precision)) &
126  conv_single_real_to_double = 0.0_default_precision
127  endif
Here is the caller graph for this function:

◆ generic_to_double_real()

real(kind=default_precision) function, pointer, public conversions_mod::generic_to_double_real ( class(*), intent(in), pointer  generic,
logical, intent(in)  makecopy 
)

Converts a generic to a double real.

Parameters
genericThe generic to convert into a double real
makecopyWhether to use a copy of the generic data or not
Returns
A pointer to the double real or null if generic conversion not possible

Definition at line 413 of file conversions.F90.

414  class(*), pointer, intent(in) :: generic
415  logical, intent(in) :: makecopy
416  real(kind=default_precision), pointer :: generic_to_double_real
417 
418  select type(generic)
419  type is (real(kind=default_precision))
420  if (makecopy) then
421  allocate(generic_to_double_real, source=generic)
422  else
423  generic_to_double_real=>generic
424  end if
425  class default
426  generic_to_double_real=>null()
427  end select

◆ generic_to_integer()

integer function, pointer conversions_mod::generic_to_integer ( class(*), intent(in), pointer  generic,
logical, intent(in)  makecopy 
)
private

Converts a generic to an integer.

Parameters
genericThe generic to convert into an integer
makecopyWhether to use a copy of the generic data or not
Returns
A pointer to the integer or null if generic conversion not possible

Definition at line 493 of file conversions.F90.

494  class(*), pointer, intent(in) :: generic
495  logical, intent(in) :: makecopy
496  integer, pointer :: generic_to_integer
497 
498  select type(generic)
499  type is (integer)
500  if (makecopy) then
501  allocate(generic_to_integer, source=generic)
502  else
503  generic_to_integer=>generic
504  end if
505  class default
506  generic_to_integer=>null()
507  end select

◆ generic_to_logical()

logical function, pointer conversions_mod::generic_to_logical ( class(*), intent(in), pointer  generic,
logical, intent(in)  makecopy 
)
private

Converts a generic to a logical.

Parameters
genericThe generic to convert into a logical
makecopyWhether to use a copy of the generic data or not
Returns
A pointer to the logical or null if generic conversion not possible

Definition at line 352 of file conversions.F90.

353  class(*), pointer, intent(in) :: generic
354  logical, intent(in) :: makecopy
355  logical, pointer :: generic_to_logical
356 
357  select type(generic)
358  type is (logical)
359  if (makecopy) then
360  allocate(generic_to_logical, source=generic)
361  else
362  generic_to_logical=>generic
363  end if
364  class default
365  generic_to_logical=>null()
366  end select

◆ generic_to_real()

real function, pointer conversions_mod::generic_to_real ( class(*), intent(in), pointer  generic,
logical, intent(in)  makecopy 
)
private

Converts a generic to a real. If this is infact an integer then will do a conversion and allocate pointed to this.

Parameters
genericThe generic to convert into a real
makecopyWhether to use a copy of the generic data or not
Returns
A pointer to the real or null if generic conversion not possible

Definition at line 434 of file conversions.F90.

435  class(*), pointer, intent(in) :: generic
436  logical, intent(in) :: makecopy
437  real, pointer :: generic_to_real
438 
439  select type(generic)
440  type is (real)
441  if (makecopy) then
442  allocate(generic_to_real, source=generic)
443  else
444  generic_to_real=>generic
445  end if
446  type is (integer)
447  allocate(generic_to_real)
448  generic_to_real=conv_to_real(generic)
449  class default
450  generic_to_real=>null()
451  end select

◆ generic_to_string()

character(len=str_length) function, pointer conversions_mod::generic_to_string ( class(*), intent(in), pointer  generic,
logical, intent(in)  makecopy,
integer, intent(in)  str_length 
)
private

Converts a generic to a string.

Parameters
genericThe generic to convert into a string
makecopyWhether to use a copy of the generic data or not
str_lengthLength of the resulting string
Returns
A pointer to the string or null if generic conversion not possible

Definition at line 182 of file conversions.F90.

183  class(*), pointer, intent(in) :: generic
184  logical, intent(in) :: makecopy
185  integer, intent(in) :: str_length
186  character(len=str_length), pointer :: generic_to_string, temporary_generic_ptr
187 
188  select type(generic)
189  type is (character(len=*))
190  if (makecopy) then
191  ! Need to do this to enforce string length information
192  temporary_generic_ptr=>generic
193  allocate(generic_to_string, source=temporary_generic_ptr)
194  else
195  generic_to_string=>generic
196  end if
197  class default
198  generic_to_string=>null()
199  end select

◆ integer_to_generic()

class(*) function, pointer conversions_mod::integer_to_generic ( integer, intent(in), target  input,
logical, intent(in)  makecopy 
)
private

Converts an integer into its generic data representation.

Parameters
inputThe integer to convert into its generic representation
makecopyWhether make a copy of the underlying data or just return a simple pointer
Returns
A pointer to the generic data

Definition at line 561 of file conversions.F90.

562  integer, target , intent(in) :: input
563  logical, intent(in) :: makecopy
564  class(*), pointer :: integer_to_generic
565 
566  if (makecopy) then
567  allocate(integer_to_generic, source=input)
568  else
569  integer_to_generic=>input
570  end if

◆ integer_to_logical()

logical function conversions_mod::integer_to_logical ( integer, intent(in)  input)
private

Converts an integer to a logical.

Parameters
inputThe integer to convert into a logical
Returns
The logical

Definition at line 386 of file conversions.F90.

387  integer, intent(in) :: input
388 
389  if (input .ge. 1) then
390  integer_to_logical = .true.
391  else
392  integer_to_logical = .false.
393  end if

◆ integer_to_real()

real function conversions_mod::integer_to_real ( integer, intent(in)  input)
private

Converts an integer to a real.

Parameters
inputThe integer to convert into a real
Returns
The real

Definition at line 470 of file conversions.F90.

471  integer, intent(in) :: input
472 
473  integer_to_real = real(input)

◆ integer_to_string()

character(len=15) function conversions_mod::integer_to_string ( integer, intent(in)  input)
private

Converts an integer to a string.

Parameters
inputThe integer to convert into a string
Returns
The string of length 15 characters

Definition at line 205 of file conversions.F90.

206  integer, intent(in) :: input
207  character(len=15) :: integer_to_string
208 
209  write(integer_to_string, '(i15)' ) input
210  integer_to_string = trim(adjustl(integer_to_string))

◆ limit_to_decimal_places()

subroutine conversions_mod::limit_to_decimal_places ( character(len=*), intent(inout)  string_to_parse,
integer, intent(in)  decimal_places 
)
private

Helper subroutine which trims the string down to an upper limit of decimal places, with all numbers beyond this point removed.

Parameters
stringToParseThe raw, uncropped, string to processess which is modified
decimalPlacesNumber of decimal places to keep

Definition at line 287 of file conversions.F90.

288  character(len=*), intent(inout) :: string_to_parse
289  integer, intent(in) :: decimal_places
290 
291  integer :: decimal_posn, exp_posn
292 
293  string_to_parse=adjustl(string_to_parse)
294  decimal_posn=index(string_to_parse, ".")
295  exp_posn=index(string_to_parse, "E")
296  if (decimal_posn .ne. 0 .and. decimal_posn+decimal_places+1 .le. len(string_to_parse)) then
297  if (exp_posn .eq. 0) then
298  string_to_parse(decimal_posn+decimal_places+1:)=" "
299  else
300  string_to_parse(decimal_posn+decimal_places+1:)=string_to_parse(exp_posn:)
301  string_to_parse(decimal_posn+decimal_places+1+(len(string_to_parse)-exp_posn)+1:)=" "
302  end if
303  end if
Here is the caller graph for this function:

◆ logical_to_generic()

class(*) function, pointer conversions_mod::logical_to_generic ( logical, intent(in), target  input,
logical, intent(in)  makecopy 
)
private

Converts a logical into its generic data representation.

Parameters
inputThe logical to convert into its generic representation
makecopyWhether make a copy of the underlying data or just return a simple pointer
Returns
A pointer to the generic data

Definition at line 609 of file conversions.F90.

610  logical, target, intent(in) :: input
611  logical, intent(in) :: makecopy
612  class(*), pointer :: logical_to_generic
613 
614  if (makecopy) then
615  allocate(logical_to_generic, source=input)
616  else
617  logical_to_generic=>input
618  end if

◆ logical_to_integer()

integer function conversions_mod::logical_to_integer ( logical, intent(in)  input)
private

Converts a logical to an integer.

Parameters
inputThe logical to convert into an integer
Returns
The integer

Definition at line 531 of file conversions.F90.

532  logical, intent(in) :: input
533 
534  if (input) then
535  logical_to_integer = 1
536  else
537  logical_to_integer = 0
538  end if

◆ logical_to_real()

real function conversions_mod::logical_to_real ( logical, intent(in)  input)
private

Converts a logical to a real.

Parameters
inputThe logical to convert into a real
Returns
The real

Definition at line 479 of file conversions.F90.

480  logical, intent(in) :: input
481 
482  if (input) then
483  logical_to_real = 1.0
484  else
485  logical_to_real = 0.0
486  end if

◆ logical_to_string()

character(len=5) function conversions_mod::logical_to_string ( logical, intent(in)  input)
private

Converts a logical to a string.

Parameters
inputThe logical to convert into a string
Returns
The string of length 5 characters

Definition at line 337 of file conversions.F90.

338  logical, intent(in) :: input
339  character(len=5) :: logical_to_string
340 
341  if (input) then
342  logical_to_string = "true"
343  else
344  logical_to_string = "false"
345  end if

◆ real_double_to_generic()

class(*) function, pointer conversions_mod::real_double_to_generic ( real(kind=double_precision), intent(in), target  input,
logical, intent(in)  makecopy 
)
private

Converts a double real into its generic data representation.

Parameters
inputThe real to convert into its generic representation
makecopyWhether make a copy of the underlying data or just return a simple pointer
Returns
A pointer to the generic data

Definition at line 593 of file conversions.F90.

594  real(kind=double_precision), target, intent(in) :: input
595  logical, intent(in) :: makecopy
596  class(*), pointer :: real_double_to_generic
597 
598  if (makecopy) then
599  allocate(real_double_to_generic, source=input)
600  else
601  real_double_to_generic=>input
602  end if

◆ real_double_to_string()

character(len=30) function conversions_mod::real_double_to_string ( real(kind=double_precision), intent(in)  input,
integer, optional  decimal_places,
logical, optional  exponent,
logical, optional  exponent_small_numbers 
)
private

Converts a double precision real to a string.

Parameters
inputThe real to convert into a string
Returns
The string of length 30 characters

Definition at line 250 of file conversions.F90.

251  real(kind=double_precision), intent(in) :: input
252  character(len=30) :: real_double_to_string
253  integer, optional :: decimal_places
254  logical, optional :: exponent, exponent_small_numbers
255 
256  logical :: transformed
257  transformed=.false.
258 
259  if (present(exponent)) then
260  if (exponent) then
261  write(real_double_to_string, '(es30.10)' ) input
262  transformed=.true.
263  end if
264  end if
265  if (present(exponent_small_numbers)) then
266  if (exponent_small_numbers) then
267  write(real_double_to_string, '(g30.10)' ) input
268  transformed=.true.
269  end if
270  end if
271  if (.not. transformed) then
272  write(real_double_to_string, '(f30.10)' ) input
273  if (scan(real_double_to_string, "*") .ne. 0) write(real_double_to_string, '(es30.10)' ) input
274  end if
275  call trim_trailing_zeros(real_double_to_string, 2)
276  if (present(decimal_places)) then
277  call limit_to_decimal_places(real_double_to_string, decimal_places)
278  end if
279 
280  real_double_to_string = trim(adjustl(real_double_to_string))
Here is the call graph for this function:

◆ real_single_to_generic()

class(*) function, pointer conversions_mod::real_single_to_generic ( real(kind=single_precision), intent(in), target  input,
logical, intent(in)  makecopy 
)
private

Converts a single real into its generic data representation.

Parameters
inputThe real to convert into its generic representation
makecopyWhether make a copy of the underlying data or just return a simple pointer
Returns
A pointer to the generic data

Definition at line 577 of file conversions.F90.

578  real(kind=single_precision), target, intent(in) :: input
579  logical, intent(in) :: makecopy
580  class(*), pointer :: real_single_to_generic
581 
582  if (makecopy) then
583  allocate(real_single_to_generic, source=input)
584  else
585  real_single_to_generic=>input
586  end if

◆ real_single_to_string()

character(len=30) function conversions_mod::real_single_to_string ( real(kind=single_precision), intent(in)  input,
integer, optional  decimal_places,
logical, optional  exponent,
logical, optional  exponent_small_numbers 
)
private

Converts a single precision real to a string.

Parameters
inputThe real to convert into a string
Returns
The string of length 30 characters

Definition at line 216 of file conversions.F90.

217  real(kind=single_precision), intent(in) :: input
218  character(len=30) :: real_single_to_string
219  integer, optional :: decimal_places
220  logical, optional :: exponent, exponent_small_numbers
221 
222  logical :: transformed
223  transformed=.false.
224 
225  if (present(exponent)) then
226  if (exponent) then
227  write(real_single_to_string, '(es30.10)' ) input
228  transformed=.true.
229  end if
230  end if
231  if (present(exponent_small_numbers)) then
232  if (exponent_small_numbers) then
233  write(real_single_to_string, '(g30.10)' ) input
234  transformed=.true.
235  end if
236  end if
237  if (.not. transformed) then
238  write(real_single_to_string, '(f30.10)' ) input
239  if (scan(real_single_to_string, "*") .ne. 0) write(real_single_to_string, '(es30.10)' ) input
240  end if
241  call trim_trailing_zeros(real_single_to_string, 2)
242  if (present(decimal_places)) call limit_to_decimal_places(real_single_to_string, decimal_places)
243 
244  real_single_to_string = trim(adjustl(real_single_to_string))
Here is the call graph for this function:

◆ real_to_integer()

integer function conversions_mod::real_to_integer ( real, intent(in)  input)
private

Converts a real to an integer.

Parameters
inputThe real to convert into an integer
Returns
The integer

Definition at line 522 of file conversions.F90.

523  real, intent(in) :: input
524 
525  real_to_integer = int(input)

◆ real_to_logical()

logical function conversions_mod::real_to_logical ( real, intent(in)  input)
private

Converts a real to a logical.

Parameters
inputThe real to convert into a logical
Returns
The logical

Definition at line 399 of file conversions.F90.

400  real, intent(in) :: input
401 
402  if (input .ge. 1.0) then
403  real_to_logical = .true.
404  else
405  real_to_logical = .false.
406  end if

◆ string_is_integer()

logical function conversions_mod::string_is_integer ( character(len=*), intent(in)  string)
private

Determines whether a string is an integer or not.

Parameters
stringThe string to test
Returns
Logical whether or not the string can be represented as an integer

Definition at line 134 of file conversions.F90.

135  character(len=*), intent(in) :: string
136 
137  integer :: integer_value, ierr
138 
139  if (len(trim(string)) .ne. 0) then
140  read(string, '(i11)', iostat=ierr ) integer_value
141  string_is_integer = ierr == 0
142  else
143  string_is_integer=.false.
144  end if

◆ string_is_logical()

logical function conversions_mod::string_is_logical ( character(len=*), intent(in)  string)
private

Determines whether a string is a logical or not.

Parameters
stringThe string to test
Returns
Logical whether or not the string can be represented as a logical

Definition at line 167 of file conversions.F90.

168  character(len=*), intent(in) :: string
169 
170  string_is_logical = .false.
171  if (trim(adjustl(string)) .eq. "true" .or. trim(adjustl(string)) .eq. "false" .or. &
172  trim(adjustl(string)) .eq. ".true." .or. trim(adjustl(string)) .eq. ".false." .or. &
173  trim(adjustl(string)) .eq. ".true" .or. trim(adjustl(string)) .eq. "true." .or. &
174  trim(adjustl(string)) .eq. ".false" .or. trim(adjustl(string)) .eq. "false.") string_is_logical = .true.

◆ string_is_real()

logical function conversions_mod::string_is_real ( character(len=*), intent(in)  string)
private

Determines whether a string is a real or not.

Parameters
stringThe string to test
Returns
Logical whether or not the string can be represented as a real

Definition at line 150 of file conversions.F90.

151  character(len=*), intent(in) :: string
152 
153  integer :: ierr
154  real :: real_value
155 
156  if (len(trim(string)) .ne. 0) then
157  read(string, '(f12.2)', iostat=ierr ) real_value
158  string_is_real = ierr == 0
159  else
160  string_is_real=.false.
161  end if

◆ string_to_generic()

class(*) function, pointer conversions_mod::string_to_generic ( character(len=*), intent(in), target  string,
logical, intent(in)  makecopy 
)
private

Converts a string into its generic data representation.

Parameters
stringThe string to convert into its generic representation
makecopyWhether make a copy of the underlying data or just return a simple pointer
Returns
A pointer to the generic data

Definition at line 545 of file conversions.F90.

546  character(len=*), target, intent(in) :: string
547  logical, intent(in) :: makecopy
548  class(*), pointer :: string_to_generic
549 
550  if (makecopy) then
551  allocate(string_to_generic, source=string)
552  else
553  string_to_generic=>string
554  end if

◆ string_to_integer()

integer function conversions_mod::string_to_integer ( character(len=*), intent(in)  string)
private

Converts a string to an integer.

Parameters
stringThe string to convert into an integer
Returns
The integer

Definition at line 513 of file conversions.F90.

514  character(len=*), intent(in) :: string
515 
516  read(string, '(i15)' ) string_to_integer

◆ string_to_logical()

logical function conversions_mod::string_to_logical ( character(len=*), intent(in)  string)
private

Converts a string to a logical.

Parameters
stringThe string to convert into a logical (case sensitive)
Returns
The logical

Definition at line 372 of file conversions.F90.

373  character(len=*), intent(in) :: string
374 
375  if (trim(adjustl(string)) .eq. "true" .or. trim(adjustl(string)) .eq. ".true." .or. &
376  trim(adjustl(string)) .eq. ".true" .or. trim(adjustl(string)) .eq. "true.") then
377  string_to_logical = .true.
378  else
379  string_to_logical = .false.
380  end if

◆ string_to_real()

real function conversions_mod::string_to_real ( character(len=*), intent(in)  string)
private

Converts a string to a real.

Parameters
stringThe string to convert into a real
Returns
The real

Definition at line 457 of file conversions.F90.

458  character(len=*), intent(in) :: string
459 
460  if (scan(string, "E") .ne. 0 .or. scan(string, "e") .ne. 0) then
461  read(string, '(es30.10)' ) string_to_real
462  else
463  read(string, '(f11.2)' ) string_to_real
464  end if

◆ trim_trailing_zeros()

subroutine conversions_mod::trim_trailing_zeros ( character(len=*), intent(inout)  string_to_parse,
integer, intent(in)  zeros_to_retain 
)
private

A helper subroutine which trims training zeros from the string after a decimal place this is to make the string more readable when printed out.

Parameters
stringToParseThe string to parse which is modified to replace trailing zeros
zerosToRetainThe number of trailing (after decimal) zeros to retain

Definition at line 310 of file conversions.F90.

311  character(len=*), intent(inout) :: string_to_parse
312  integer, intent(in) :: zeros_to_retain
313 
314  integer :: decimal_posn, i, zero_count, nonzero_hit
315 
316  zero_count=0
317 
318  decimal_posn=index(string_to_parse, ".")
319  if (decimal_posn .ne. 0 .and. decimal_posn .lt. len(string_to_parse)) then
320  do i=len(trim(string_to_parse)), decimal_posn, -1
321  if (string_to_parse(i:i) .ne. "0") then
322  nonzero_hit=i
323  exit
324  else
325  zero_count=zero_count+1
326  end if
327  end do
328  if (zero_count .gt. zeros_to_retain) then
329  string_to_parse(nonzero_hit+zeros_to_retain:)=""
330  end if
331  end if
Here is the caller graph for this function:

Variable Documentation

◆ l_original_rounding

logical conversions_mod::l_original_rounding = .False.
private

Definition at line 14 of file conversions.F90.

14  logical :: l_original_rounding = .false.

◆ real_rounding_precision

integer, parameter conversions_mod::real_rounding_precision =int(1e8)
private

Definition at line 16 of file conversions.F90.

16  integer, parameter :: REAL_ROUNDING_PRECISION=int(1e8)
datadefn_mod::default_precision
integer, parameter, public default_precision
MPI communication type which we use for the prognostic and calculation data.
Definition: datadefn.F90:17