Skip to content
Snippets Groups Projects
Commit d8a4b4bd authored by Evgeny Mortikov's avatar Evgeny Mortikov
Browse files

adding char array to string conversion

parent c04d514f
No related branches found
No related tags found
No related merge requests found
/drag.exe /drag.exe
/build/ /build/
/srcF/*.mod /srcF/*.mod
/parser/*.mod
.idea .idea
...@@ -18,7 +18,24 @@ contains ...@@ -18,7 +18,24 @@ contains
end subroutine str2int end subroutine str2int
! ---------------------------------------------------------------------------- ! ----------------------------------------------------------------------------
!> @brief character array to string conversion
function char_array2str(char_array) result(str)
! ----------------------------------------------------------------------------
implicit none
character, intent(in) :: char_array(:)
character(len=:), allocatable :: str
integer :: i
! ----------------------------------------------------------------------------
str = ""
do i = 1, size(char_array)
str = str(:) // char_array(i)
end do
end function
! ----------------------------------------------------------------------------
!> @brief check if value is finite !> @brief check if value is finite
elemental function is_finite(value) elemental function is_finite(value)
! ---------------------------------------------------------------------------- ! ----------------------------------------------------------------------------
......
...@@ -110,7 +110,7 @@ program sfx_main ...@@ -110,7 +110,7 @@ program sfx_main
#ifdef USE_CONFIG_PARSER #ifdef USE_CONFIG_PARSER
character, allocatable :: config_model_name(:) character, allocatable :: config_model_name(:)
character, allocatable :: config_dataset_name(:) character, allocatable :: config_dataset_name(:)
character, allocatable :: fn_in_common(:), fn_in(:), fn_out(:) character, allocatable :: fn_in_common(:), fn_in(:), fn_out(:)
integer :: sfx_type integer :: sfx_type
real :: z0_m real :: z0_m
...@@ -223,13 +223,13 @@ program sfx_main ...@@ -223,13 +223,13 @@ program sfx_main
call run("config.txt"//C_NULL_CHAR) call run("config.txt"//C_NULL_CHAR)
call get_charf("model.type"//C_NULL_CHAR, config_model_name) call get_charf("model.type"//C_NULL_CHAR, config_model_name)
if (compare_char_arrays(config_model_name, trim(arg_key_model_esm), size(config_model_name))) then if (compare_char_arrays(config_model_name, trim(arg_key_model_esm))) then
model_id = model_esm model_id = model_esm
else if (compare_char_arrays(config_model_name, trim(arg_key_model_log), size(config_model_name))) then else if (compare_char_arrays(config_model_name, trim(arg_key_model_log))) then
model_id = model_log model_id = model_log
else if (compare_char_arrays(config_model_name, trim(arg_key_model_most), size(config_model_name))) then else if (compare_char_arrays(config_model_name, trim(arg_key_model_most))) then
model_id = model_most model_id = model_most
else if (compare_char_arrays(config_model_name, trim(arg_key_model_sheba), size(config_model_name))) then else if (compare_char_arrays(config_model_name, trim(arg_key_model_sheba))) then
model_id = model_sheba model_id = model_sheba
else else
write(*, *) ' FAILURE! > unknown model [key]: ', config_model_name write(*, *) ' FAILURE! > unknown model [key]: ', config_model_name
...@@ -237,19 +237,19 @@ program sfx_main ...@@ -237,19 +237,19 @@ program sfx_main
end if end if
call get_charf("dataset.type"//C_NULL_CHAR, config_dataset_name) call get_charf("dataset.type"//C_NULL_CHAR, config_dataset_name)
if (compare_char_arrays(config_dataset_name, trim(arg_key_dataset_mosaic), size(config_dataset_name))) then if (compare_char_arrays(config_dataset_name, trim(arg_key_dataset_mosaic))) then
dataset_id = dataset_MOSAiC dataset_id = dataset_MOSAiC
else if (compare_char_arrays(config_dataset_name, trim(arg_key_dataset_irgason), size(config_dataset_name))) then else if (compare_char_arrays(config_dataset_name, trim(arg_key_dataset_irgason))) then
dataset_id = dataset_IRGASON dataset_id = dataset_IRGASON
else if (compare_char_arrays(config_dataset_name, trim(arg_key_dataset_sheba), size(config_dataset_name))) then else if (compare_char_arrays(config_dataset_name, trim(arg_key_dataset_sheba))) then
dataset_id = dataset_SHEBA dataset_id = dataset_SHEBA
else if (compare_char_arrays(config_dataset_name, trim(arg_key_dataset_lake), size(config_dataset_name))) then else if (compare_char_arrays(config_dataset_name, trim(arg_key_dataset_lake))) then
dataset_id = dataset_LAKE dataset_id = dataset_LAKE
else if (compare_char_arrays(config_dataset_name, trim(arg_key_dataset_papa), size(config_dataset_name))) then else if (compare_char_arrays(config_dataset_name, trim(arg_key_dataset_papa))) then
dataset_id = dataset_PAPA dataset_id = dataset_PAPA
else if (compare_char_arrays(config_dataset_name, trim(arg_key_dataset_toga), size(config_dataset_name))) then else if (compare_char_arrays(config_dataset_name, trim(arg_key_dataset_toga))) then
dataset_id = dataset_TOGA dataset_id = dataset_TOGA
else if (compare_char_arrays(config_dataset_name, trim(arg_key_dataset_user), size(config_dataset_name))) then else if (compare_char_arrays(config_dataset_name, trim(arg_key_dataset_user))) then
dataset_id = dataset_USER dataset_id = dataset_USER
!call get_charf("dataset.filename"//C_NULL_CHAR, config_dataset_filename) !call get_charf("dataset.filename"//C_NULL_CHAR, config_dataset_filename)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment