diff --git a/src/serialbox-fortran/m_ser_ftg.f90 b/src/serialbox-fortran/m_ser_ftg.f90 index a271cd20..2d18001f 100644 --- a/src/serialbox-fortran/m_ser_ftg.f90 +++ b/src/serialbox-fortran/m_ser_ftg.f90 @@ -48,229 +48,268 @@ MODULE m_ser_ftg CHARACTER(LEN=*), PARAMETER :: module_name = 'm_ser_ftg' INTERFACE ftg_set_serializer - MODULE PROCEDURE & - ftg_set_serializer_create, & - ftg_set_serializer_existing + MODULE PROCEDURE & + ftg_set_serializer_create, & + ftg_set_serializer_existing END INTERFACE INTERFACE ftg_set_savepoint - MODULE PROCEDURE & - ftg_set_savepoint_create, & - ftg_set_savepoint_existing + MODULE PROCEDURE & + ftg_set_savepoint_create, & + ftg_set_savepoint_existing END INTERFACE INTERFACE ftg_add_serializer_metainfo - MODULE PROCEDURE & - ftg_add_serializer_metainfo_b, & - ftg_add_serializer_metainfo_i, & - ftg_add_serializer_metainfo_f, & - ftg_add_serializer_metainfo_d, & - ftg_add_serializer_metainfo_s + MODULE PROCEDURE & + ftg_add_serializer_metainfo_b, & + ftg_add_serializer_metainfo_i, & + ftg_add_serializer_metainfo_l, & + ftg_add_serializer_metainfo_f, & + ftg_add_serializer_metainfo_d, & + ftg_add_serializer_metainfo_s +END INTERFACE + +INTERFACE ftg_get_serializer_metainfo + MODULE PROCEDURE & + ftg_get_serializer_metainfo_b, & + ftg_get_serializer_metainfo_i, & + ftg_get_serializer_metainfo_l, & + ftg_get_serializer_metainfo_f, & + ftg_get_serializer_metainfo_d +END INTERFACE + +INTERFACE ftg_add_field_metainfo + MODULE PROCEDURE & + ftg_add_field_metainfo_b, & + ftg_add_field_metainfo_i, & + ftg_add_field_metainfo_l, & + ftg_add_field_metainfo_f, & + ftg_add_field_metainfo_d, & + ftg_add_field_metainfo_s +END INTERFACE + +INTERFACE ftg_get_field_metainfo + MODULE PROCEDURE & + ftg_get_field_metainfo_b, & + ftg_get_field_metainfo_i, & + ftg_get_field_metainfo_l, & + ftg_get_field_metainfo_f, & + ftg_get_field_metainfo_d END INTERFACE INTERFACE ftg_add_savepoint_metainfo - MODULE PROCEDURE & - ftg_add_savepoint_metainfo_b, & - ftg_add_savepoint_metainfo_i, & - ftg_add_savepoint_metainfo_f, & - ftg_add_savepoint_metainfo_d, & - ftg_add_savepoint_metainfo_s + MODULE PROCEDURE & + ftg_add_savepoint_metainfo_b, & + ftg_add_savepoint_metainfo_i, & + ftg_add_savepoint_metainfo_l, & + ftg_add_savepoint_metainfo_f, & + ftg_add_savepoint_metainfo_d, & + ftg_add_savepoint_metainfo_s +END INTERFACE + +INTERFACE ftg_get_savepoint_metainfo + MODULE PROCEDURE & + ftg_get_savepoint_metainfo_b, & + ftg_get_savepoint_metainfo_i, & + ftg_get_savepoint_metainfo_l, & + ftg_get_savepoint_metainfo_f, & + ftg_get_savepoint_metainfo_d END INTERFACE INTERFACE ftg_write - MODULE PROCEDURE & - ftg_write_logical_0d, & - ftg_write_logical_1d, & - ftg_write_logical_2d, & - ftg_write_logical_3d, & - ftg_write_logical_4d, & - ftg_write_bool_0d, & - ftg_write_bool_1d, & - ftg_write_bool_2d, & - ftg_write_bool_3d, & - ftg_write_bool_4d, & - ftg_write_int_0d, & - ftg_write_int_1d, & - ftg_write_int_2d, & - ftg_write_int_3d, & - ftg_write_int_4d, & - ftg_write_long_0d, & - ftg_write_long_1d, & - ftg_write_long_2d, & - ftg_write_long_3d, & - ftg_write_long_4d, & - ftg_write_float_0d, & - ftg_write_float_1d, & - ftg_write_float_2d, & - ftg_write_float_3d, & - ftg_write_float_4d, & - ftg_write_double_0d, & - ftg_write_double_1d, & - ftg_write_double_2d, & - ftg_write_double_3d, & - ftg_write_double_4d + MODULE PROCEDURE & + ftg_write_logical_0d, & + ftg_write_logical_1d, & + ftg_write_logical_2d, & + ftg_write_logical_3d, & + ftg_write_logical_4d, & + ftg_write_bool_0d, & + ftg_write_bool_1d, & + ftg_write_bool_2d, & + ftg_write_bool_3d, & + ftg_write_bool_4d, & + ftg_write_int_0d, & + ftg_write_int_1d, & + ftg_write_int_2d, & + ftg_write_int_3d, & + ftg_write_int_4d, & + ftg_write_long_0d, & + ftg_write_long_1d, & + ftg_write_long_2d, & + ftg_write_long_3d, & + ftg_write_long_4d, & + ftg_write_float_0d, & + ftg_write_float_1d, & + ftg_write_float_2d, & + ftg_write_float_3d, & + ftg_write_float_4d, & + ftg_write_double_0d, & + ftg_write_double_1d, & + ftg_write_double_2d, & + ftg_write_double_3d, & + ftg_write_double_4d END INTERFACE INTERFACE ftg_read - MODULE PROCEDURE & - ftg_read_logical_0d, & - ftg_read_logical_1d, & - ftg_read_logical_2d, & - ftg_read_logical_3d, & - ftg_read_logical_4d, & - ftg_read_bool_0d, & - ftg_read_bool_1d, & - ftg_read_bool_2d, & - ftg_read_bool_3d, & - ftg_read_bool_4d, & - ftg_read_int_0d, & - ftg_read_int_1d, & - ftg_read_int_2d, & - ftg_read_int_3d, & - ftg_read_int_4d, & - ftg_read_long_0d, & - ftg_read_long_1d, & - ftg_read_long_2d, & - ftg_read_long_3d, & - ftg_read_long_4d, & - ftg_read_float_0d, & - ftg_read_float_1d, & - ftg_read_float_2d, & - ftg_read_float_3d, & - ftg_read_float_4d, & - ftg_read_double_0d, & - ftg_read_double_1d, & - ftg_read_double_2d, & - ftg_read_double_3d, & - ftg_read_double_4d + MODULE PROCEDURE & + ftg_read_logical_0d, & + ftg_read_logical_1d, & + ftg_read_logical_2d, & + ftg_read_logical_3d, & + ftg_read_logical_4d, & + ftg_read_bool_0d, & + ftg_read_bool_1d, & + ftg_read_bool_2d, & + ftg_read_bool_3d, & + ftg_read_bool_4d, & + ftg_read_int_0d, & + ftg_read_int_1d, & + ftg_read_int_2d, & + ftg_read_int_3d, & + ftg_read_int_4d, & + ftg_read_long_0d, & + ftg_read_long_1d, & + ftg_read_long_2d, & + ftg_read_long_3d, & + ftg_read_long_4d, & + ftg_read_float_0d, & + ftg_read_float_1d, & + ftg_read_float_2d, & + ftg_read_float_3d, & + ftg_read_float_4d, & + ftg_read_double_0d, & + ftg_read_double_1d, & + ftg_read_double_2d, & + ftg_read_double_3d, & + ftg_read_double_4d END INTERFACE INTERFACE ftg_allocate - MODULE PROCEDURE & - ftg_allocate_pointer_logical_0d, & - ftg_allocate_pointer_logical_1d, & - ftg_allocate_pointer_logical_2d, & - ftg_allocate_pointer_logical_3d, & - ftg_allocate_pointer_logical_4d, & - ftg_allocate_pointer_bool_0d, & - ftg_allocate_pointer_bool_1d, & - ftg_allocate_pointer_bool_2d, & - ftg_allocate_pointer_bool_3d, & - ftg_allocate_pointer_bool_4d, & - ftg_allocate_pointer_int_0d, & - ftg_allocate_pointer_int_1d, & - ftg_allocate_pointer_int_2d, & - ftg_allocate_pointer_int_3d, & - ftg_allocate_pointer_int_4d, & - ftg_allocate_pointer_long_0d, & - ftg_allocate_pointer_long_1d, & - ftg_allocate_pointer_long_2d, & - ftg_allocate_pointer_long_3d, & - ftg_allocate_pointer_long_4d, & - ftg_allocate_pointer_float_0d, & - ftg_allocate_pointer_float_1d, & - ftg_allocate_pointer_float_2d, & - ftg_allocate_pointer_float_3d, & - ftg_allocate_pointer_float_4d, & - ftg_allocate_pointer_double_0d, & - ftg_allocate_pointer_double_1d, & - ftg_allocate_pointer_double_2d, & - ftg_allocate_pointer_double_3d, & - ftg_allocate_pointer_double_4d, & - ftg_allocate_allocatable_logical_0d, & - ftg_allocate_allocatable_logical_1d, & - ftg_allocate_allocatable_logical_2d, & - ftg_allocate_allocatable_logical_3d, & - ftg_allocate_allocatable_logical_4d, & - ftg_allocate_allocatable_bool_0d, & - ftg_allocate_allocatable_bool_1d, & - ftg_allocate_allocatable_bool_2d, & - ftg_allocate_allocatable_bool_3d, & - ftg_allocate_allocatable_bool_4d, & - ftg_allocate_allocatable_int_0d, & - ftg_allocate_allocatable_int_1d, & - ftg_allocate_allocatable_int_2d, & - ftg_allocate_allocatable_int_3d, & - ftg_allocate_allocatable_int_4d, & - ftg_allocate_allocatable_long_0d, & - ftg_allocate_allocatable_long_1d, & - ftg_allocate_allocatable_long_2d, & - ftg_allocate_allocatable_long_3d, & - ftg_allocate_allocatable_long_4d, & - ftg_allocate_allocatable_float_0d, & - ftg_allocate_allocatable_float_1d, & - ftg_allocate_allocatable_float_2d, & - ftg_allocate_allocatable_float_3d, & - ftg_allocate_allocatable_float_4d, & - ftg_allocate_allocatable_double_0d, & - ftg_allocate_allocatable_double_1d, & - ftg_allocate_allocatable_double_2d, & - ftg_allocate_allocatable_double_3d, & - ftg_allocate_allocatable_double_4d + MODULE PROCEDURE & + ftg_allocate_pointer_logical_0d, & + ftg_allocate_pointer_logical_1d, & + ftg_allocate_pointer_logical_2d, & + ftg_allocate_pointer_logical_3d, & + ftg_allocate_pointer_logical_4d, & + ftg_allocate_pointer_bool_0d, & + ftg_allocate_pointer_bool_1d, & + ftg_allocate_pointer_bool_2d, & + ftg_allocate_pointer_bool_3d, & + ftg_allocate_pointer_bool_4d, & + ftg_allocate_pointer_int_0d, & + ftg_allocate_pointer_int_1d, & + ftg_allocate_pointer_int_2d, & + ftg_allocate_pointer_int_3d, & + ftg_allocate_pointer_int_4d, & + ftg_allocate_pointer_long_0d, & + ftg_allocate_pointer_long_1d, & + ftg_allocate_pointer_long_2d, & + ftg_allocate_pointer_long_3d, & + ftg_allocate_pointer_long_4d, & + ftg_allocate_pointer_float_0d, & + ftg_allocate_pointer_float_1d, & + ftg_allocate_pointer_float_2d, & + ftg_allocate_pointer_float_3d, & + ftg_allocate_pointer_float_4d, & + ftg_allocate_pointer_double_0d, & + ftg_allocate_pointer_double_1d, & + ftg_allocate_pointer_double_2d, & + ftg_allocate_pointer_double_3d, & + ftg_allocate_pointer_double_4d, & + ftg_allocate_allocatable_logical_0d, & + ftg_allocate_allocatable_logical_1d, & + ftg_allocate_allocatable_logical_2d, & + ftg_allocate_allocatable_logical_3d, & + ftg_allocate_allocatable_logical_4d, & + ftg_allocate_allocatable_bool_0d, & + ftg_allocate_allocatable_bool_1d, & + ftg_allocate_allocatable_bool_2d, & + ftg_allocate_allocatable_bool_3d, & + ftg_allocate_allocatable_bool_4d, & + ftg_allocate_allocatable_int_0d, & + ftg_allocate_allocatable_int_1d, & + ftg_allocate_allocatable_int_2d, & + ftg_allocate_allocatable_int_3d, & + ftg_allocate_allocatable_int_4d, & + ftg_allocate_allocatable_long_0d, & + ftg_allocate_allocatable_long_1d, & + ftg_allocate_allocatable_long_2d, & + ftg_allocate_allocatable_long_3d, & + ftg_allocate_allocatable_long_4d, & + ftg_allocate_allocatable_float_0d, & + ftg_allocate_allocatable_float_1d, & + ftg_allocate_allocatable_float_2d, & + ftg_allocate_allocatable_float_3d, & + ftg_allocate_allocatable_float_4d, & + ftg_allocate_allocatable_double_0d, & + ftg_allocate_allocatable_double_1d, & + ftg_allocate_allocatable_double_2d, & + ftg_allocate_allocatable_double_3d, & + ftg_allocate_allocatable_double_4d END INTERFACE ftg_allocate INTERFACE ftg_allocate_and_read - MODULE PROCEDURE & - ftg_allocate_and_read_pointer_logical_0d, & - ftg_allocate_and_read_pointer_logical_1d, & - ftg_allocate_and_read_pointer_logical_2d, & - ftg_allocate_and_read_pointer_logical_3d, & - ftg_allocate_and_read_pointer_logical_4d, & - ftg_allocate_and_read_pointer_bool_0d, & - ftg_allocate_and_read_pointer_bool_1d, & - ftg_allocate_and_read_pointer_bool_2d, & - ftg_allocate_and_read_pointer_bool_3d, & - ftg_allocate_and_read_pointer_bool_4d, & - ftg_allocate_and_read_pointer_int_0d, & - ftg_allocate_and_read_pointer_int_1d, & - ftg_allocate_and_read_pointer_int_2d, & - ftg_allocate_and_read_pointer_int_3d, & - ftg_allocate_and_read_pointer_int_4d, & - ftg_allocate_and_read_pointer_long_0d, & - ftg_allocate_and_read_pointer_long_1d, & - ftg_allocate_and_read_pointer_long_2d, & - ftg_allocate_and_read_pointer_long_3d, & - ftg_allocate_and_read_pointer_long_4d, & - ftg_allocate_and_read_pointer_float_0d, & - ftg_allocate_and_read_pointer_float_1d, & - ftg_allocate_and_read_pointer_float_2d, & - ftg_allocate_and_read_pointer_float_3d, & - ftg_allocate_and_read_pointer_float_4d, & - ftg_allocate_and_read_pointer_double_0d, & - ftg_allocate_and_read_pointer_double_1d, & - ftg_allocate_and_read_pointer_double_2d, & - ftg_allocate_and_read_pointer_double_3d, & - ftg_allocate_and_read_pointer_double_4d, & - ftg_allocate_and_read_allocatable_logical_0d, & - ftg_allocate_and_read_allocatable_logical_1d, & - ftg_allocate_and_read_allocatable_logical_2d, & - ftg_allocate_and_read_allocatable_logical_3d, & - ftg_allocate_and_read_allocatable_logical_4d, & - ftg_allocate_and_read_allocatable_bool_0d, & - ftg_allocate_and_read_allocatable_bool_1d, & - ftg_allocate_and_read_allocatable_bool_2d, & - ftg_allocate_and_read_allocatable_bool_3d, & - ftg_allocate_and_read_allocatable_bool_4d, & - ftg_allocate_and_read_allocatable_int_0d, & - ftg_allocate_and_read_allocatable_int_1d, & - ftg_allocate_and_read_allocatable_int_2d, & - ftg_allocate_and_read_allocatable_int_3d, & - ftg_allocate_and_read_allocatable_int_4d, & - ftg_allocate_and_read_allocatable_long_0d, & - ftg_allocate_and_read_allocatable_long_1d, & - ftg_allocate_and_read_allocatable_long_2d, & - ftg_allocate_and_read_allocatable_long_3d, & - ftg_allocate_and_read_allocatable_long_4d, & - ftg_allocate_and_read_allocatable_float_0d, & - ftg_allocate_and_read_allocatable_float_1d, & - ftg_allocate_and_read_allocatable_float_2d, & - ftg_allocate_and_read_allocatable_float_3d, & - ftg_allocate_and_read_allocatable_float_4d, & - ftg_allocate_and_read_allocatable_double_0d, & - ftg_allocate_and_read_allocatable_double_1d, & - ftg_allocate_and_read_allocatable_double_2d, & - ftg_allocate_and_read_allocatable_double_3d, & - ftg_allocate_and_read_allocatable_double_4d + MODULE PROCEDURE & + ftg_allocate_and_read_pointer_logical_0d, & + ftg_allocate_and_read_pointer_logical_1d, & + ftg_allocate_and_read_pointer_logical_2d, & + ftg_allocate_and_read_pointer_logical_3d, & + ftg_allocate_and_read_pointer_logical_4d, & + ftg_allocate_and_read_pointer_bool_0d, & + ftg_allocate_and_read_pointer_bool_1d, & + ftg_allocate_and_read_pointer_bool_2d, & + ftg_allocate_and_read_pointer_bool_3d, & + ftg_allocate_and_read_pointer_bool_4d, & + ftg_allocate_and_read_pointer_int_0d, & + ftg_allocate_and_read_pointer_int_1d, & + ftg_allocate_and_read_pointer_int_2d, & + ftg_allocate_and_read_pointer_int_3d, & + ftg_allocate_and_read_pointer_int_4d, & + ftg_allocate_and_read_pointer_long_0d, & + ftg_allocate_and_read_pointer_long_1d, & + ftg_allocate_and_read_pointer_long_2d, & + ftg_allocate_and_read_pointer_long_3d, & + ftg_allocate_and_read_pointer_long_4d, & + ftg_allocate_and_read_pointer_float_0d, & + ftg_allocate_and_read_pointer_float_1d, & + ftg_allocate_and_read_pointer_float_2d, & + ftg_allocate_and_read_pointer_float_3d, & + ftg_allocate_and_read_pointer_float_4d, & + ftg_allocate_and_read_pointer_double_0d, & + ftg_allocate_and_read_pointer_double_1d, & + ftg_allocate_and_read_pointer_double_2d, & + ftg_allocate_and_read_pointer_double_3d, & + ftg_allocate_and_read_pointer_double_4d, & + ftg_allocate_and_read_allocatable_logical_0d, & + ftg_allocate_and_read_allocatable_logical_1d, & + ftg_allocate_and_read_allocatable_logical_2d, & + ftg_allocate_and_read_allocatable_logical_3d, & + ftg_allocate_and_read_allocatable_logical_4d, & + ftg_allocate_and_read_allocatable_bool_0d, & + ftg_allocate_and_read_allocatable_bool_1d, & + ftg_allocate_and_read_allocatable_bool_2d, & + ftg_allocate_and_read_allocatable_bool_3d, & + ftg_allocate_and_read_allocatable_bool_4d, & + ftg_allocate_and_read_allocatable_int_0d, & + ftg_allocate_and_read_allocatable_int_1d, & + ftg_allocate_and_read_allocatable_int_2d, & + ftg_allocate_and_read_allocatable_int_3d, & + ftg_allocate_and_read_allocatable_int_4d, & + ftg_allocate_and_read_allocatable_long_0d, & + ftg_allocate_and_read_allocatable_long_1d, & + ftg_allocate_and_read_allocatable_long_2d, & + ftg_allocate_and_read_allocatable_long_3d, & + ftg_allocate_and_read_allocatable_long_4d, & + ftg_allocate_and_read_allocatable_float_0d, & + ftg_allocate_and_read_allocatable_float_1d, & + ftg_allocate_and_read_allocatable_float_2d, & + ftg_allocate_and_read_allocatable_float_3d, & + ftg_allocate_and_read_allocatable_float_4d, & + ftg_allocate_and_read_allocatable_double_0d, & + ftg_allocate_and_read_allocatable_double_1d, & + ftg_allocate_and_read_allocatable_double_2d, & + ftg_allocate_and_read_allocatable_double_3d, & + ftg_allocate_and_read_allocatable_double_4d END INTERFACE ftg_allocate_and_read LOGICAL :: ignore_bullshit = .TRUE. @@ -410,77 +449,222 @@ END FUNCTION ftg_get_bounds !============================================================================= SUBROUTINE ftg_add_serializer_metainfo_b(key, val) - CHARACTER(LEN=*) :: key - LOGICAL, VALUE :: val + CHARACTER(LEN=*), INTENT(IN) :: key + LOGICAL, INTENT(IN) :: val CALL fs_add_serializer_metainfo(serializer, key, val) END SUBROUTINE ftg_add_serializer_metainfo_b - SUBROUTINE ftg_add_serializer_metainfo_i(key, val) - CHARACTER(LEN=*) :: key - INTEGER(C_INT) :: val + CHARACTER(LEN=*), INTENT(IN) :: key + INTEGER(KIND=C_INT), INTENT(IN) :: val CALL fs_add_serializer_metainfo(serializer, key, val) END SUBROUTINE ftg_add_serializer_metainfo_i +SUBROUTINE ftg_add_serializer_metainfo_l(key, val) + CHARACTER(LEN=*), INTENT(IN) :: key + INTEGER(KIND=C_LONG), INTENT(IN) :: val + CALL fs_add_serializer_metainfo(serializer, key, val) +END SUBROUTINE ftg_add_serializer_metainfo_l SUBROUTINE ftg_add_serializer_metainfo_f(key, val) - CHARACTER(LEN=*) :: key - REAL(KIND=C_FLOAT) :: val + CHARACTER(LEN=*), INTENT(IN) :: key + REAL(KIND=C_FLOAT), INTENT(IN) :: val CALL fs_add_serializer_metainfo(serializer, key, val) END SUBROUTINE ftg_add_serializer_metainfo_f - SUBROUTINE ftg_add_serializer_metainfo_d(key, val) - CHARACTER(LEN=*) :: key - REAL(KIND=C_DOUBLE) :: val + CHARACTER(LEN=*), INTENT(IN) :: key + REAL(KIND=C_DOUBLE), INTENT(IN) :: val CALL fs_add_serializer_metainfo(serializer, key, val) END SUBROUTINE ftg_add_serializer_metainfo_d - SUBROUTINE ftg_add_serializer_metainfo_s(key, val) - CHARACTER(LEN=*) :: key, val + CHARACTER(LEN=*), INTENT(IN) :: key + CHARACTER(LEN=*), INTENT(IN) :: val CALL fs_add_serializer_metainfo(serializer, key, val) END SUBROUTINE ftg_add_serializer_metainfo_s !============================================================================= !============================================================================= +SUBROUTINE ftg_get_serializer_metainfo_b(key, val) + CHARACTER(LEN=*), INTENT(IN) :: key + LOGICAL, INTENT(OUT) :: val + CALL fs_get_serializer_metainfo(serializer, key, val) +END SUBROUTINE ftg_get_serializer_metainfo_b + +SUBROUTINE ftg_get_serializer_metainfo_i(key, val) + CHARACTER(LEN=*), INTENT(IN) :: key + INTEGER(KIND=C_INT), INTENT(OUT) :: val + CALL fs_get_serializer_metainfo(serializer, key, val) +END SUBROUTINE ftg_get_serializer_metainfo_i + +SUBROUTINE ftg_get_serializer_metainfo_l(key, val) + CHARACTER(LEN=*), INTENT(IN) :: key + INTEGER(KIND=C_LONG), INTENT(OUT) :: val + CALL fs_get_serializer_metainfo(serializer, key, val) +END SUBROUTINE ftg_get_serializer_metainfo_l + +SUBROUTINE ftg_get_serializer_metainfo_f(key, val) + CHARACTER(LEN=*), INTENT(IN) :: key + REAL(KIND=C_FLOAT), INTENT(OUT) :: val + CALL fs_get_serializer_metainfo(serializer, key, val) +END SUBROUTINE ftg_get_serializer_metainfo_f + +SUBROUTINE ftg_get_serializer_metainfo_d(key, val) + CHARACTER(LEN=*), INTENT(IN) :: key + REAL(KIND=C_DOUBLE), INTENT(OUT) :: val + CALL fs_get_serializer_metainfo(serializer, key, val) +END SUBROUTINE ftg_get_serializer_metainfo_d + + +!============================================================================= +!============================================================================= + +SUBROUTINE ftg_add_field_metainfo_b(fieldname, key, val) + CHARACTER(LEN=*), INTENT(IN) :: fieldname, key + LOGICAL, INTENT(IN) :: val + CALL fs_add_field_metainfo(serializer, fieldname, key, val) +END SUBROUTINE ftg_add_field_metainfo_b + +SUBROUTINE ftg_add_field_metainfo_i(fieldname, key, val) + CHARACTER(LEN=*), INTENT(IN) :: fieldname, key + INTEGER(KIND=C_INT), INTENT(IN) :: val + CALL fs_add_field_metainfo(serializer, fieldname, key, val) +END SUBROUTINE ftg_add_field_metainfo_i + +SUBROUTINE ftg_add_field_metainfo_l(fieldname, key, val) + CHARACTER(LEN=*), INTENT(IN) :: fieldname, key + INTEGER(KIND=C_LONG), INTENT(IN) :: val + CALL fs_add_field_metainfo(serializer, fieldname, key, val) +END SUBROUTINE ftg_add_field_metainfo_l + +SUBROUTINE ftg_add_field_metainfo_f(fieldname, key, val) + CHARACTER(LEN=*), INTENT(IN) :: fieldname, key + REAL(KIND=C_FLOAT), INTENT(IN) :: val + CALL fs_add_field_metainfo(serializer, fieldname, key, val) +END SUBROUTINE ftg_add_field_metainfo_f + +SUBROUTINE ftg_add_field_metainfo_d(fieldname, key, val) + CHARACTER(LEN=*), INTENT(IN) :: fieldname, key + REAL(KIND=C_DOUBLE), INTENT(IN) :: val + CALL fs_add_field_metainfo(serializer, fieldname, key, val) +END SUBROUTINE ftg_add_field_metainfo_d + +SUBROUTINE ftg_add_field_metainfo_s(fieldname, key, val) + CHARACTER(LEN=*), INTENT(IN) :: fieldname, key + CHARACTER(LEN=*), INTENT(IN) :: val + CALL fs_add_field_metainfo(serializer, fieldname, key, val) +END SUBROUTINE ftg_add_field_metainfo_s + +!============================================================================= +!============================================================================= + +SUBROUTINE ftg_get_field_metainfo_b(fieldname, key, val) + CHARACTER(LEN=*), INTENT(IN) :: fieldname, key + LOGICAL, INTENT(OUT) :: val + CALL fs_get_field_metainfo(serializer, fieldname, key, val) +END SUBROUTINE ftg_get_field_metainfo_b + +SUBROUTINE ftg_get_field_metainfo_i(fieldname, key, val) + CHARACTER(LEN=*), INTENT(IN) :: fieldname, key + INTEGER(KIND=C_INT), INTENT(OUT) :: val + CALL fs_get_field_metainfo(serializer, fieldname, key, val) +END SUBROUTINE ftg_get_field_metainfo_i + +SUBROUTINE ftg_get_field_metainfo_l(fieldname, key, val) + CHARACTER(LEN=*), INTENT(IN) :: fieldname, key + INTEGER(KIND=C_LONG), INTENT(OUT) :: val + CALL fs_get_field_metainfo(serializer, fieldname, key, val) +END SUBROUTINE ftg_get_field_metainfo_l + +SUBROUTINE ftg_get_field_metainfo_f(fieldname, key, val) + CHARACTER(LEN=*), INTENT(IN) :: fieldname, key + REAL(KIND=C_FLOAT), INTENT(OUT) :: val + CALL fs_get_field_metainfo(serializer, fieldname, key, val) +END SUBROUTINE ftg_get_field_metainfo_f + +SUBROUTINE ftg_get_field_metainfo_d(fieldname, key, val) + CHARACTER(LEN=*), INTENT(IN) :: fieldname, key + REAL(KIND=C_DOUBLE), INTENT(OUT) :: val + CALL fs_get_field_metainfo(serializer, fieldname, key, val) +END SUBROUTINE ftg_get_field_metainfo_d + +!============================================================================= +!============================================================================= + SUBROUTINE ftg_add_savepoint_metainfo_b(key, val) - CHARACTER(LEN=*) :: key - LOGICAL, VALUE :: val + CHARACTER(LEN=*), INTENT(IN) :: key + LOGICAL, INTENT(IN) :: val CALL fs_add_savepoint_metainfo(savepoint, key, val) END SUBROUTINE ftg_add_savepoint_metainfo_b - SUBROUTINE ftg_add_savepoint_metainfo_i(key, val) - CHARACTER(LEN=*) :: key - INTEGER(C_INT) :: val + CHARACTER(LEN=*), INTENT(IN) :: key + INTEGER(KIND=C_INT), INTENT(IN) :: val CALL fs_add_savepoint_metainfo(savepoint, key, val) END SUBROUTINE ftg_add_savepoint_metainfo_i +SUBROUTINE ftg_add_savepoint_metainfo_l(key, val) + CHARACTER(LEN=*), INTENT(IN) :: key + INTEGER(KIND=C_LONG), INTENT(IN) :: val + CALL fs_add_savepoint_metainfo(savepoint, key, val) +END SUBROUTINE ftg_add_savepoint_metainfo_l SUBROUTINE ftg_add_savepoint_metainfo_f(key, val) - CHARACTER(LEN=*) :: key - REAL(KIND=C_FLOAT) :: val + CHARACTER(LEN=*), INTENT(IN) :: key + REAL(KIND=C_FLOAT), INTENT(IN) :: val CALL fs_add_savepoint_metainfo(savepoint, key, val) END SUBROUTINE ftg_add_savepoint_metainfo_f - SUBROUTINE ftg_add_savepoint_metainfo_d(key, val) - CHARACTER(LEN=*) :: key - REAL(KIND=C_DOUBLE) :: val + CHARACTER(LEN=*), INTENT(IN) :: key + REAL(KIND=C_DOUBLE), INTENT(IN) :: val CALL fs_add_savepoint_metainfo(savepoint, key, val) END SUBROUTINE ftg_add_savepoint_metainfo_d - SUBROUTINE ftg_add_savepoint_metainfo_s(key, val) - CHARACTER(LEN=*) :: key, val + CHARACTER(LEN=*), INTENT(IN) :: key + CHARACTER(LEN=*), INTENT(IN) :: val CALL fs_add_savepoint_metainfo(savepoint, key, val) END SUBROUTINE ftg_add_savepoint_metainfo_s !============================================================================= !============================================================================= +SUBROUTINE ftg_get_savepoint_metainfo_b(key, val) + CHARACTER(LEN=*), INTENT(IN) :: key + LOGICAL, INTENT(OUT) :: val + CALL fs_get_savepoint_metainfo(savepoint, key, val) +END SUBROUTINE ftg_get_savepoint_metainfo_b + +SUBROUTINE ftg_get_savepoint_metainfo_i(key, val) + CHARACTER(LEN=*), INTENT(IN) :: key + INTEGER(KIND=C_INT), INTENT(OUT) :: val + CALL fs_get_savepoint_metainfo(savepoint, key, val) +END SUBROUTINE ftg_get_savepoint_metainfo_i + +SUBROUTINE ftg_get_savepoint_metainfo_l(key, val) + CHARACTER(LEN=*), INTENT(IN) :: key + INTEGER(KIND=C_LONG), INTENT(OUT) :: val + CALL fs_get_savepoint_metainfo(savepoint, key, val) +END SUBROUTINE ftg_get_savepoint_metainfo_l + +SUBROUTINE ftg_get_savepoint_metainfo_f(key, val) + CHARACTER(LEN=*), INTENT(IN) :: key + REAL(KIND=C_FLOAT), INTENT(OUT) :: val + CALL fs_get_savepoint_metainfo(savepoint, key, val) +END SUBROUTINE ftg_get_savepoint_metainfo_f + +SUBROUTINE ftg_get_savepoint_metainfo_d(key, val) + CHARACTER(LEN=*), INTENT(IN) :: key + REAL(KIND=C_DOUBLE), INTENT(OUT) :: val + CALL fs_get_savepoint_metainfo(savepoint, key, val) +END SUBROUTINE ftg_get_savepoint_metainfo_d + +!============================================================================= +!============================================================================= + SUBROUTINE ftg_register_only(fieldname, typename, lbounds, ubounds, cptr) CHARACTER(LEN=*), INTENT(IN) :: fieldname CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: typename @@ -1898,7 +2082,7 @@ SUBROUTINE ftg_allocate_pointer_logical_2d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4))) ELSE NULLIFY(field) END IF @@ -1913,7 +2097,7 @@ SUBROUTINE ftg_allocate_pointer_logical_3d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4), bounds(5):bounds(6))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4),bounds(5):bounds(6))) ELSE NULLIFY(field) END IF @@ -1928,7 +2112,7 @@ SUBROUTINE ftg_allocate_pointer_logical_4d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4), bounds(5):bounds(6), bounds(7):bounds(8))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4),bounds(5):bounds(6),bounds(7):bounds(8))) ELSE NULLIFY(field) END IF @@ -1973,7 +2157,7 @@ SUBROUTINE ftg_allocate_pointer_bool_2d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4))) ELSE NULLIFY(field) END IF @@ -1988,7 +2172,7 @@ SUBROUTINE ftg_allocate_pointer_bool_3d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4), bounds(5):bounds(6))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4),bounds(5):bounds(6))) ELSE NULLIFY(field) END IF @@ -2003,7 +2187,7 @@ SUBROUTINE ftg_allocate_pointer_bool_4d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4), bounds(5):bounds(6), bounds(7):bounds(8))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4),bounds(5):bounds(6),bounds(7):bounds(8))) ELSE NULLIFY(field) END IF @@ -2048,7 +2232,7 @@ SUBROUTINE ftg_allocate_pointer_int_2d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4))) ELSE NULLIFY(field) END IF @@ -2063,7 +2247,7 @@ SUBROUTINE ftg_allocate_pointer_int_3d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4), bounds(5):bounds(6))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4),bounds(5):bounds(6))) ELSE NULLIFY(field) END IF @@ -2078,7 +2262,7 @@ SUBROUTINE ftg_allocate_pointer_int_4d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4), bounds(5):bounds(6), bounds(7):bounds(8))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4),bounds(5):bounds(6),bounds(7):bounds(8))) ELSE NULLIFY(field) END IF @@ -2123,7 +2307,7 @@ SUBROUTINE ftg_allocate_pointer_long_2d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4))) ELSE NULLIFY(field) END IF @@ -2138,7 +2322,7 @@ SUBROUTINE ftg_allocate_pointer_long_3d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4), bounds(5):bounds(6))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4),bounds(5):bounds(6))) ELSE NULLIFY(field) END IF @@ -2153,7 +2337,7 @@ SUBROUTINE ftg_allocate_pointer_long_4d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4), bounds(5):bounds(6), bounds(7):bounds(8))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4),bounds(5):bounds(6),bounds(7):bounds(8))) ELSE NULLIFY(field) END IF @@ -2198,7 +2382,7 @@ SUBROUTINE ftg_allocate_pointer_float_2d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4))) ELSE NULLIFY(field) END IF @@ -2213,7 +2397,7 @@ SUBROUTINE ftg_allocate_pointer_float_3d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4), bounds(5):bounds(6))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4),bounds(5):bounds(6))) ELSE NULLIFY(field) END IF @@ -2228,7 +2412,7 @@ SUBROUTINE ftg_allocate_pointer_float_4d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4), bounds(5):bounds(6), bounds(7):bounds(8))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4),bounds(5):bounds(6),bounds(7):bounds(8))) ELSE NULLIFY(field) END IF @@ -2273,7 +2457,7 @@ SUBROUTINE ftg_allocate_pointer_double_2d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4))) ELSE NULLIFY(field) END IF @@ -2288,7 +2472,7 @@ SUBROUTINE ftg_allocate_pointer_double_3d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4), bounds(5):bounds(6))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4),bounds(5):bounds(6))) ELSE NULLIFY(field) END IF @@ -2303,7 +2487,7 @@ SUBROUTINE ftg_allocate_pointer_double_4d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4), bounds(5):bounds(6), bounds(7):bounds(8))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4),bounds(5):bounds(6),bounds(7):bounds(8))) ELSE NULLIFY(field) END IF @@ -2347,7 +2531,7 @@ SUBROUTINE ftg_allocate_allocatable_logical_2d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4))) END IF END SUBROUTINE ftg_allocate_allocatable_logical_2d @@ -2360,7 +2544,7 @@ SUBROUTINE ftg_allocate_allocatable_logical_3d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4), bounds(5):bounds(6))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4),bounds(5):bounds(6))) END IF END SUBROUTINE ftg_allocate_allocatable_logical_3d @@ -2373,7 +2557,7 @@ SUBROUTINE ftg_allocate_allocatable_logical_4d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4), bounds(5):bounds(6), bounds(7):bounds(8))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4),bounds(5):bounds(6),bounds(7):bounds(8))) END IF END SUBROUTINE ftg_allocate_allocatable_logical_4d @@ -2412,7 +2596,7 @@ SUBROUTINE ftg_allocate_allocatable_bool_2d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4))) END IF END SUBROUTINE ftg_allocate_allocatable_bool_2d @@ -2425,7 +2609,7 @@ SUBROUTINE ftg_allocate_allocatable_bool_3d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4), bounds(5):bounds(6))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4),bounds(5):bounds(6))) END IF END SUBROUTINE ftg_allocate_allocatable_bool_3d @@ -2438,7 +2622,7 @@ SUBROUTINE ftg_allocate_allocatable_bool_4d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4), bounds(5):bounds(6), bounds(7):bounds(8))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4),bounds(5):bounds(6),bounds(7):bounds(8))) END IF END SUBROUTINE ftg_allocate_allocatable_bool_4d @@ -2477,7 +2661,7 @@ SUBROUTINE ftg_allocate_allocatable_int_2d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4))) END IF END SUBROUTINE ftg_allocate_allocatable_int_2d @@ -2490,7 +2674,7 @@ SUBROUTINE ftg_allocate_allocatable_int_3d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4), bounds(5):bounds(6))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4),bounds(5):bounds(6))) END IF END SUBROUTINE ftg_allocate_allocatable_int_3d @@ -2503,7 +2687,7 @@ SUBROUTINE ftg_allocate_allocatable_int_4d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4), bounds(5):bounds(6), bounds(7):bounds(8))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4),bounds(5):bounds(6),bounds(7):bounds(8))) END IF END SUBROUTINE ftg_allocate_allocatable_int_4d @@ -2542,7 +2726,7 @@ SUBROUTINE ftg_allocate_allocatable_long_2d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4))) END IF END SUBROUTINE ftg_allocate_allocatable_long_2d @@ -2555,7 +2739,7 @@ SUBROUTINE ftg_allocate_allocatable_long_3d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4), bounds(5):bounds(6))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4),bounds(5):bounds(6))) END IF END SUBROUTINE ftg_allocate_allocatable_long_3d @@ -2568,7 +2752,7 @@ SUBROUTINE ftg_allocate_allocatable_long_4d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4), bounds(5):bounds(6), bounds(7):bounds(8))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4),bounds(5):bounds(6),bounds(7):bounds(8))) END IF END SUBROUTINE ftg_allocate_allocatable_long_4d @@ -2607,7 +2791,7 @@ SUBROUTINE ftg_allocate_allocatable_float_2d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4))) END IF END SUBROUTINE ftg_allocate_allocatable_float_2d @@ -2620,7 +2804,7 @@ SUBROUTINE ftg_allocate_allocatable_float_3d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4), bounds(5):bounds(6))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4),bounds(5):bounds(6))) END IF END SUBROUTINE ftg_allocate_allocatable_float_3d @@ -2633,7 +2817,7 @@ SUBROUTINE ftg_allocate_allocatable_float_4d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4), bounds(5):bounds(6), bounds(7):bounds(8))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4),bounds(5):bounds(6),bounds(7):bounds(8))) END IF END SUBROUTINE ftg_allocate_allocatable_float_4d @@ -2672,7 +2856,7 @@ SUBROUTINE ftg_allocate_allocatable_double_2d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4))) END IF END SUBROUTINE ftg_allocate_allocatable_double_2d @@ -2685,7 +2869,7 @@ SUBROUTINE ftg_allocate_allocatable_double_3d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4), bounds(5):bounds(6))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4),bounds(5):bounds(6))) END IF END SUBROUTINE ftg_allocate_allocatable_double_3d @@ -2698,7 +2882,7 @@ SUBROUTINE ftg_allocate_allocatable_double_4d(fieldname, field) IF (ftg_field_exists(fieldname)) THEN bounds = ftg_get_bounds(fieldname) - ALLOCATE(field(bounds(1):bounds(2), bounds(3):bounds(4), bounds(5):bounds(6), bounds(7):bounds(8))) + ALLOCATE(field(bounds(1):bounds(2),bounds(3):bounds(4),bounds(5):bounds(6),bounds(7):bounds(8))) END IF END SUBROUTINE ftg_allocate_allocatable_double_4d