diff --git a/src/libmtime.f90 b/src/libmtime.f90
index 1abf9ca478a91d2c3f8f0e4740f6df02962065c3..614f774bfb0da8eafd933f635ff9a333daae86ab 100644
--- a/src/libmtime.f90
+++ b/src/libmtime.f90
@@ -1190,7 +1190,7 @@ contains
     character(len=*), intent(in) :: sign
     integer(c_int), intent(in) :: year, month, day, hour, minute, second, ms
     type(c_ptr) :: c_pointer
-    character(c_char) ::c_sign
+    character(kind=c_char) ::c_sign
     integer, optional:: errno
     if (present(errno)) errno = 0
     c_sign = sign(1:1)
@@ -1206,7 +1206,7 @@ contains
     integer(c_int64_t), intent(in) :: year
     integer(c_int), intent(in) :: month, day, hour, minute, second, ms
     type(c_ptr) :: c_pointer
-    character(c_char) ::c_sign
+    character(kind=c_char) ::c_sign
     integer, optional:: errno
     if (present(errno)) errno = 0
     c_sign = sign(1:1)
diff --git a/src/mtime_c_bindings.f90 b/src/mtime_c_bindings.f90
index 487822f99da1e07f1defd99c7744a703bc8b419e..420054e0adbc2db1871de27f85f60eaa490bdf61 100644
--- a/src/mtime_c_bindings.f90
+++ b/src/mtime_c_bindings.f90
@@ -47,7 +47,7 @@ module mtime_c_bindings
   end type julianday
   !
   type, bind(c) :: juliandelta
-    character(c_char)  :: sign
+    character(kind=c_char)  :: sign
     integer(c_int64_t) :: day
     integer(c_int64_t) :: ms
   end type juliandelta
@@ -72,7 +72,7 @@ module mtime_c_bindings
   !
   type, bind(c) :: timedelta
     integer(c_int) :: flag_std_form
-    character(c_char) :: sign
+    character(kind=c_char) :: sign
     integer(c_int64_t) :: year
     integer(c_int) :: month
     integer(c_int) :: day
@@ -107,7 +107,7 @@ module mtime_c_bindings
     function my_calendartostring(calendar) result(c_pointer) bind(c, name='calendarToString') !TESTED-OK
       import :: c_char, c_ptr
       type(c_ptr) :: c_pointer
-      character(c_char), dimension(*) :: calendar
+      character(kind=c_char), dimension(*) :: calendar
     end function my_calendartostring
     !
   end interface
@@ -144,7 +144,7 @@ module mtime_c_bindings
       import :: c_ptr, c_char
       type(c_ptr) :: string_ptr
       type(c_ptr), value :: my_julianday
-      character(c_char), dimension(*) :: string
+      character(kind=c_char), dimension(*) :: string
     end function my_juliandaytostring
     !
   end interface
@@ -154,7 +154,7 @@ module mtime_c_bindings
     function my_newdatefromstring(string) result(c_pointer) bind(c, name='newDate')
       import :: c_char, c_ptr
       type(c_ptr) :: c_pointer
-      character(c_char), dimension(*) :: string
+      character(kind=c_char), dimension(*) :: string
     end function my_newdatefromstring
     !
     function my_newrawdate(year, month, day) result(c_pointer) bind(c, name='newRawDate')
@@ -185,15 +185,15 @@ module mtime_c_bindings
       import :: c_ptr, c_char
       type(c_ptr) :: string_ptr
       type(c_ptr), value :: my_date
-      character(c_char), dimension(*) :: string
+      character(kind=c_char), dimension(*) :: string
     end function my_datetostring
     !
     function my_datetoposixstring(my_date, string, fmtstr) result(string_ptr) bind(c, name='dateToPosixString')
       import :: c_ptr, c_char
       type(c_ptr) :: string_ptr
       type(c_ptr), value :: my_date
-      character(c_char), dimension(*) :: string
-      character(c_char), dimension(*) :: fmtstr
+      character(kind=c_char), dimension(*) :: string
+      character(kind=c_char), dimension(*) :: fmtstr
     end function my_datetoposixstring
     !
   end interface
@@ -203,7 +203,7 @@ module mtime_c_bindings
     function my_newtimefromstring(string) result(c_pointer) bind(c, name='newTime')
       import :: c_char, c_ptr
       type(c_ptr) :: c_pointer
