File f03_intrins.patch of Package ftnchek

--- ftnchek/symtab.h.1	2020-10-11 16:12:58.368738058 +0200
+++ ftnchek/symtab.h	2020-10-19 17:41:47.798760688 +0200
@@ -620,6 +620,7 @@ typedef struct MVHead {	/* ModVarListHea
 #define I_2or3	(-6)		/* 2 or 3 arguments */
 #define I_2to4	(-7)		/* 2 to 4 arguments */
 #define I_3or4	(-8)		/* 3 or 4 arguments */
+#define I_2to5	(-9)		/* 2 to 5 arguments */
 
 			/* for intrins_flags field */
 
--- ftnchek/symtab.c.1	2020-10-28 22:57:01.096736656 +0100
+++ ftnchek/symtab.c	2020-11-15 10:46:41.016144861 +0100
@@ -715,6 +715,13 @@ check_intrins_args(id, arg)
 	  numargs_ok = (args_given == 3 || args_given == 4 ||
 	                (opt_kind_index != -1 && args_given == 5));
 	  break;
+	case I_2to5:			/* 2 to 5 arguments allowed */
+	  if (opt_kind_index == -1) {	/* no KIND keyword found */
+	    if (opt_kind_allowed && args_given == 6) /* last arg, no keyword */
+	      opt_kind_index = 1;
+	  }
+	  numargs_ok = (args_given >= 2 && args_given <= (opt_kind_allowed? 6: 5));
+	  break;
 	default:		/* positive numargs: must agree */
 	  if (opt_kind_index == -1) {	/* no KIND keyword found */
 	    if (opt_kind_allowed && args_given == (unsigned)(numargs+1)) /* last arg, no keyword */
--- ftnchek/intrins.c.3	2020-10-11 15:40:12.870234001 +0200
+++ ftnchek/intrins.c	2020-10-19 17:58:23.090243614 +0200
@@ -533,6 +533,25 @@ SYSTEM_CLOCK ([COUNT,              Obtai
 {"SYSTEM_CLOCK",I_0or1,	I,	type_SUBROUTINE,I_F90,NULL},
 
 
+				/* F2003 intrinsics, at the moment treated as F95 */
+{"C_ASSOCIATED",	I_1or2, ANY,	type_LOGICAL,	I_F95|I_INQ,NULL},
+{"C_F_POINTER",		I_2or3, ANY,	type_SUBROUTINE,I_F95|I_MIXED_ARGS,NULL},
+{"C_F_PROCPOINTER",	2,	ANY,	type_SUBROUTINE,I_F95,NULL},
+{"C_FUNLOC",		1,I|R|D|C|Z|L|STR,type_INTEGER,	I_F95,NULL},
+{"C_LOC",		1,I|R|D|C|Z|L|STR,type_INTEGER,	I_F95,NULL},
+{"COMMAND_ARGUMENT_COUNT",0,	0,	type_INTEGER,	I_F95,NULL},
+{"EXTENDS_TYPE_OF",	2,	ANY,	type_LOGICAL,	I_F95,NULL},
+{"GET_COMMAND", 	I_1to3,	STR|I,	type_SUBROUTINE,I_F95|I_MIXED_ARGS,NULL},
+{"GET_COMMAND_ARGUMENT",I_2to4,	STR|I,	type_SUBROUTINE,I_F95|I_MIXED_ARGS,NULL},
+{"GET_ENVIRONMENT_VARIABLE",I_2to5,STR|I|L,type_SUBROUTINE,I_F95|I_MIXED_ARGS,NULL},
+{"IS_IOSTAT_END",	1,	I,	type_LOGICAL,	I_F95,NULL},
+{"IS_IOSTAT_EOR",	1,	I,	type_LOGICAL,	I_F95,NULL},
+{"MOVE_ALLOC",		2,	ANY,	type_SUBROUTINE,I_F95,NULL},
+{"NEW_LINE",		1,	STR,	type_STRING,	I_F95,NULL},
+{"SAME_TYPE_AS",	2,	ANY,	type_LOGICAL,	I_F95,NULL},
+{"SELECTED_CHAR_KIND",	1,	STR,	type_INTEGER,	I_F95,NULL}, /* TODO: write ii_selected_char_kind */
+
+
 				/* Nonstandard intrinsics */
 
 /* Nonstandard double and quad precision intrinsics are given the
openSUSE Build Service is sponsored by