CAMP 1.0.0
Chemistry Across Multiple Phases
|
Common utility subroutines. More...
Data Types | |
interface | string_t |
String type for building arrays of string of various size. More... | |
interface | to_string |
Interface for to_string functions. More... | |
Functions/Subroutines | |
type(string_t) function, pointer | string_t_constructor (val) |
Constructor for string_t. | |
elemental subroutine | string_t_finalize (this) |
Finalize a string. | |
subroutine | warn_msg (code, warning_msg, already_warned) |
Prints a warning message. | |
subroutine | warn_assert_msg (code, condition_ok, warning_msg) |
Prints a warning message if condition_ok is false. | |
subroutine | assert_msg (code, condition_ok, error_msg) |
Errors unless condition_ok is true. | |
subroutine | assert (code, condition_ok) |
Errors unless condition_ok is true. | |
subroutine | die (code) |
Error immediately. | |
subroutine | die_msg (code, error_msg) |
Error immediately. | |
integer function | get_unit () |
Returns an available unit number. This should be freed by free_unit(). | |
subroutine | free_unit (unit) |
Frees a unit number returned by get_unit(). | |
subroutine | open_file_read (filename, unit) |
Open a file for reading with an automatically assigned unit and test that it succeeds. The file should be closed with close_file(). | |
subroutine | open_file_write (filename, unit) |
Open a file for writing with an automatically assigned unit and test that it succeeds. The file should be closed with close_file(). | |
subroutine | close_file (unit) |
Close a file and de-assign the unit. | |
real(kind=dp) elemental function | sphere_vol2rad (v) |
Convert mass-equivalent volume \(V\) (m^3) to geometric radius \(R_{\rm geo}\) (m) for spherical particles. | |
real(kind=dp) elemental function | rad2diam (r) |
Convert radius (m) to diameter (m). | |
real(kind=dp) elemental function | sphere_rad2vol (r) |
Convert geometric radius \(R_{\rm geo}\) (m) to mass-equivalent volume \(V\) (m^3) for spherical particles. | |
real(kind=dp) elemental function | diam2rad (d) |
Convert diameter (m) to radius (m). | |
real(kind=dp) function | air_mean_free_path (temp, pressure) |
Calculate air molecular mean free path \(l\) (m). | |
logical function | almost_equal (d1, d2, rel_tol, abs_tol) |
Tests whether two real numbers are almost equal using only a relative tolerance. | |
logical function | almost_equal_abs (d1, d2, abs_tol) |
Tests whether two real numbers are almost equal using an absolute and relative tolerance. | |
subroutine | check_time_multiple (first_name, first_time, second_name, second_time) |
Check that the first time interval is close to an integer multiple of the second, and warn if it is not. | |
subroutine | check_event (time, timestep, interval, last_time, do_event) |
Computes whether an event is scheduled to take place. | |
real(kind=dp) function, dimension(:), allocatable | linspace (min_x, max_x, n) |
Makes a linearly spaced array from min to max. | |
real(kind=dp) function, dimension(:), allocatable | logspace (min_x, max_x, n) |
Makes a logarithmically spaced array of length n from min to max. | |
integer function | linspace_find (min_x, max_x, n, x) |
Find the position of a real number in a 1D linear array. | |
integer function | logspace_find (min_x, max_x, n, x) |
Find the position of a real number in a 1D logarithmic array. | |
integer function | find_1d (n, x_vals, x) |
Find the position of a real number in an arbitrary 1D array. | |
real(kind=dp) function | interp_1d (x_vals, y_vals, x) |
1D linear interpolation. | |
real(kind=dp) function | interp_linear_disc (x_1, x_n, n, i) |
Linear interpolation over discrete indices. | |
integer function | string_to_integer (string) |
Convert a string to an integer. | |
real(kind=dp) function | string_to_real (string) |
Convert a string to a real. | |
logical function | string_to_logical (string) |
Convert a string to a logical. | |
character(len=camp_util_convert_string_len) function | integer_to_string (val) |
Convert an integer to a string format. | |
character(len=camp_util_convert_string_len) function | real_dp_to_string (val) |
Convert a double precision real to a string format. | |
character(len=camp_util_convert_string_len) function | real_sp_to_string (val) |
Convert a single precision real to a string format. | |
character(len=camp_util_convert_string_len) function | logical_to_string (val) |
Convert a logical to a string format. | |
character(len=camp_util_convert_string_len) function | complex_to_string (val) |
Convert a complex to a string format. | |
character(len=camp_util_convert_string_len) function | integer_to_string_max_len (val, max_len) |
Convert an integer to a string format of maximum length. | |
character(len=camp_util_convert_string_len) function | real_to_string_max_len (val, max_len) |
Convert a real to a string format of maximum length. | |
character(len=camp_util_convert_string_len) function | time_to_string_max_len (time, max_len) |
Convert a time to a string format of maximum length. | |
type(string_t) function, dimension(:), allocatable | split_char (this, splitter, compress) |
Splits a string on a substring. | |
type(string_t) function, dimension(:), allocatable | split_string (this, splitter, compress) |
Splits a string on a substring. | |
subroutine | vec_cts_to_disc (n, vec_cts, n_samp, vec_disc) |
Convert a real-valued vector into an integer-valued vector. | |
subroutine | average_integer (int_vec, int_avg) |
Computes the average of an array of integer numbers. | |
subroutine | average_real (real_vec, real_avg) |
Computes the average of an array of real numbers. | |
integer function | string_array_find (array, val) |
Return the index of the first occurance of the given value in the array, or 0 if it is not present. | |
subroutine | ensure_real_array_size (x, n, only_grow) |
Allocate or reallocate the given array to ensure it is of the given size, preserving any data and/or initializing to 0. | |
subroutine | ensure_real_array_2d_size (x, n1, n2, only_grow) |
Allocate or reallocate the given array to ensure it is of the given size, preserving any data and/or initializing to 0. | |
subroutine | ensure_integer_array_size (x, n, only_grow) |
Allocate or reallocate the given array to ensure it is of the given size, preserving any data and/or initializing to 0. | |
subroutine | ensure_integer_array_2d_size (x, n1, n2, only_grow) |
Allocate or reallocate the given array to ensure it is of the given size, preserving any data and/or initializing to 0. | |
subroutine | ensure_string_array_size (x, n) |
Allocate or reallocate the given array to ensure it is of the given size, without preserving data. | |
subroutine | get_basename (filename, basename) |
Strip the extension to find the basename. | |
subroutine | iso8601_date_and_time (date_time) |
Current date and time in ISO 8601 format. | |
real(kind=dp) function | deg2rad (deg) |
Convert degrees to radians. | |
real(kind=dp) function | rad2deg (rad) |
Convert radians to degrees. | |
subroutine | integer_sort (data, perm) |
Sort the given data array and return the permutation defining the sort. | |
subroutine | loadtxt (filename, data) |
Load a real array from a text file. | |
subroutine | savetxt_1d (filename, data) |
Write a real 1D array to a text file. | |
subroutine | savetxt_2d (filename, data) |
Write a real 2D array to a text file. | |
subroutine | reallocate_real_array2d (data, rows, cols) |
Reallocate a 2D real array to the given size, preserving the contents. | |
subroutine | read_char_raw (unit, char, eol, eof) |
Read a single character from a file, signaling if we have hit end-of-line (EOL) or end-of-file (EOF). If EOL or EOF are true then the character value should be ignored. | |
subroutine | read_word_raw (unit, word, eol, eof) |
Read a white-space delimited word from a file, signaling if we have EOL or EOF. If EOL or EOF are true then the word will still be meaningful data. If there was no data to be read then len(word) will be 0. | |
logical function | starts_with (string, start_string) |
Checks whether a string starts with a given other string. | |
elemental real(kind=dp) function | harmonic_mean (x1, x2) |
Compute the harmonic mean of two numbers. | |
elemental real(kind=dp) function | nplogp (p) |
Compute \( - p \ln p\) for computing entropy. | |
real(kind=dp) function | entropy (p) |
Compute the entropy of a probability mass function (non necessarily normalized). | |
integer function | pow2_above (n) |
Return the least power-of-2 that is at least equal to n. | |
Variables | |
integer, parameter | max_units = 200 |
Maximum number of IO units usable simultaneously. | |
integer, parameter | unit_offset = 10 |
Minimum unit number to allocate. | |
logical, dimension(max_units), save | unit_used = .false. |
Table of unit numbers storing allocation status. | |
integer, parameter | camp_util_convert_string_len = 100 |
Length of string for converting numbers. | |
integer, parameter | camp_max_filename_len = 300 |
Maximum length of filenames. | |
Common utility subroutines.
logical function camp_util::almost_equal | ( | real(kind=dp), intent(in) | d1, |
real(kind=dp), intent(in) | d2, | ||
real(kind=dp), intent(in), optional | rel_tol, | ||
real(kind=dp), intent(in), optional | abs_tol | ||
) |
Tests whether two real numbers are almost equal using only a relative tolerance.
[in] | d1 | First number to compare. |
[in] | d2 | Second number to compare. |
[in] | rel_tol | User-defined relative tolerance |
[in] | abs_tol | User-defined absolute tolerance |
Relative tolerance.
Absolute tolerance.
Definition at line 379 of file util.F90.
logical function camp_util::almost_equal_abs | ( | real(kind=dp), intent(in) | d1, |
real(kind=dp), intent(in) | d2, | ||
real(kind=dp), intent(in) | abs_tol | ||
) |
Tests whether two real numbers are almost equal using an absolute and relative tolerance.
[in] | d1 | First number to compare. |
[in] | d2 | Second number to compare. |
[in] | abs_tol | Tolerance for when d1 equals d2. |
Relative tolerance.
Definition at line 421 of file util.F90.
subroutine camp_util::assert | ( | integer, intent(in) | code, |
logical, intent(in) | condition_ok | ||
) |
subroutine camp_util::assert_msg | ( | integer, intent(in) | code, |
logical, intent(in) | condition_ok, | ||
character(len=*), intent(in) | error_msg | ||
) |
Errors unless condition_ok is true.
[in] | code | Status code to use if assertion fails. |
[in] | condition_ok | Whether the assertion is ok. |
[in] | error_msg | Msg if assertion fails. |
Definition at line 129 of file util.F90.
subroutine camp_util::average_integer | ( | integer, dimension(:), intent(in) | int_vec, |
integer, intent(out) | int_avg | ||
) |
subroutine camp_util::check_event | ( | real(kind=dp), intent(in) | time, |
real(kind=dp), intent(in) | timestep, | ||
real(kind=dp), intent(in) | interval, | ||
real(kind=dp), intent(inout) | last_time, | ||
logical, intent(out) | do_event | ||
) |
Computes whether an event is scheduled to take place.
The events should occur ideally at times 0, interval, 2*interval, etc. The events are guaranteed to occur at least interval * (1 - tolerance) apart, and if at least interval time has passed then the next call is guaranteed to do the event. Otherwise the timestep is used to guess whether to do the event.
[in] | time | Current time. |
[in] | timestep | Estimate of the time to the next call. |
[in] | interval | How often the event should be done. |
[in,out] | last_time | When the event was last done. |
[out] | do_event | Whether the event should be done. |
Fuzz for event occurance.
subroutine camp_util::check_time_multiple | ( | character(len=*), intent(in) | first_name, |
real(kind=dp), intent(in) | first_time, | ||
character(len=*), intent(in) | second_name, | ||
real(kind=dp), intent(in) | second_time | ||
) |
Check that the first time interval is close to an integer multiple of the second, and warn if it is not.
[in] | first_name | Name of the first time variable. |
[in] | first_time | First time variable (s). |
[in] | second_name | Name of the second time variable. |
[in] | second_time | Second time variable (s). |
Definition at line 451 of file util.F90.
subroutine camp_util::close_file | ( | integer, intent(in) | unit | ) |
character(len=camp_util_convert_string_len) function camp_util::complex_to_string | ( | complex(kind=dc), intent(in) | val | ) |
subroutine camp_util::die | ( | integer, intent(in) | code | ) |
subroutine camp_util::die_msg | ( | integer, intent(in) | code, |
character(len=*), intent(in) | error_msg | ||
) |
subroutine camp_util::ensure_integer_array_2d_size | ( | integer, dimension(:, :), intent(inout), allocatable | x, |
integer, intent(in) | n1, | ||
integer, intent(in) | n2, | ||
logical, intent(in), optional | only_grow | ||
) |
Allocate or reallocate the given array to ensure it is of the given size, preserving any data and/or initializing to 0.
[in,out] | x | Array of integer numbers. |
[in] | n1 | Desired first size of array. |
[in] | n2 | Desired second size of array. |
[in] | only_grow | Whether to only increase the array size (default .true.). |
subroutine camp_util::ensure_integer_array_size | ( | integer, dimension(:), intent(inout), allocatable | x, |
integer, intent(in) | n, | ||
logical, intent(in), optional | only_grow | ||
) |
Allocate or reallocate the given array to ensure it is of the given size, preserving any data and/or initializing to 0.
[in,out] | x | Array of integer numbers. |
[in] | n | Desired size of array. |
[in] | only_grow | Whether to only increase the array size (default .true.). |
subroutine camp_util::ensure_real_array_2d_size | ( | real(kind=dp), dimension(:, :), intent(inout), allocatable | x, |
integer, intent(in) | n1, | ||
integer, intent(in) | n2, | ||
logical, intent(in), optional | only_grow | ||
) |
Allocate or reallocate the given array to ensure it is of the given size, preserving any data and/or initializing to 0.
[in,out] | x | Array of real numbers. |
[in] | n1 | Desired first size of array. |
[in] | n2 | Desired second size of array. |
[in] | only_grow | Whether to only increase the array size (default .true.). |
subroutine camp_util::ensure_real_array_size | ( | real(kind=dp), dimension(:), intent(inout), allocatable | x, |
integer, intent(in) | n, | ||
logical, intent(in), optional | only_grow | ||
) |
Allocate or reallocate the given array to ensure it is of the given size, preserving any data and/or initializing to 0.
[in,out] | x | Array of real numbers. |
[in] | n | Desired size of array. |
[in] | only_grow | Whether to only increase the array size (default .true.). |
subroutine camp_util::ensure_string_array_size | ( | character(len=*), dimension(:), intent(inout), allocatable | x, |
integer, intent(in) | n | ||
) |
integer function camp_util::find_1d | ( | integer, intent(in) | n, |
real(kind=dp), dimension(n), intent(in) | x_vals, | ||
real(kind=dp), intent(in) | x | ||
) |
Find the position of a real number in an arbitrary 1D array.
Takes an array of x_vals, and a single x value, and returns the position p such that x_vals(p) <= x < x_vals(p+1). If p == 0 then x < x_vals(1) and if p == n then x_vals(n) <= x. x_vals must be sorted in increasing order.
If the array is known to be linearly or logarithmically spaced then linspace_find() or logspace_find() will be much faster.
[in] | n | Number of values. |
[in] | x_vals | X value array, must be sorted. |
[in] | x | Value to interpolate at. |
Definition at line 668 of file util.F90.
subroutine camp_util::free_unit | ( | integer, intent(in) | unit | ) |
Frees a unit number returned by get_unit().
Definition at line 233 of file util.F90.
subroutine camp_util::get_basename | ( | character(len=*), intent(in) | filename, |
character(len=*), intent(out) | basename | ||
) |
Strip the extension to find the basename.
The filename is assumed to be of the form basename.extension, where extension contains no periods. If there is no period in filename then basename is the whole filename.
[in] | filename | Full filename. |
[out] | basename | Basename. |
integer function camp_util::get_unit |
Returns an available unit number. This should be freed by free_unit().
Definition at line 209 of file util.F90.
subroutine camp_util::integer_sort | ( | integer, dimension(:), intent(inout) | data, |
integer, dimension(size(data)), intent(out) | perm | ||
) |
Sort the given data array and return the permutation defining the sort.
If data
is the original data array, new_data
is the sorted value of data, and perm
is the returned permutation, then new_data(i) = data(perm(i))
.
[in,out] | data | Data array to sort, sorted on exit. |
[out] | perm | Permutation defining the sort: new_data(i) = data(perm(i)) . |
character(len=camp_util_convert_string_len) function camp_util::integer_to_string | ( | integer, intent(in) | val | ) |
character(len=camp_util_convert_string_len) function camp_util::integer_to_string_max_len | ( | integer, intent(in) | val, |
integer, intent(in) | max_len | ||
) |
real(kind=dp) function camp_util::interp_1d | ( | real(kind=dp), dimension(:), intent(in) | x_vals, |
real(kind=dp), dimension(size(x_vals)), intent(in) | y_vals, | ||
real(kind=dp), intent(in) | x | ||
) |
1D linear interpolation.
Takes an array of x and y, and a single x value, and returns the corresponding y using linear interpolation. x_vals must be sorted.
[in] | x_vals | X value array, must be sorted. |
[in] | y_vals | Y value array. |
[in] | x | Value to interpolate at. |
Definition at line 702 of file util.F90.
real(kind=dp) function camp_util::interp_linear_disc | ( | real(kind=dp), intent(in) | x_1, |
real(kind=dp), intent(in) | x_n, | ||
integer, intent(in) | n, | ||
integer, intent(in) | i | ||
) |
Linear interpolation over discrete indices.
Takes real values x_1
and x_n
and integers n
and i
and returns the linear interpolation so that x_1
is returned when i
= 1 and x_n
is returned when i
= n
.
[in] | x_1 | Value of x when i = 1. |
[in] | x_n | Value of x when i = n. |
[in] | n | Number of points to interpolate over. |
[in] | i | Index to interpolate at. |
Definition at line 739 of file util.F90.
subroutine camp_util::iso8601_date_and_time | ( | character(len=*), intent(out) | date_time | ) |
integer function camp_util::linspace_find | ( | real(kind=dp), intent(in) | min_x, |
real(kind=dp), intent(in) | max_x, | ||
integer, intent(in) | n, | ||
real(kind=dp), intent(in) | x | ||
) |
Find the position of a real number in a 1D linear array.
If xa is the array allocated by linspace(min_x, max_x, xa) then i = linspace_find(min_x, max_x, n, x) returns the index i satisfying xa(i) <= x < xa(i+1) for min_x <= x < max_x. If x == max_x then i = n - 1. If x > max_x then i = n. If x < min_x then i = 0. Thus 0 <= i <= n. Here n is the length of xa.
This is equivalent to using find_1d() but much faster if the array is linear.
[in] | min_x | Minimum array value. |
[in] | max_x | Maximum array value. |
[in] | n | Number of entries. |
[in] | x | Value. |
Definition at line 608 of file util.F90.
subroutine camp_util::loadtxt | ( | character(len=*), intent(in) | filename, |
real(kind=dp), dimension(:,:), intent(inout), allocatable | data | ||
) |
character(len=camp_util_convert_string_len) function camp_util::logical_to_string | ( | logical, intent(in) | val | ) |
real(kind=dp) function, dimension(:), allocatable camp_util::logspace | ( | real(kind=dp), intent(in) | min_x, |
real(kind=dp), intent(in) | max_x, | ||
integer, intent(in) | n | ||
) |
Makes a logarithmically spaced array of length n from min to max.
[in] | min_x | Minimum array value. |
[in] | max_x | Maximum array value. |
[in] | n | Length of array to create. |
Definition at line 568 of file util.F90.
integer function camp_util::logspace_find | ( | real(kind=dp), intent(in) | min_x, |
real(kind=dp), intent(in) | max_x, | ||
integer, intent(in) | n, | ||
real(kind=dp), intent(in) | x | ||
) |
Find the position of a real number in a 1D logarithmic array.
If xa is the array allocated by logspace(min_x, max_x, xa) then i = logspace_find(min_x, max_x, n, x) returns the index i satisfying xa(i) <= x < xa(i+1) for min_x <= x < max_x. If x >= max_x then i = n. If x < min_x then i = 0. Thus 0 <= i <= n. Here n is the length of xa.
This is equivalent to using find_1d() but much faster if the array is logarithmic.
[in] | min_x | Minimum array value. |
[in] | max_x | Maximum array value. |
[in] | n | Number of entries. |
[in] | x | Value. |
Definition at line 642 of file util.F90.
subroutine camp_util::open_file_read | ( | character(len=*), intent(in) | filename, |
integer, intent(out) | unit | ||
) |
Open a file for reading with an automatically assigned unit and test that it succeeds. The file should be closed with close_file().
[in] | filename | Filename to open. |
[out] | unit | Unit assigned to file. |
Definition at line 246 of file util.F90.
subroutine camp_util::open_file_write | ( | character(len=*), intent(in) | filename, |
integer, intent(out) | unit | ||
) |
Open a file for writing with an automatically assigned unit and test that it succeeds. The file should be closed with close_file().
[in] | filename | Filename to open. |
[out] | unit | Unit assigned to file. |
Definition at line 267 of file util.F90.
integer function camp_util::pow2_above | ( | integer, intent(in) | n | ) |
subroutine camp_util::read_char_raw | ( | integer, intent(in) | unit, |
character, intent(out) | char, | ||
logical, intent(out) | eol, | ||
logical, intent(out) | eof | ||
) |
Read a single character from a file, signaling if we have hit end-of-line (EOL) or end-of-file (EOF). If EOL or EOF are true then the character value should be ignored.
Testing with gfortran 4.5.3 and different length files shows:
Empty file (total file length 0):
File containing a single 'A' character (total file length 1):
File containing a single newline '
' (total file length 1):
File containing a character and newline 'A
' (total file length 2):
[in] | unit | Unit number to read from. |
[out] | char | Character read. |
[out] | eol | True if at EOL (end of line). |
[out] | eof | True if at EOF (end of file). |
Definition at line 1722 of file util.F90.
subroutine camp_util::read_word_raw | ( | integer, intent(in) | unit, |
character(len=*), intent(out) | word, | ||
logical, intent(out) | eol, | ||
logical, intent(out) | eof | ||
) |
Read a white-space delimited word from a file, signaling if we have EOL or EOF. If EOL or EOF are true then the word will still be meaningful data. If there was no data to be read then len(word) will be 0.
[in] | unit | Unit number to read from. |
[out] | word | Word read. |
[out] | eol | True if at EOL (end of line). |
[out] | eof | True if at EOF (end of file). |
Definition at line 1766 of file util.F90.
character(len=camp_util_convert_string_len) function camp_util::real_dp_to_string | ( | real(kind=dp), intent(in) | val | ) |
character(len=camp_util_convert_string_len) function camp_util::real_sp_to_string | ( | real(kind=sp), intent(in) | val | ) |
character(len=camp_util_convert_string_len) function camp_util::real_to_string_max_len | ( | real(kind=dp), intent(in) | val, |
integer, intent(in) | max_len | ||
) |
subroutine camp_util::reallocate_real_array2d | ( | real(kind=dp), dimension(:,:), intent(inout), allocatable | data, |
integer, intent(in) | rows, | ||
integer, intent(in) | cols | ||
) |
subroutine camp_util::savetxt_1d | ( | character(len=*), intent(in) | filename, |
real(kind=dp), dimension(:), intent(in) | data | ||
) |
subroutine camp_util::savetxt_2d | ( | character(len=*), intent(in) | filename, |
real(kind=dp), dimension(:,:), intent(in) | data | ||
) |
type(string_t) function, dimension(:), allocatable camp_util::split_char | ( | class(string_t), intent(in) | this, |
character(len=*), intent(in) | splitter, | ||
logical, intent(in), optional | compress | ||
) |
Splits a string on a substring.
Example:
Output:
[in] | this | Full string |
[in] | splitter | String to split on |
[in] | compress | Compress (default = false) |
No 0-length substrings will be returned (adjacent tokens will be merged; tokens at the beginning and end of the original string will be ignored)
Definition at line 1068 of file util.F90.
type(string_t) function, dimension(:), allocatable camp_util::split_string | ( | class(string_t), intent(in) | this, |
type(string_t), intent(in) | splitter, | ||
logical, intent(in), optional | compress | ||
) |
Splits a string on a substring.
See string_split_char
for description and example
[in] | this | Full string |
[in] | splitter | String to split on |
[in] | compress | Compress (default = false) |
No 0-length substrings will be returned (adjacent tokens will be merged; tokens at the beginning and end of the original string will be ignored)
Definition at line 1160 of file util.F90.
logical function camp_util::starts_with | ( | character(len=*), intent(in) | string, |
character(len=*), intent(in) | start_string | ||
) |
Checks whether a string starts with a given other string.
starts_with(A, B)
returns true
if string A
starts with string B
.
[in] | string | String to test. |
[in] | start_string | Starting string. |
Definition at line 1811 of file util.F90.
integer function camp_util::string_array_find | ( | character(len=*), dimension(:), intent(in) | array, |
character(len=*), intent(in) | val | ||
) |
type(string_t) function, pointer camp_util::string_t_constructor | ( | character(len=:), intent(in), allocatable | val | ) |
elemental subroutine camp_util::string_t_finalize | ( | type(string_t), intent(inout) | this | ) |
integer function camp_util::string_to_integer | ( | character(len=*), intent(in) | string | ) |
logical function camp_util::string_to_logical | ( | character(len=*), intent(in) | string | ) |
real(kind=dp) function camp_util::string_to_real | ( | character(len=*), intent(in) | string | ) |
character(len=camp_util_convert_string_len) function camp_util::time_to_string_max_len | ( | real(kind=dp), intent(in) | time, |
integer, intent(in) | max_len | ||
) |
subroutine camp_util::vec_cts_to_disc | ( | integer, intent(in) | n, |
real(kind=dp), dimension(n), intent(in) | vec_cts, | ||
integer, intent(in) | n_samp, | ||
integer, dimension(n), intent(out) | vec_disc | ||
) |
Convert a real-valued vector into an integer-valued vector.
Use n_samp samples. Returns discrete vector whose relative entry sizes are \( \ell_1 \) closest to the continuous vector.
[in] | n | Number of entries in vectors. |
[in] | vec_cts | Continuous vector. |
[in] | n_samp | Number of discrete samples to use. |
[out] | vec_disc | Discretized vector. |
Definition at line 1185 of file util.F90.
subroutine camp_util::warn_assert_msg | ( | integer, intent(in) | code, |
logical, intent(in) | condition_ok, | ||
character(len=*), intent(in) | warning_msg | ||
) |
subroutine camp_util::warn_msg | ( | integer, intent(in) | code, |
character(len=*), intent(in) | warning_msg, | ||
logical, intent(inout), optional | already_warned | ||
) |
Prints a warning message.
[in] | code | Status code to use. |
[in] | warning_msg | Message to display. |
[in,out] | already_warned | Flag to control warning only once (should be a save variable). |
Definition at line 89 of file util.F90.
integer, parameter camp_util::camp_max_filename_len = 300 |
integer, parameter camp_util::camp_util_convert_string_len = 100 |
integer, parameter camp_util::max_units = 200 |
integer, parameter camp_util::unit_offset = 10 |