-      character(c_char), dimension(*) :: string
+      character(kind=c_char), dimension(*) :: string
     end function my_newtimefromstring
     !
     function my_newrawtime(hour, minute, second, ms) result(c_pointer) bind(c, name='newRawTime')
@@ -233,15 +233,15 @@ module mtime_c_bindings
       import :: c_ptr, c_char
       type(c_ptr) :: string_ptr
       type(c_ptr), value :: my_time
-      character(c_char), dimension(*) :: string
+      character(kind=c_char), dimension(*) :: string
     end function my_timetostring
     !
     function my_timetoposixstring(my_time, string, fmtstr) result(string_ptr) bind(c, name='timeToPosixString')
       import :: c_ptr, c_char
       type(c_ptr) :: string_ptr
       type(c_ptr), value :: my_time
-      character(c_char), dimension(*) :: string
-      character(c_char), dimension(*) :: fmtstr
+      character(kind=c_char), dimension(*) :: string
+      character(kind=c_char), dimension(*) :: fmtstr
     end function my_timetoposixstring
     !
   end interface
@@ -251,7 +251,7 @@ module mtime_c_bindings
     function my_newdatetime(string) result(c_pointer) bind(c, name='newDateTime')
       import :: c_ptr, c_char
       type(c_ptr) :: c_pointer
-      character(c_char), dimension(*) :: string
+      character(kind=c_char), dimension(*) :: string
     end function my_newdatetime
     !
     function my_newrawdatetime(year, month, day, hour, minute, second, ms) result(c_pointer) &
@@ -291,15 +291,15 @@ module mtime_c_bindings
       import :: c_ptr, c_char
       type(c_ptr) :: string_ptr
       type(c_ptr), value :: my_time
-      character(c_char), dimension(*) :: string
+      character(kind=c_char), dimension(*) :: string
     end function my_datetimetostring
     !
     function my_datetimetoposixstring(my_time, string, fmtstr) result(string_ptr) bind(c, name='datetimeToPosixString')
       import :: c_ptr, c_char
       type(c_ptr) :: string_ptr
       type(c_ptr), value :: my_time
-      character(c_char), dimension(*) :: string
-      character(c_char), dimension(*) :: fmtstr
+      character(kind=c_char), dimension(*) :: string
+      character(kind=c_char), dimension(*) :: fmtstr
     end function my_datetimetoposixstring
     !
     function my_getnoofdaysinmonthdatetime(dt) bind(c, name='getNoOfDaysInMonthDateTime')
@@ -351,14 +351,14 @@ module mtime_c_bindings
     function my_newtimedeltafromstring(string) result(c_pointer) bind(c, name='newTimeDelta')
       import :: c_char, c_ptr
       type(c_ptr)                     :: c_pointer
-      character(c_char), dimension(*) :: string
+      character(kind=c_char), dimension(*) :: string
     end function my_newtimedeltafromstring
     !
     function my_newrawtimedelta(sign, year, month, day, hour, minute, second, ms) result(c_pointer) &
          &             bind(c, name='newRawTimeDelta')
       import :: c_int64_t, c_char, c_int, c_ptr
       type(c_ptr) :: c_pointer
-      character(c_char), value :: sign
+      character(kind=c_char), value :: sign
       integer(c_int64_t), value :: year
       integer(c_int), value :: month, day, hour, minute, second, ms
     end function my_newrawtimedelta
@@ -412,7 +412,7 @@ module mtime_c_bindings
       import :: c_ptr, c_char
       type(c_ptr) :: string_ptr
       type(c_ptr), value :: td
-      character(c_char), dimension(*) :: tostring
+      character(kind=c_char), dimension(*) :: tostring
     end function my_timedeltatostring
     !
     function my_addtimedeltatodatetime(my_datetime, my_timedelta, ret_datetime) result(datetime_ptr) &
@@ -464,42 +464,42 @@ module mtime_c_bindings
       import :: c_ptr, c_int64_t, c_char
       type(c_ptr) :: string_ptr
       integer(c_int64_t), value :: ms
-      character(c_char), dimension(*) :: tostring
+      character(kind=c_char), dimension(*) :: tostring
     end function my_getptstringfromms
     !
     function my_getptstringfromsecondsint(s, tostring) result(string_ptr) bind(c, name='getPTStringFromSeconds')
       import :: c_ptr, c_int64_t, c_char
       type(c_ptr) :: string_ptr
       integer(c_int64_t), value :: s
-      character(c_char), dimension(*) :: tostring
+      character(kind=c_char), dimension(*) :: tostring
     end function my_getptstringfromsecondsint
     !
     function my_getptstringfromsecondsfloat(s, tostring) result(string_ptr) bind(c, name='getPTStringFromSecondsFloat')
       import :: c_ptr, c_float, c_char
       type(c_ptr) :: string_ptr
       real(c_float), value :: s
-      character(c_char), dimension(*) :: tostring
+      character(kind=c_char), dimension(*) :: tostring
     end function my_getptstringfromsecondsfloat
     !
     function my_getptstringfromsecondsdouble(s, tostring) result(string_ptr) bind(c, name='getPTStringFromSecondsDouble')
       import :: c_ptr, c_double, c_char
       type(c_ptr) :: string_ptr
       real(c_double), value :: s
-      character(c_char), dimension(*) :: tostring
+      character(kind=c_char), dimension(*) :: tostring
     end function my_getptstringfromsecondsdouble
     !
     function my_getptstringfromminutes(m, tostring) result(string_ptr) bind(c, name='getPTStringFromMinutes')
       import :: c_ptr, c_int64_t, c_char
       type(c_ptr) :: string_ptr
       integer(c_int64_t),value :: m
-      character(c_char), dimension(*) :: tostring
+      character(kind=c_char), dimension(*) :: tostring
     end function my_getptstringfromminutes
     !
     function my_getptstringfromhours(h, tostring) result(string_ptr) bind(c, name='getPTStringFromHours')
       import :: c_ptr, c_int64_t, c_char
       type(c_ptr) :: string_ptr
       integer(c_int64_t),value :: h
-      character(c_char), dimension(*) :: tostring
+      character(kind=c_char), dimension(*) :: tostring
     end function my_getptstringfromhours
     !
     function my_timedeltatojuliandelta(td,dt,jd) result(c_pointer) bind(c,name='timeDeltaToJulianDelta')
@@ -550,19 +550,19 @@ module mtime_c_bindings
          &              bind(c, name='newEvent')
       import :: c_char, c_ptr
       type(c_ptr) :: c_pointer
-      character(c_char), dimension(*) :: name
-      character(c_char), dimension(*) :: referenceDate
-      character(c_char), dimension(*) :: firstDate
-      character(c_char), dimension(*) :: lastDate
-      character(c_char), dimension(*) :: interval
-      character(c_char), dimension(*) :: offset
+      character(kind=c_char), dimension(*) :: name
+      character(kind=c_char), dimension(*) :: referenceDate
+      character(kind=c_char), dimension(*) :: firstDate
+      character(kind=c_char), dimension(*) :: lastDate
+      character(kind=c_char), dimension(*) :: interval
+      character(kind=c_char), dimension(*) :: offset
     end function my_newevent
     !
     function my_neweventwithdatatypes(name, referenceDate, firstdate, lastDate, interval, offset) &
          &                           result(c_pointer) bind(c, name='newEventWithDataType')
       import :: c_char, c_ptr
       type(c_ptr) :: c_pointer
-      character(c_char), dimension(*) :: name
+      character(kind=c_char), dimension(*) :: name
       type(c_ptr), value :: referenceDate
       type(c_ptr), value :: firstDate
       type(c_ptr), value :: lastDate
@@ -585,7 +585,7 @@ module mtime_c_bindings
       import :: c_ptr, c_char
       type(c_ptr) :: string_ptr
       type(c_ptr), value :: my_event
-      character(c_char), dimension(*) :: string
+      character(kind=c_char), dimension(*) :: string
     end function my_eventtostring
     !
     function my_isCurrentEventActive(my_event, my_datetime, plus_slack, minus_slack) &
@@ -637,7 +637,7 @@ module mtime_c_bindings
       import :: c_ptr, c_char
       type(c_ptr) :: c_pointer
       type(c_ptr), value :: my_event
-      character(c_char), dimension(*) :: string
+      character(kind=c_char), dimension(*) :: string
     end function my_geteventname
     !
     function my_getnexteventisfirst(my_event) result(ret) bind(c, name='getNextEventIsFirst')
@@ -689,7 +689,7 @@ module mtime_c_bindings
     function my_neweventgroup(name) result(c_pointer) bind(c, name='newEventGroup')
       import :: c_char, c_ptr
       type(c_ptr) :: c_pointer
-      character(c_char), dimension(*) :: name
+      character(kind=c_char), dimension(*) :: name
     end function my_neweventgroup
     !
     subroutine my_deallocateeventgroup(evgrp) bind(c,name='deallocateEventGroup')
@@ -707,7 +707,7 @@ module mtime_c_bindings
     function my_removeeventfromeventgroup(evname, evgrp) result(ret) bind(c, name='removeEventFromEventGroup')
       import :: c_bool, c_char, c_ptr
       logical(c_bool) :: ret
-      character(c_char), dimension(*) :: evname
+      character(kind=c_char), dimension(*) :: evname
       type(c_ptr), value :: evgrp
     end function my_removeeventfromeventgroup
     !
@@ -715,7 +715,7 @@ module mtime_c_bindings
       import :: c_ptr, c_char
       type(c_ptr) :: string_ptr
       type(c_ptr), value :: my_eventgroup
-      character(c_char), dimension(*) :: string
+      character(kind=c_char), dimension(*) :: string
     end function my_geteventgroupname
     !
   end interface
@@ -725,17 +725,17 @@ module mtime_c_bindings
     function my_getRepetitions(repetitionString) bind(c, name='getRepetitions')
       import :: c_int, c_char
       integer(c_int) :: my_getRepetitions
-      character(c_char), dimension(*) :: repetitionString
+      character(kind=c_char), dimension(*) :: repetitionString
     end function my_getRepetitions
     !
     subroutine my_splitRepetitionString(recurringTimeInterval, repetitor, start, end, duration) &
          bind(c, name='splitRepetitionString')
       import :: c_char
-      character(c_char), dimension(*) :: recurringTimeInterval
-      character(c_char), dimension(*) :: repetitor
-      character(c_char), dimension(*) :: start
-      character(c_char), dimension(*) :: end
-      character(c_char), dimension(*) :: duration
+      character(kind=c_char), dimension(*) :: recurringTimeInterval
+      character(kind=c_char), dimension(*) :: repetitor
+      character(kind=c_char), dimension(*) :: start
+      character(kind=c_char), dimension(*) :: end
+      character(kind=c_char), dimension(*) :: duration
     end subroutine my_splitRepetitionString
     !
   end interface
diff --git a/src/mtime_t_juliandelta.inc b/src/mtime_t_juliandelta.inc
index e09460d9cac0f807563dcbcb58ea790fb3c25a77..05b15b05880ac978046c69108d8e51d206947563 100644
--- a/src/mtime_t_juliandelta.inc
+++ b/src/mtime_t_juliandelta.inc
@@ -6,7 +6,7 @@
   !
   FUNCTION t_juliandelta_assign_raw(sign,day, ms)
     TYPE(t_juliandelta) :: t_juliandelta_assign_raw
-    CHARACTER(c_char),  INTENT(in) :: sign
+    CHARACTER(kind=c_char),  INTENT(in) :: sign
     INTEGER(c_int64_t), INTENT(in) :: day
     INTEGER(c_int64_t), INTENT(in) :: ms
     type(c_ptr) :: c_pointer
diff --git a/src/mtime_t_timedelta.inc b/src/mtime_t_timedelta.inc
index a5a7ec400cacf058ae1685265a3fa9cb40c88088..53f0d544604a2c0055a37b58d516c177c3cc5619 100644
--- a/src/mtime_t_timedelta.inc
+++ b/src/mtime_t_timedelta.inc
@@ -355,7 +355,7 @@
   FUNCTION t_timedelta_get_c_pointer(this) RESULT(c_pointer)
     TYPE(c_ptr) :: c_pointer
     CLASS(t_timedelta) :: this
-    character(c_char) ::c_sign
+    character(kind=c_char) ::c_sign
 
     c_sign = this%td%sign(1:1)
     c_pointer = my_newrawtimedelta(c_sign, int(this%td%year,c_int64_t), this%td%month, this%td%day, &