OpenCMISS-Iron Internal API Documentation
input_output.f90
Go to the documentation of this file.
1 
43 
46 
47  USE base_routines
48  USE constants
49  USE kinds
51  USE strings
52 
53 #include "macros.h"
54 
55  IMPLICIT NONE
56 
57  PRIVATE
58 
59  !Module parameters
60 
65  INTEGER(INTG), PARAMETER :: write_string_matrix_name_only=1
66  INTEGER(INTG), PARAMETER :: write_string_matrix_name_and_indices=2
68 
69  !Module types
70 
71  !Interfaces
72 
74  INTERFACE write_string
75  MODULE PROCEDURE write_string_c
76  MODULE PROCEDURE write_string_vs
77  END INTERFACE write_string
78 
80  INTERFACE writestring
81  MODULE PROCEDURE write_string_c
82  MODULE PROCEDURE write_string_vs
83  END INTERFACE writestring
84 
87  MODULE PROCEDURE write_string_value_c
88  MODULE PROCEDURE write_string_value_dp
89  MODULE PROCEDURE write_string_value_intg
90  MODULE PROCEDURE write_string_value_lintg
91  MODULE PROCEDURE write_string_value_l
92  MODULE PROCEDURE write_string_value_sp
93  MODULE PROCEDURE write_string_value_vs
94  END INTERFACE write_string_value
95 
97  INTERFACE writestringvalue
98  MODULE PROCEDURE write_string_value_c
99  MODULE PROCEDURE write_string_value_dp
100  MODULE PROCEDURE write_string_value_intg
101  MODULE PROCEDURE write_string_value_lintg
102  MODULE PROCEDURE write_string_value_l
103  MODULE PROCEDURE write_string_value_sp
104  MODULE PROCEDURE write_string_value_vs
105  END INTERFACE writestringvalue
106 
109  MODULE PROCEDURE write_string_two_value_c_c
110  MODULE PROCEDURE write_string_two_value_c_dp
111  MODULE PROCEDURE write_string_two_value_c_intg
112  MODULE PROCEDURE write_string_two_value_c_l
113  MODULE PROCEDURE write_string_two_value_c_sp
114  MODULE PROCEDURE write_string_two_value_c_vs
115  MODULE PROCEDURE write_string_two_value_dp_c
116  MODULE PROCEDURE write_string_two_value_dp_dp
117  MODULE PROCEDURE write_string_two_value_dp_intg
118  MODULE PROCEDURE write_string_two_value_dp_l
119  MODULE PROCEDURE write_string_two_value_dp_sp
120  MODULE PROCEDURE write_string_two_value_dp_vs
121  MODULE PROCEDURE write_string_two_value_intg_c
122  MODULE PROCEDURE write_string_two_value_intg_dp
123  MODULE PROCEDURE write_string_two_value_intg_intg
124  MODULE PROCEDURE write_string_two_value_intg_l
125  MODULE PROCEDURE write_string_two_value_intg_sp
126  MODULE PROCEDURE write_string_two_value_intg_vs
127  MODULE PROCEDURE write_string_two_value_l_c
128  MODULE PROCEDURE write_string_two_value_l_dp
129  MODULE PROCEDURE write_string_two_value_l_intg
130  MODULE PROCEDURE write_string_two_value_l_l
131  MODULE PROCEDURE write_string_two_value_l_sp
132  MODULE PROCEDURE write_string_two_value_l_vs
133  MODULE PROCEDURE write_string_two_value_sp_c
134  MODULE PROCEDURE write_string_two_value_sp_dp
135  MODULE PROCEDURE write_string_two_value_sp_intg
136  MODULE PROCEDURE write_string_two_value_sp_l
137  MODULE PROCEDURE write_string_two_value_sp_sp
138  MODULE PROCEDURE write_string_two_value_sp_vs
139  MODULE PROCEDURE write_string_two_value_vs_c
140  MODULE PROCEDURE write_string_two_value_vs_dp
141  MODULE PROCEDURE write_string_two_value_vs_intg
142  MODULE PROCEDURE write_string_two_value_vs_l
143  MODULE PROCEDURE write_string_two_value_vs_sp
144  MODULE PROCEDURE write_string_two_value_vs_vs
145  END INTERFACE write_string_two_value
146 
149  MODULE PROCEDURE write_string_two_value_c_c
150  MODULE PROCEDURE write_string_two_value_c_dp
151  MODULE PROCEDURE write_string_two_value_c_intg
152  MODULE PROCEDURE write_string_two_value_c_l
153  MODULE PROCEDURE write_string_two_value_c_sp
154  MODULE PROCEDURE write_string_two_value_c_vs
155  MODULE PROCEDURE write_string_two_value_dp_c
156  MODULE PROCEDURE write_string_two_value_dp_dp
157  MODULE PROCEDURE write_string_two_value_dp_intg
158  MODULE PROCEDURE write_string_two_value_dp_l
159  MODULE PROCEDURE write_string_two_value_dp_sp
160  MODULE PROCEDURE write_string_two_value_dp_vs
161  MODULE PROCEDURE write_string_two_value_intg_c
162  MODULE PROCEDURE write_string_two_value_intg_dp
163  MODULE PROCEDURE write_string_two_value_intg_intg
164  MODULE PROCEDURE write_string_two_value_intg_l
165  MODULE PROCEDURE write_string_two_value_intg_sp
166  MODULE PROCEDURE write_string_two_value_intg_vs
167  MODULE PROCEDURE write_string_two_value_l_c
168  MODULE PROCEDURE write_string_two_value_l_dp
169  MODULE PROCEDURE write_string_two_value_l_intg
170  MODULE PROCEDURE write_string_two_value_l_l
171  MODULE PROCEDURE write_string_two_value_l_sp
172  MODULE PROCEDURE write_string_two_value_l_vs
173  MODULE PROCEDURE write_string_two_value_sp_c
174  MODULE PROCEDURE write_string_two_value_sp_dp
175  MODULE PROCEDURE write_string_two_value_sp_intg
176  MODULE PROCEDURE write_string_two_value_sp_l
177  MODULE PROCEDURE write_string_two_value_sp_sp
178  MODULE PROCEDURE write_string_two_value_sp_vs
179  MODULE PROCEDURE write_string_two_value_vs_c
180  MODULE PROCEDURE write_string_two_value_vs_dp
181  MODULE PROCEDURE write_string_two_value_vs_intg
182  MODULE PROCEDURE write_string_two_value_vs_l
183  MODULE PROCEDURE write_string_two_value_vs_sp
184  MODULE PROCEDURE write_string_two_value_vs_vs
185  END INTERFACE writestringtwovalue
186 
189  MODULE PROCEDURE write_string_fmt_value_c
190  MODULE PROCEDURE write_string_fmt_value_dp
191  MODULE PROCEDURE write_string_fmt_value_intg
192  MODULE PROCEDURE write_string_fmt_value_lintg
193  MODULE PROCEDURE write_string_fmt_value_l
194  MODULE PROCEDURE write_string_fmt_value_sp
195  MODULE PROCEDURE write_string_fmt_value_vs
196  END INTERFACE write_string_fmt_value
197 
200  MODULE PROCEDURE write_string_fmt_value_c
201  MODULE PROCEDURE write_string_fmt_value_dp
202  MODULE PROCEDURE write_string_fmt_value_intg
203  MODULE PROCEDURE write_string_fmt_value_lintg
204  MODULE PROCEDURE write_string_fmt_value_l
205  MODULE PROCEDURE write_string_fmt_value_sp
206  MODULE PROCEDURE write_string_fmt_value_vs
207  END INTERFACE writestringfmtvalue
208 
211  MODULE PROCEDURE write_string_fmt_two_value_c_c
212  MODULE PROCEDURE write_string_fmt_two_value_c_dp
213  MODULE PROCEDURE write_string_fmt_two_value_c_intg
214  MODULE PROCEDURE write_string_fmt_two_value_c_l
215  MODULE PROCEDURE write_string_fmt_two_value_c_sp
216  MODULE PROCEDURE write_string_fmt_two_value_c_vs
217  MODULE PROCEDURE write_string_fmt_two_value_dp_c
218  MODULE PROCEDURE write_string_fmt_two_value_dp_dp
219  MODULE PROCEDURE write_string_fmt_two_value_dp_intg
220  MODULE PROCEDURE write_string_fmt_two_value_dp_l
221  MODULE PROCEDURE write_string_fmt_two_value_dp_sp
222  MODULE PROCEDURE write_string_fmt_two_value_dp_vs
223  MODULE PROCEDURE write_string_fmt_two_value_intg_c
224  MODULE PROCEDURE write_string_fmt_two_value_intg_dp
225  MODULE PROCEDURE write_string_fmt_two_value_intg_intg
226  MODULE PROCEDURE write_string_fmt_two_value_intg_l
227  MODULE PROCEDURE write_string_fmt_two_value_intg_sp
228  MODULE PROCEDURE write_string_fmt_two_value_intg_vs
229  MODULE PROCEDURE write_string_fmt_two_value_l_c
230  MODULE PROCEDURE write_string_fmt_two_value_l_dp
231  MODULE PROCEDURE write_string_fmt_two_value_l_intg
232  MODULE PROCEDURE write_string_fmt_two_value_l_l
233  MODULE PROCEDURE write_string_fmt_two_value_l_sp
234  MODULE PROCEDURE write_string_fmt_two_value_l_vs
235  MODULE PROCEDURE write_string_fmt_two_value_sp_c
236  MODULE PROCEDURE write_string_fmt_two_value_sp_dp
237  MODULE PROCEDURE write_string_fmt_two_value_sp_intg
238  MODULE PROCEDURE write_string_fmt_two_value_sp_l
239  MODULE PROCEDURE write_string_fmt_two_value_sp_sp
240  MODULE PROCEDURE write_string_fmt_two_value_sp_vs
241  MODULE PROCEDURE write_string_fmt_two_value_vs_c
242  MODULE PROCEDURE write_string_fmt_two_value_vs_dp
243  MODULE PROCEDURE write_string_fmt_two_value_vs_intg
244  MODULE PROCEDURE write_string_fmt_two_value_vs_l
245  MODULE PROCEDURE write_string_fmt_two_value_vs_sp
246  MODULE PROCEDURE write_string_fmt_two_value_vs_vs
247  END INTERFACE write_string_fmt_two_value
248 
251  MODULE PROCEDURE write_string_fmt_two_value_c_c
252  MODULE PROCEDURE write_string_fmt_two_value_c_dp
253  MODULE PROCEDURE write_string_fmt_two_value_c_intg
254  MODULE PROCEDURE write_string_fmt_two_value_c_l
255  MODULE PROCEDURE write_string_fmt_two_value_c_sp
256  MODULE PROCEDURE write_string_fmt_two_value_c_vs
257  MODULE PROCEDURE write_string_fmt_two_value_dp_c
258  MODULE PROCEDURE write_string_fmt_two_value_dp_dp
259  MODULE PROCEDURE write_string_fmt_two_value_dp_intg
260  MODULE PROCEDURE write_string_fmt_two_value_dp_l
261  MODULE PROCEDURE write_string_fmt_two_value_dp_sp
262  MODULE PROCEDURE write_string_fmt_two_value_dp_vs
263  MODULE PROCEDURE write_string_fmt_two_value_intg_c
264  MODULE PROCEDURE write_string_fmt_two_value_intg_dp
265  MODULE PROCEDURE write_string_fmt_two_value_intg_intg
266  MODULE PROCEDURE write_string_fmt_two_value_intg_l
267  MODULE PROCEDURE write_string_fmt_two_value_intg_sp
268  MODULE PROCEDURE write_string_fmt_two_value_intg_vs
269  MODULE PROCEDURE write_string_fmt_two_value_l_c
270  MODULE PROCEDURE write_string_fmt_two_value_l_dp
271  MODULE PROCEDURE write_string_fmt_two_value_l_intg
272  MODULE PROCEDURE write_string_fmt_two_value_l_l
273  MODULE PROCEDURE write_string_fmt_two_value_l_sp
274  MODULE PROCEDURE write_string_fmt_two_value_l_vs
275  MODULE PROCEDURE write_string_fmt_two_value_sp_c
276  MODULE PROCEDURE write_string_fmt_two_value_sp_dp
277  MODULE PROCEDURE write_string_fmt_two_value_sp_intg
278  MODULE PROCEDURE write_string_fmt_two_value_sp_l
279  MODULE PROCEDURE write_string_fmt_two_value_sp_sp
280  MODULE PROCEDURE write_string_fmt_two_value_sp_vs
281  MODULE PROCEDURE write_string_fmt_two_value_vs_c
282  MODULE PROCEDURE write_string_fmt_two_value_vs_dp
283  MODULE PROCEDURE write_string_fmt_two_value_vs_intg
284  MODULE PROCEDURE write_string_fmt_two_value_vs_l
285  MODULE PROCEDURE write_string_fmt_two_value_vs_sp
286  MODULE PROCEDURE write_string_fmt_two_value_vs_vs
287  END INTERFACE writestringfmttwovalue
288 
291  MODULE PROCEDURE write_string_vector_dp
292  MODULE PROCEDURE write_string_vector_intg
293  MODULE PROCEDURE write_string_vector_lintg
294  MODULE PROCEDURE write_string_vector_l
295  MODULE PROCEDURE write_string_vector_sp
296  END INTERFACE write_string_vector
297 
300  MODULE PROCEDURE write_string_vector_dp
301  MODULE PROCEDURE write_string_vector_intg
302  MODULE PROCEDURE write_string_vector_lintg
303  MODULE PROCEDURE write_string_vector_l
304  MODULE PROCEDURE write_string_vector_sp
305  END INTERFACE writestringvector
306 
309  MODULE PROCEDURE write_string_idx_vector_dp
310  MODULE PROCEDURE write_string_idx_vector_intg
311  MODULE PROCEDURE write_string_idx_vector_lintg
312  MODULE PROCEDURE write_string_idx_vector_l
313  MODULE PROCEDURE write_string_idx_vector_sp
314  END INTERFACE write_string_idx_vector
315 
318  MODULE PROCEDURE write_string_idx_vector_dp
319  MODULE PROCEDURE write_string_idx_vector_intg
320  MODULE PROCEDURE write_string_idx_vector_lintg
321  MODULE PROCEDURE write_string_idx_vector_l
322  MODULE PROCEDURE write_string_idx_vector_sp
323  END INTERFACE writestringidxvector
324 
327  MODULE PROCEDURE write_string_matrix_dp
328  MODULE PROCEDURE write_string_matrix_intg
329  MODULE PROCEDURE write_string_matrix_lintg
330  MODULE PROCEDURE write_string_matrix_l
331  MODULE PROCEDURE write_string_matrix_sp
332  END INTERFACE write_string_matrix
333 
336  MODULE PROCEDURE write_string_matrix_dp
337  MODULE PROCEDURE write_string_matrix_intg
338  MODULE PROCEDURE write_string_matrix_lintg
339  MODULE PROCEDURE write_string_matrix_l
340  MODULE PROCEDURE write_string_matrix_sp
341  END INTERFACE writestringmatrix
342 
344 
347 
350 
351  !Module variables
352 
353 CONTAINS
354 
355  !!TODO: put back enters,exits etc.
356 
357  !
358  !================================================================================================================================
359  !
360 
362  SUBROUTINE write_string_c(ID,STRING,ERR,ERROR,*)
364  !Argument variables
365  INTEGER(INTG), INTENT(IN) :: ID
366  CHARACTER(LEN=*), INTENT(IN) :: STRING
367  INTEGER(INTG), INTENT(OUT) :: ERR
368  TYPE(varying_string), INTENT(OUT) :: ERROR
369  !Local variables
370 
371 ! ENTERS("WRITE_STRING_C",ERR,ERROR,*999)
372 
373  WRITE(op_string,'(A)') string
374  CALL write_str(id,err,error,*999)
375 
376 ! EXITS("WRITE_STRING_C")
377  RETURN
378 999 errorsexits("WRITE_STRING_C",err,error)
379  RETURN 1
380  END SUBROUTINE write_string_c
381 
382  !
383  !================================================================================================================================
384  !
385 
387  SUBROUTINE write_string_vs(ID,STRING,ERR,ERROR,*)
389  !Argument variables
390  INTEGER(INTG), INTENT(IN) :: ID
391  TYPE(varying_string), INTENT(IN) :: STRING
392  INTEGER(INTG), INTENT(OUT) :: ERR
393  TYPE(varying_string), INTENT(OUT) :: ERROR
394  !Local variables
395 
396 ! ENTERS("WRITE_STRING_VS",ERR,ERROR,*999)
397 
398  WRITE(op_string,'(A)') char(string)
399  CALL write_str(id,err,error,*999)
400 
401 ! EXITS("WRITE_STRING_VS")
402  RETURN
403 999 errorsexits("WRITE_STRING_VS",err,error)
404  RETURN 1
405  END SUBROUTINE write_string_vs
406 
407  !
408  !================================================================================================================================
409  !
410 
412  SUBROUTINE write_string_value_c(ID,FIRST_STRING,VALUE,ERR,ERROR,*)
414  !Argument variables
415  INTEGER(INTG), INTENT(IN) :: ID
416  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
417  CHARACTER(LEN=*), INTENT(IN) :: VALUE
418  INTEGER(INTG), INTENT(OUT) :: ERR
419  TYPE(varying_string), INTENT(OUT) :: ERROR
420  !Local variables
421  TYPE(varying_string) :: LOCAL_STRING
422 
423 ! ENTERS("WRITE_STRING_VALUE_C",ERR,ERROR,*999)
424 
425  local_string=first_string//value(1:len_trim(VALUE))
426  WRITE(op_string,'(A)') char(local_string)
427  CALL write_str(id,err,error,*999)
428 
429 ! EXITS("WRITE_STRING_VALUE_C")
430  RETURN
431 999 errorsexits("WRITE_STRING_VALUE_C",err,error)
432 ! EXITS("WRITE_STRING_VALUE_C")
433  RETURN 1
434  END SUBROUTINE write_string_value_c
435 
436  !
437  !================================================================================================================================
438  !
439 
441  SUBROUTINE write_string_value_dp(ID,FIRST_STRING,VALUE,ERR,ERROR,*)
443  !Argument variables
444  INTEGER(INTG), INTENT(IN) :: ID
445  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
446  REAL(DP), INTENT(IN) :: VALUE
447  INTEGER(INTG), INTENT(OUT) :: ERR
448  TYPE(varying_string), INTENT(OUT) :: ERROR
449  !Local variables
450  TYPE(varying_string) :: LOCAL_STRING
451 
452  ! ENTERS("WRITE_STRING_VALUE_DP",ERR,ERROR,*999)
453 
454  local_string=first_string//number_to_vstring(VALUE,"*",err,error)
455  IF(err/=0) GOTO 999
456  WRITE(op_string,'(A)') char(local_string)
457  CALL write_str(id,err,error,*999)
458 
459 ! EXITS("WRITE_STRING_VALUE_DP")
460  RETURN
461 999 errorsexits("WRITE_STRING_VALUE_DP",err,error)
462 ! EXITS("WRITE_STRING_VALUE_DP")
463  RETURN 1
464  END SUBROUTINE write_string_value_dp
465 
466  !
467  !================================================================================================================================
468  !
469 
471  SUBROUTINE write_string_value_intg(ID,FIRST_STRING,VALUE,ERR,ERROR,*)
473  !Argument variables
474  INTEGER(INTG), INTENT(IN) :: ID
475  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
476  INTEGER(INTG), INTENT(IN) :: VALUE
477  INTEGER(INTG), INTENT(OUT) :: ERR
478  TYPE(varying_string), INTENT(OUT) :: ERROR
479  !Local variables
480  TYPE(varying_string) :: LOCAL_STRING
481 
482 ! ENTERS("WRITE_STRING_VALUE_INTG",ERR,ERROR,*999)
483 
484  local_string=first_string//number_to_vstring(VALUE,"*",err,error)
485  IF(err/=0) GOTO 999
486  WRITE(op_string,'(A)') char(local_string)
487  CALL write_str(id,err,error,*999)
488 
489 ! EXITS("WRITE_STRING_VALUE_INTG")
490  RETURN
491 999 errorsexits("WRITE_STRING_VALUE_INTG",err,error)
492 ! EXITS("WRITE_STRING_VALUE_INTG")
493  RETURN 1
494  END SUBROUTINE write_string_value_intg
495 
496  !
497  !================================================================================================================================
498  !
499 
501  SUBROUTINE write_string_value_lintg(ID,FIRST_STRING,VALUE,ERR,ERROR,*)
503  !Argument variables
504  INTEGER(INTG), INTENT(IN) :: ID
505  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
506  INTEGER(LINTG), INTENT(IN) :: VALUE
507  INTEGER(INTG), INTENT(OUT) :: ERR
508  TYPE(varying_string), INTENT(OUT) :: ERROR
509  !Local variables
510  TYPE(varying_string) :: LOCAL_STRING
511 
512 ! ENTERS("WRITE_STRING_VALUE_LINTG",ERR,ERROR,*999)
513 
514  local_string=first_string//number_to_vstring(VALUE,"*",err,error)
515  IF(err/=0) GOTO 999
516  WRITE(op_string,'(A)') char(local_string)
517  CALL write_str(id,err,error,*999)
518 
519 ! EXITS("WRITE_STRING_VALUE_LINTG")
520  RETURN
521 999 errorsexits("WRITE_STRING_VALUE_LINTG",err,error)
522 ! EXITS("WRITE_STRING_VALUE_LINTG")
523  RETURN 1
524  END SUBROUTINE write_string_value_lintg
525 
526  !
527  !================================================================================================================================
528  !
529 
531  SUBROUTINE write_string_value_l(ID,FIRST_STRING,VALUE,ERR,ERROR,*)
533  !Argument variables
534  INTEGER(INTG), INTENT(IN) :: ID
535  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
536  LOGICAL, INTENT(IN) :: VALUE
537  INTEGER(INTG), INTENT(OUT) :: ERR
538  TYPE(varying_string), INTENT(OUT) :: ERROR
539  !Local variables
540  TYPE(varying_string) :: LOCAL_STRING
541 
542 ! ENTERS("WRITE_STRING_VALUE_L",ERR,ERROR,*999)
543 
544  local_string=first_string//logical_to_vstring(VALUE,err,error)
545  WRITE(op_string,'(A)') char(local_string)
546  CALL write_str(id,err,error,*999)
547 
548 ! EXITS("WRITE_STRING_VALUE_L")
549  RETURN
550 999 errorsexits("WRITE_STRING_VALUE_L",err,error)
551 ! EXITS("WRITE_STRING_VALUE_L")
552  RETURN 1
553  END SUBROUTINE write_string_value_l
554 
555  !
556  !================================================================================================================================
557  !
558 
560  SUBROUTINE write_string_value_sp(ID,FIRST_STRING,VALUE,ERR,ERROR,*)
562  !Argument variables
563  INTEGER(INTG), INTENT(IN) :: ID
564  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
565  REAL(SP), INTENT(IN) :: VALUE
566  INTEGER(INTG), INTENT(OUT) :: ERR
567  TYPE(varying_string), INTENT(OUT) :: ERROR
568  !Local variables
569  CHARACTER(LEN=1) :: FORMAT_STRING = "*"
570  TYPE(varying_string) :: LOCAL_STRING
571 
572  ! ENTERS("WRITE_STRING_VALUE_SP",ERR,ERROR,*999)
573 
574  local_string=first_string//number_to_vstring(VALUE,format_string,err,error)
575  IF(err/=0) GOTO 999
576  WRITE(op_string,'(A)') char(local_string)
577  CALL write_str(id,err,error,*999)
578 
579 ! EXITS("WRITE_STRING_VALUE_SP")
580  RETURN
581 999 errorsexits("WRITE_STRING_VALUE_SP",err,error)
582 ! EXITS("WRITE_STRING_VALUE_SP")
583  RETURN 1
584  END SUBROUTINE write_string_value_sp
585 
586  !
587  !================================================================================================================================
588  !
589 
591  SUBROUTINE write_string_value_vs(ID,FIRST_STRING,VALUE,ERR,ERROR,*)
593  !Argument variables
594  INTEGER(INTG), INTENT(IN) :: ID
595  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
596  TYPE(varying_string), INTENT(IN) :: VALUE
597  INTEGER(INTG), INTENT(OUT) :: ERR
598  TYPE(varying_string), INTENT(OUT) :: ERROR
599  !Local variables
600  TYPE(varying_string) :: LOCAL_STRING
601 
602 ! ENTERS("WRITE_STRING_VALUE_VS",ERR,ERROR,*999)
603 
604  IF(VALUE==" ") THEN
605  local_string=first_string
606  ELSE
607  local_string=first_string//VALUE
608  ENDIF
609  WRITE(op_string,'(A)') char(local_string)
610  CALL write_str(id,err,error,*999)
611 
612 ! EXITS("WRITE_STRING_VALUE_VS")
613  RETURN
614 999 errorsexits("WRITE_STRING_VALUE_VS",err,error)
615 ! EXITS("WRITE_STRING_VALUE_VS")
616  RETURN 1
617  END SUBROUTINE write_string_value_vs
618 
619  !
620  !================================================================================================================================
621  !
622 
624  SUBROUTINE write_string_two_value_c_c(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
626  !Argument variables
627  INTEGER(INTG), INTENT(IN) :: ID
628  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
629  CHARACTER(LEN=*), INTENT(IN) :: FIRST_VALUE
630  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
631  CHARACTER(LEN=*), INTENT(IN) :: SECOND_VALUE
632  INTEGER(INTG), INTENT(OUT) :: ERR
633  TYPE(varying_string), INTENT(OUT) :: ERROR
634  !Local variables
635  TYPE(varying_string) :: LOCAL_STRING
636 
637 ! ENTERS("WRITE_STRING_TWO_VALUE_C_C",ERR,ERROR,*999)
638 
639  local_string=first_string//first_value//second_string//second_value
640  WRITE(op_string,'(A)') char(local_string)
641  CALL write_str(id,err,error,*999)
642 
643 ! EXITS("WRITE_STRING_TWO_VALUE_C_C")
644  RETURN
645 999 errorsexits("WRITE_STRING_TWO_VALUE_C_C",err,error)
646 ! EXITS("WRITE_STRING_TWO_VALUE_C_C")
647  RETURN 1
648  END SUBROUTINE write_string_two_value_c_c
649 
650  !
651  !================================================================================================================================
652  !
653 
655  SUBROUTINE write_string_two_value_c_dp(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
657  !Argument variables
658  INTEGER(INTG), INTENT(IN) :: ID
659  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
660  CHARACTER(LEN=*), INTENT(IN) :: FIRST_VALUE
661  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
662  REAL(DP), INTENT(IN) :: SECOND_VALUE
663  INTEGER(INTG), INTENT(OUT) :: ERR
664  TYPE(varying_string), INTENT(OUT) :: ERROR
665  !Local variables
666  TYPE(varying_string) :: LOCAL_STRING
667 
668  ! ENTERS("WRITE_STRING_TWO_VALUE_C_DP",ERR,ERROR,*999)
669 
670  local_string=first_string//first_value//second_string//number_to_vstring(second_value,"*",err,error)
671  IF(err/=0) GOTO 999
672  WRITE(op_string,'(A)') char(local_string)
673  CALL write_str(id,err,error,*999)
674 
675 ! EXITS("WRITE_STRING_TWO_VALUE_C_DP")
676  RETURN
677 999 errorsexits("WRITE_STRING_TWO_VALUE_C_DP",err,error)
678 ! EXITS("WRITE_STRING_TWO_VALUE_C_DP")
679  RETURN 1
680  END SUBROUTINE write_string_two_value_c_dp
681 
682  !
683  !================================================================================================================================
684  !
685 
687  SUBROUTINE write_string_two_value_c_intg(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
689  !Argument variables
690  INTEGER(INTG), INTENT(IN) :: ID
691  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
692  CHARACTER(LEN=*), INTENT(IN) :: FIRST_VALUE
693  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
694  INTEGER(INTG), INTENT(IN) :: SECOND_VALUE
695  INTEGER(INTG), INTENT(OUT) :: ERR
696  TYPE(varying_string), INTENT(OUT) :: ERROR
697  !Local variables
698  TYPE(varying_string) :: LOCAL_STRING
699 
700 ! ENTERS("WRITE_STRING_TWO_VALUE_C_INTG",ERR,ERROR,*999)
701 
702  local_string=first_string//first_value//second_string//number_to_vstring(second_value,"*",err,error)
703  IF(err/=0) GOTO 999
704  WRITE(op_string,'(A)') char(local_string)
705  CALL write_str(id,err,error,*999)
706 
707 ! EXITS("WRITE_STRING_TWO_VALUE_C_INTG")
708  RETURN
709 999 errorsexits("WRITE_STRING_TWO_VALUE_C_INTG",err,error)
710 ! EXITS("WRITE_STRING_TWO_VALUE_C_INTG")
711  RETURN 1
712  END SUBROUTINE write_string_two_value_c_intg
713 
714  !
715  !================================================================================================================================
716  !
717 
719  SUBROUTINE write_string_two_value_c_l(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
721  !Argument variables
722  INTEGER(INTG), INTENT(IN) :: ID
723  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
724  CHARACTER(LEN=*), INTENT(IN) :: FIRST_VALUE
725  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
726  LOGICAL, INTENT(IN) :: SECOND_VALUE
727  INTEGER(INTG), INTENT(OUT) :: ERR
728  TYPE(varying_string), INTENT(OUT) :: ERROR
729  !Local variables
730  TYPE(varying_string) :: LOCAL_STRING
731 
732 ! ENTERS("WRITE_STRING_TWO_VALUE_C_L",ERR,ERROR,*999)
733 
734  local_string=first_string//first_value//second_string//logical_to_vstring(second_value,err,error)
735  WRITE(op_string,'(A)') char(local_string)
736  CALL write_str(id,err,error,*999)
737 
738 ! EXITS("WRITE_STRING_TWO_VALUE_C_L")
739  RETURN
740 999 errorsexits("WRITE_STRING_TWO_VALUE_C_L",err,error)
741 ! EXITS("WRITE_STRING_TWO_VALUE_C_L")
742  RETURN 1
743  END SUBROUTINE write_string_two_value_c_l
744 
745  !
746  !================================================================================================================================
747  !
748 
750  SUBROUTINE write_string_two_value_c_sp(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
752  !Argument variables
753  INTEGER(INTG), INTENT(IN) :: ID
754  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
755  CHARACTER(LEN=*), INTENT(IN) :: FIRST_VALUE
756  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
757  REAL(SP), INTENT(IN) :: SECOND_VALUE
758  INTEGER(INTG), INTENT(OUT) :: ERR
759  TYPE(varying_string), INTENT(OUT) :: ERROR
760  !Local variables
761  TYPE(varying_string) :: LOCAL_STRING
762 
763  ! ENTERS("WRITE_STRING_TWO_VALUE_C_SP",ERR,ERROR,*999)
764 
765  local_string=first_string//first_value//second_string//number_to_vstring(second_value,"*",err,error)
766  IF(err/=0) GOTO 999
767  WRITE(op_string,'(A)') char(local_string)
768  CALL write_str(id,err,error,*999)
769 
770 ! EXITS("WRITE_STRING_TWO_VALUE_C_SP")
771  RETURN
772 999 errorsexits("WRITE_STRING_TWO_VALUE_C_SP",err,error)
773 ! EXITS("WRITE_STRING_TWO_VALUE_C_SP")
774  RETURN 1
775  END SUBROUTINE write_string_two_value_c_sp
776 
777  !
778  !================================================================================================================================
779  !
780 
782  SUBROUTINE write_string_two_value_c_vs(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
783 
784  !Argument variables
785  INTEGER(INTG), INTENT(IN) :: ID
786  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
787  CHARACTER(LEN=*), INTENT(IN) :: FIRST_VALUE
788  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
789  TYPE(varying_string), INTENT(IN) :: SECOND_VALUE
790  INTEGER(INTG), INTENT(OUT) :: ERR
791  TYPE(varying_string), INTENT(OUT) :: ERROR
792  !Local variables
793  TYPE(varying_string) :: LOCAL_STRING
794 
795 ! ENTERS("WRITE_STRING_TWO_VALUE_C_VS",ERR,ERROR,*999)
796 
797  local_string=first_string//first_value//second_string//second_value
798  WRITE(op_string,'(A)') char(local_string)
799  CALL write_str(id,err,error,*999)
800 
801 ! EXITS("WRITE_STRING_TWO_VALUE_C_VS")
802  RETURN
803 999 errorsexits("WRITE_STRING_TWO_VALUE_C_VS",err,error)
804 ! EXITS("WRITE_STRING_TWO_VALUE_C_VS")
805  RETURN 1
806  END SUBROUTINE write_string_two_value_c_vs
807 
808  !
809  !================================================================================================================================
810  !
811 
813  SUBROUTINE write_string_two_value_dp_c(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
815  !Argument variables
816  INTEGER(INTG), INTENT(IN) :: ID
817  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
818  REAL(DP), INTENT(IN) :: FIRST_VALUE
819  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
820  CHARACTER(LEN=*), INTENT(IN) :: SECOND_VALUE
821  INTEGER(INTG), INTENT(OUT) :: ERR
822  TYPE(varying_string), INTENT(OUT) :: ERROR
823  !Local variables
824  TYPE(varying_string) :: LOCAL_STRING
825 
826 ! ENTERS("WRITE_STRING_TWO_VALUE_DP_C",ERR,ERROR,*999)
827 
828  local_string=first_string//number_to_vstring(first_value,"*",err,error)//second_string//second_value
829  IF(err/=0) GOTO 999
830  WRITE(op_string,'(A)') char(local_string)
831  CALL write_str(id,err,error,*999)
832 
833 ! EXITS("WRITE_STRING_TWO_VALUE_DP_C")
834  RETURN
835 999 errorsexits("WRITE_STRING_TWO_VALUE_DP_C",err,error)
836 ! EXITS("WRITE_STRING_TWO_VALUE_DP_C")
837  RETURN 1
838  END SUBROUTINE write_string_two_value_dp_c
839 
840  !
841  !================================================================================================================================
842  !
843 
845  SUBROUTINE write_string_two_value_dp_dp(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
847  !Argument variables
848  INTEGER(INTG), INTENT(IN) :: ID
849  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
850  REAL(DP), INTENT(IN) :: FIRST_VALUE
851  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
852  REAL(DP), INTENT(IN) :: SECOND_VALUE
853  INTEGER(INTG), INTENT(OUT) :: ERR
854  TYPE(varying_string), INTENT(OUT) :: ERROR
855  !Local variables
856  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
857 
858  ! ENTERS("WRITE_STRING_TWO_VALUE_DP_DP",ERR,ERROR,*999)
859 
860  local_string=first_string//number_to_vstring(first_value,"*",err,error)
861  IF(err/=0) GOTO 999
862  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
863  local_string2=local_string//second_string
864  local_string=local_string2//number_to_vstring(second_value,"*",err,error)
865  IF(err/=0) GOTO 999
866  WRITE(op_string,'(A)') char(local_string)
867  CALL write_str(id,err,error,*999)
868 
869 ! EXITS("WRITE_STRING_TWO_VALUE_DP_DP")
870  RETURN
871 999 errorsexits("WRITE_STRING_TWO_VALUE_DP_DP",err,error)
872 ! EXITS("WRITE_STRING_TWO_VALUE_DP_DP")
873  RETURN 1
874  END SUBROUTINE write_string_two_value_dp_dp
875 
876  !
877  !================================================================================================================================
878  !
879 
881  SUBROUTINE write_string_two_value_dp_intg(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
883  !Argument variables
884  INTEGER(INTG), INTENT(IN) :: ID
885  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
886  REAL(DP), INTENT(IN) :: FIRST_VALUE
887  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
888  INTEGER(INTG), INTENT(IN) :: SECOND_VALUE
889  INTEGER(INTG), INTENT(OUT) :: ERR
890  TYPE(varying_string), INTENT(OUT) :: ERROR
891  !Local variables
892  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
893 
894 ! ENTERS("WRITE_STRING_TWO_VALUE_DP_INTG",ERR,ERROR,*999)
895 
896  local_string=first_string//number_to_vstring(first_value,"*",err,error)
897  IF(err/=0) GOTO 999
898  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
899  local_string2=local_string//second_string
900  local_string=local_string2//number_to_vstring(second_value,"*",err,error)
901  IF(err/=0) GOTO 999
902  WRITE(op_string,'(A)') char(local_string)
903  CALL write_str(id,err,error,*999)
904 
905 ! EXITS("WRITE_STRING_TWO_VALUE_DP_INTG")
906  RETURN
907 999 errorsexits("WRITE_STRING_TWO_VALUE_DP_INTG",err,error)
908 ! EXITS("WRITE_STRING_TWO_VALUE_DP_INTG")
909  RETURN 1
910  END SUBROUTINE write_string_two_value_dp_intg
911 
912  !
913  !================================================================================================================================
914  !
915 
917  SUBROUTINE write_string_two_value_dp_l(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
919  !Argument variables
920  INTEGER(INTG), INTENT(IN) :: ID
921  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
922  REAL(DP), INTENT(IN) :: FIRST_VALUE
923  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
924  LOGICAL, INTENT(IN) :: SECOND_VALUE
925  INTEGER(INTG), INTENT(OUT) :: ERR
926  TYPE(varying_string), INTENT(OUT) :: ERROR
927  !Local variables
928  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
929 
930 ! ENTERS("WRITE_STRING_TWO_VALUE_DP_L",ERR,ERROR,*999)
931 
932  local_string=first_string//number_to_vstring(first_value,"*",err,error)
933  IF(err/=0) GOTO 999
934  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
935  local_string2=local_string//second_string
936  local_string=local_string2//logical_to_vstring(second_value,err,error)
937  WRITE(op_string,'(A)') char(local_string)
938  CALL write_str(id,err,error,*999)
939 
940 ! EXITS("WRITE_STRING_TWO_VALUE_DP_L")
941  RETURN
942 999 errorsexits("WRITE_STRING_TWO_VALUE_DP_L",err,error)
943 ! EXITS("WRITE_STRING_TWO_VALUE_DP_L")
944  RETURN 1
945  END SUBROUTINE write_string_two_value_dp_l
946 
947  !
948  !================================================================================================================================
949  !
950 
952  SUBROUTINE write_string_two_value_dp_sp(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
954  !Argument variables
955  INTEGER(INTG), INTENT(IN) :: ID
956  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
957  REAL(DP), INTENT(IN) :: FIRST_VALUE
958  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
959  REAL(SP), INTENT(IN) :: SECOND_VALUE
960  INTEGER(INTG), INTENT(OUT) :: ERR
961  TYPE(varying_string), INTENT(OUT) :: ERROR
962  !Local variables
963  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
964 
965  ! ENTERS("WRITE_STRING_TWO_VALUE_DP_SP",ERR,ERROR,*999)
966 
967  local_string=first_string//number_to_vstring(first_value,"*",err,error)
968  IF(err/=0) GOTO 999
969  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
970  local_string2=local_string//second_string
971  local_string=local_string2//number_to_vstring(second_value,"*",err,error)
972  IF(err/=0) GOTO 999
973  WRITE(op_string,'(A)') char(local_string)
974  CALL write_str(id,err,error,*999)
975 
976 ! EXITS("WRITE_STRING_TWO_VALUE_DP_SP")
977  RETURN
978 999 errorsexits("WRITE_STRING_TWO_VALUE_DP_SP",err,error)
979 ! EXITS("WRITE_STRING_TWO_VALUE_DP_SP")
980  RETURN 1
981  END SUBROUTINE write_string_two_value_dp_sp
982 
983  !
984  !================================================================================================================================
985  !
986 
988  SUBROUTINE write_string_two_value_dp_vs(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
990  !Argument variables
991  INTEGER(INTG), INTENT(IN) :: ID
992  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
993  REAL(DP), INTENT(IN) :: FIRST_VALUE
994  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
995  TYPE(varying_string), INTENT(IN) :: SECOND_VALUE
996  INTEGER(INTG), INTENT(OUT) :: ERR
997  TYPE(varying_string), INTENT(OUT) :: ERROR
998  !Local variables
999  TYPE(varying_string) :: LOCAL_STRING
1000 
1001 ! ENTERS("WRITE_STRING_TWO_VALUE_DP_VS",ERR,ERROR,*999)
1002 
1003  local_string=first_string//number_to_vstring(first_value,"*",err,error)//second_string//second_value
1004  IF(err/=0) GOTO 999
1005  WRITE(op_string,'(A)') char(local_string)
1006  CALL write_str(id,err,error,*999)
1007 
1008 ! EXITS("WRITE_STRING_TWO_VALUE_DP_VS")
1009  RETURN
1010 999 errorsexits("WRITE_STRING_TWO_VALUE_DP_VS",err,error)
1011 ! EXITS("WRITE_STRING_TWO_VALUE_DP_VS")
1012  RETURN 1
1013  END SUBROUTINE write_string_two_value_dp_vs
1014 
1015  !
1016  !================================================================================================================================
1017  !
1018 
1020  SUBROUTINE write_string_two_value_intg_c(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
1022  !Argument variables
1023  INTEGER(INTG), INTENT(IN) :: ID
1024  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1025  INTEGER(INTG), INTENT(IN) :: FIRST_VALUE
1026  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
1027  CHARACTER(LEN=*), INTENT(IN) :: SECOND_VALUE
1028  INTEGER(INTG), INTENT(OUT) :: ERR
1029  TYPE(varying_string), INTENT(OUT) :: ERROR
1030  !Local variables
1031  TYPE(varying_string) :: LOCAL_STRING
1032 
1033 ! ENTERS("WRITE_STRING_TWO_VALUE_INTG_C",ERR,ERROR,*999)
1034 
1035  local_string=first_string//number_to_vstring(first_value,"*",err,error)//second_string//second_value
1036  IF(err/=0) GOTO 999
1037  WRITE(op_string,'(A)') char(local_string)
1038  CALL write_str(id,err,error,*999)
1039 
1040 ! EXITS("WRITE_STRING_TWO_VALUE_INTG_C")
1041  RETURN
1042 999 errorsexits("WRITE_STRING_TWO_VALUE_INTG_C",err,error)
1043 ! EXITS("WRITE_STRING_TWO_VALUE_INTG_C")
1044  RETURN 1
1045  END SUBROUTINE write_string_two_value_intg_c
1046 
1047  !
1048  !================================================================================================================================
1049  !
1050 
1052  SUBROUTINE write_string_two_value_intg_dp(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
1054  !Argument variables
1055  INTEGER(INTG), INTENT(IN) :: ID
1056  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1057  INTEGER(INTG), INTENT(IN) :: FIRST_VALUE
1058  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
1059  REAL(DP), INTENT(IN) :: SECOND_VALUE
1060  INTEGER(INTG), INTENT(OUT) :: ERR
1061  TYPE(varying_string), INTENT(OUT) :: ERROR
1062  !Local variables
1063  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
1064 
1065  ! ENTERS("WRITE_STRING_TWO_VALUE_INTG_DP",ERR,ERROR,*999)
1066 
1067  local_string=first_string//number_to_vstring(first_value,"*",err,error)
1068  IF(err/=0) GOTO 999
1069  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
1070  local_string2=local_string//second_string
1071  local_string=local_string2//number_to_vstring(second_value,"*",err,error)
1072  IF(err/=0) GOTO 999
1073  WRITE(op_string,'(A)') char(local_string)
1074  CALL write_str(id,err,error,*999)
1075 
1076 ! EXITS("WRITE_STRING_TWO_VALUE_INTG_DP")
1077  RETURN
1078 999 errorsexits("WRITE_STRING_TWO_VALUE_INTG_DP",err,error)
1079 ! EXITS("WRITE_STRING_TWO_VALUE_INTG_DP")
1080  RETURN 1
1081  END SUBROUTINE write_string_two_value_intg_dp
1082 
1083  !
1084  !================================================================================================================================
1085  !
1086 
1088  SUBROUTINE write_string_two_value_intg_intg(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
1090  !Argument variables
1091  INTEGER(INTG), INTENT(IN) :: ID
1092  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1093  INTEGER(INTG), INTENT(IN) :: FIRST_VALUE
1094  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
1095  INTEGER(INTG), INTENT(IN) :: SECOND_VALUE
1096  INTEGER(INTG), INTENT(OUT) :: ERR
1097  TYPE(varying_string), INTENT(OUT) :: ERROR
1098  !Local variables
1099  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
1100 
1101 ! ENTERS("WRITE_STRING_TWO_VALUE_INTG_INTG",ERR,ERROR,*999)
1102 
1103  local_string=first_string//number_to_vstring(first_value,"*",err,error)
1104  IF(err/=0) GOTO 999
1105  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
1106  local_string2=local_string//second_string
1107  local_string=local_string2//number_to_vstring(second_value,"*",err,error)
1108  IF(err/=0) GOTO 999
1109  WRITE(op_string,'(A)') char(local_string)
1110  CALL write_str(id,err,error,*999)
1111 
1112 ! EXITS("WRITE_STRING_TWO_VALUE_INTG_INTG")
1113  RETURN
1114 999 errorsexits("WRITE_STRING_TWO_VALUE_INTG_INTG",err,error)
1115 ! EXITS("WRITE_STRING_TWO_VALUE_INTG_INTG")
1116  RETURN 1
1117  END SUBROUTINE write_string_two_value_intg_intg
1118 
1119  !
1120  !================================================================================================================================
1121  !
1122 
1124  SUBROUTINE write_string_two_value_intg_l(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
1126  !Argument variables
1127  INTEGER(INTG), INTENT(IN) :: ID
1128  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1129  INTEGER(INTG), INTENT(IN) :: FIRST_VALUE
1130  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
1131  LOGICAL, INTENT(IN) :: SECOND_VALUE
1132  INTEGER(INTG), INTENT(OUT) :: ERR
1133  TYPE(varying_string), INTENT(OUT) :: ERROR
1134  !Local variables
1135  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
1136 
1137 ! ENTERS("WRITE_STRING_TWO_VALUE_INTG_L",ERR,ERROR,*999)
1138 
1139  local_string=first_string//number_to_vstring(first_value,"*",err,error)
1140  IF(err/=0) GOTO 999
1141  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
1142  local_string2=local_string//second_string
1143  local_string=local_string2//logical_to_vstring(second_value,err,error)
1144  WRITE(op_string,'(A)') char(local_string)
1145  CALL write_str(id,err,error,*999)
1146 
1147 ! EXITS("WRITE_STRING_TWO_VALUE_INTG_L")
1148  RETURN
1149 999 errorsexits("WRITE_STRING_TWO_VALUE_INTG_L",err,error)
1150 ! EXITS("WRITE_STRING_TWO_VALUE_INTG_L")
1151  RETURN 1
1152  END SUBROUTINE write_string_two_value_intg_l
1153 
1154  !
1155  !================================================================================================================================
1156  !
1157 
1159  SUBROUTINE write_string_two_value_intg_sp(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
1161  !Argument variables
1162  INTEGER(INTG), INTENT(IN) :: ID
1163  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1164  INTEGER(INTG), INTENT(IN) :: FIRST_VALUE
1165  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
1166  REAL(SP), INTENT(IN) :: SECOND_VALUE
1167  INTEGER(INTG), INTENT(OUT) :: ERR
1168  TYPE(varying_string), INTENT(OUT) :: ERROR
1169  !Local variables
1170  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
1171 
1172  ! ENTERS("WRITE_STRING_TWO_VALUE_INTG_SP",ERR,ERROR,*999)
1173 
1174  local_string=first_string//number_to_vstring(first_value,"*",err,error)
1175  IF(err/=0) GOTO 999
1176  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
1177  local_string2=local_string//second_string
1178  local_string=local_string2//number_to_vstring(second_value,"*",err,error)
1179  IF(err/=0) GOTO 999
1180  WRITE(op_string,'(A)') char(local_string)
1181  CALL write_str(id,err,error,*999)
1182 
1183 ! EXITS("WRITE_STRING_TWO_VALUE_INTG_SP")
1184  RETURN
1185 999 errorsexits("WRITE_STRING_TWO_VALUE_INTG_SP",err,error)
1186 ! EXITS("WRITE_STRING_TWO_VALUE_INTG_SP")
1187  RETURN 1
1188  END SUBROUTINE write_string_two_value_intg_sp
1189 
1190  !
1191  !================================================================================================================================
1192  !
1193 
1195  SUBROUTINE write_string_two_value_intg_vs(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
1197  !Argument variables
1198  INTEGER(INTG), INTENT(IN) :: ID
1199  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1200  INTEGER(INTG), INTENT(IN) :: FIRST_VALUE
1201  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
1202  TYPE(varying_string), INTENT(IN) :: SECOND_VALUE
1203  INTEGER(INTG), INTENT(OUT) :: ERR
1204  TYPE(varying_string), INTENT(OUT) :: ERROR
1205  !Local variables
1206  TYPE(varying_string) :: LOCAL_STRING
1207 
1208 ! ENTERS("WRITE_STRING_TWO_VALUE_INTG_VS",ERR,ERROR,*999)
1209 
1210  local_string=first_string//number_to_vstring(first_value,"*",err,error)//second_string//second_value
1211  IF(err/=0) GOTO 999
1212  WRITE(op_string,'(A)') char(local_string)
1213  CALL write_str(id,err,error,*999)
1214 
1215 ! EXITS("WRITE_STRING_TWO_VALUE_INTG_VS")
1216  RETURN
1217 999 errorsexits("WRITE_STRING_TWO_VALUE_INTG_VS",err,error)
1218 ! EXITS("WRITE_STRING_TWO_VALUE_INTG_VS")
1219  RETURN 1
1220  END SUBROUTINE write_string_two_value_intg_vs
1221 
1222  !
1223  !================================================================================================================================
1224  !
1225 
1227  SUBROUTINE write_string_two_value_l_c(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
1229  !Argument variables
1230  INTEGER(INTG), INTENT(IN) :: ID
1231  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1232  LOGICAL, INTENT(IN) :: FIRST_VALUE
1233  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
1234  CHARACTER(LEN=*), INTENT(IN) :: SECOND_VALUE
1235  INTEGER(INTG), INTENT(OUT) :: ERR
1236  TYPE(varying_string), INTENT(OUT) :: ERROR
1237  !Local variables
1238  TYPE(varying_string) :: LOCAL_STRING
1239 
1240 ! ENTERS("WRITE_STRING_TWO_VALUE_L_C",ERR,ERROR,*999)
1241 
1242  local_string=first_string//logical_to_vstring(first_value,err,error)//second_string//second_value
1243  IF(err/=0) GOTO 999
1244  WRITE(op_string,'(A)') char(local_string)
1245  CALL write_str(id,err,error,*999)
1246 
1247 ! EXITS("WRITE_STRING_TWO_VALUE_L_C")
1248  RETURN
1249 999 errorsexits("WRITE_STRING_TWO_VALUE_L_C",err,error)
1250 ! EXITS("WRITE_STRING_TWO_VALUE_L_C")
1251  RETURN 1
1252  END SUBROUTINE write_string_two_value_l_c
1253 
1254  !
1255  !================================================================================================================================
1256  !
1257 
1259  SUBROUTINE write_string_two_value_l_dp(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
1261  !Argument variables
1262  INTEGER(INTG), INTENT(IN) :: ID
1263  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1264  LOGICAL, INTENT(IN) :: FIRST_VALUE
1265  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
1266  REAL(DP), INTENT(IN) :: SECOND_VALUE
1267  INTEGER(INTG), INTENT(OUT) :: ERR
1268  TYPE(varying_string), INTENT(OUT) :: ERROR
1269  !Local variables
1270  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
1271 
1272  ! ENTERS("WRITE_STRING_TWO_VALUE_L_DP",ERR,ERROR,*999)
1273 
1274  local_string=first_string//logical_to_vstring(first_value,err,error)
1275  IF(err/=0) GOTO 999
1276  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
1277  local_string2=local_string//second_string
1278  local_string=local_string2//number_to_vstring(second_value,"*",err,error)
1279  IF(err/=0) GOTO 999
1280  WRITE(op_string,'(A)') char(local_string)
1281  CALL write_str(id,err,error,*999)
1282 
1283 ! EXITS("WRITE_STRING_TWO_VALUE_L_DP")
1284  RETURN
1285 999 errorsexits("WRITE_STRING_TWO_VALUE_L_DP",err,error)
1286 ! EXITS("WRITE_STRING_TWO_VALUE_L_DP")
1287  RETURN 1
1288  END SUBROUTINE write_string_two_value_l_dp
1289 
1290  !
1291  !================================================================================================================================
1292  !
1293 
1295  SUBROUTINE write_string_two_value_l_intg(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
1297  !Argument variables
1298  INTEGER(INTG), INTENT(IN) :: ID
1299  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1300  LOGICAL, INTENT(IN) :: FIRST_VALUE
1301  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
1302  INTEGER(INTG), INTENT(IN) :: SECOND_VALUE
1303  INTEGER(INTG), INTENT(OUT) :: ERR
1304  TYPE(varying_string), INTENT(OUT) :: ERROR
1305  !Local variables
1306  TYPE(varying_string) :: LOCAL_STRING
1307 
1308 ! ENTERS("WRITE_STRING_TWO_VALUE_L_INTG",ERR,ERROR,*999)
1309 
1310  local_string=first_string//logical_to_vstring(first_value,err,error)
1311  IF(err/=0) GOTO 999
1312  local_string=local_string//second_string//number_to_vstring(second_value,"*",err,error)
1313  IF(err/=0) GOTO 999
1314  WRITE(op_string,'(A)') char(local_string)
1315  CALL write_str(id,err,error,*999)
1316 
1317 ! EXITS("WRITE_STRING_TWO_VALUE_L_INTG")
1318  RETURN
1319 999 errorsexits("WRITE_STRING_TWO_VALUE_L_INTG",err,error)
1320 ! EXITS("WRITE_STRING_TWO_VALUE_L_INTG")
1321  RETURN 1
1322  END SUBROUTINE write_string_two_value_l_intg
1323 
1324  !
1325  !================================================================================================================================
1326  !
1327 
1329  SUBROUTINE write_string_two_value_l_l(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
1331  !Argument variables
1332  INTEGER(INTG), INTENT(IN) :: ID
1333  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1334  LOGICAL, INTENT(IN) :: FIRST_VALUE
1335  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
1336  LOGICAL, INTENT(IN) :: SECOND_VALUE
1337  INTEGER(INTG), INTENT(OUT) :: ERR
1338  TYPE(varying_string), INTENT(OUT) :: ERROR
1339  !Local variables
1340  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
1341 
1342 ! ENTERS("WRITE_STRING_TWO_VALUE_L_L",ERR,ERROR,*999)
1343 
1344  local_string=first_string//logical_to_vstring(first_value,err,error)
1345  IF(err/=0) GOTO 999
1346  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
1347  local_string2=local_string//second_string
1348  local_string=local_string2//logical_to_vstring(second_value,err,error)
1349  WRITE(op_string,'(A)') char(local_string)
1350  CALL write_str(id,err,error,*999)
1351 
1352 ! EXITS("WRITE_STRING_TWO_L_INTG_L")
1353  RETURN
1354 999 errorsexits("WRITE_STRING_TWO_VALUE_L_L",err,error)
1355 ! EXITS("WRITE_STRING_TWO_VALUE_L_L")
1356  RETURN 1
1357  END SUBROUTINE write_string_two_value_l_l
1358 
1359  !
1360  !================================================================================================================================
1361  !
1362 
1364  SUBROUTINE write_string_two_value_l_sp(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
1366  !Argument variables
1367  INTEGER(INTG), INTENT(IN) :: ID
1368  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1369  LOGICAL, INTENT(IN) :: FIRST_VALUE
1370  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
1371  REAL(SP), INTENT(IN) :: SECOND_VALUE
1372  INTEGER(INTG), INTENT(OUT) :: ERR
1373  TYPE(varying_string), INTENT(OUT) :: ERROR
1374  !Local variables
1375  TYPE(varying_string) :: LOCAL_STRING
1376 
1377  ! ENTERS("WRITE_STRING_TWO_VALUE_L_SP",ERR,ERROR,*999)
1378 
1379  local_string=first_string//logical_to_vstring(first_value,err,error)
1380  IF(err/=0) GOTO 999
1381  local_string=local_string//second_string//number_to_vstring(second_value,"*",err,error)
1382  IF(err/=0) GOTO 999
1383  WRITE(op_string,'(A)') char(local_string)
1384  CALL write_str(id,err,error,*999)
1385 
1386 ! EXITS("WRITE_STRING_TWO_VALUE_L_SP")
1387  RETURN
1388 999 errorsexits("WRITE_STRING_TWO_VALUE_L_SP",err,error)
1389 ! EXITS("WRITE_STRING_TWO_VALUE_L_SP")
1390  RETURN 1
1391  END SUBROUTINE write_string_two_value_l_sp
1392 
1393  !
1394  !================================================================================================================================
1395  !
1396 
1398  SUBROUTINE write_string_two_value_l_vs(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
1400  !Argument variables
1401  INTEGER(INTG), INTENT(IN) :: ID
1402  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1403  LOGICAL, INTENT(IN) :: FIRST_VALUE
1404  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
1405  TYPE(varying_string), INTENT(IN) :: SECOND_VALUE
1406  INTEGER(INTG), INTENT(OUT) :: ERR
1407  TYPE(varying_string), INTENT(OUT) :: ERROR
1408  !Local variables
1409  TYPE(varying_string) :: LOCAL_STRING
1410 
1411 ! ENTERS("WRITE_STRING_TWO_VALUE_L_VS",ERR,ERROR,*999)
1412 
1413  local_string=first_string//logical_to_vstring(first_value,err,error)//second_string//second_value
1414  IF(err/=0) GOTO 999
1415  WRITE(op_string,'(A)') char(local_string)
1416  CALL write_str(id,err,error,*999)
1417 
1418 ! EXITS("WRITE_STRING_TWO_VALUE_L_VS")
1419  RETURN
1420 999 errorsexits("WRITE_STRING_TWO_VALUE_L_VS",err,error)
1421 ! EXITS("WRITE_STRING_TWO_VALUE_L_VS")
1422  RETURN 1
1423  END SUBROUTINE write_string_two_value_l_vs
1424 
1425  !
1426  !================================================================================================================================
1427  !
1428 
1430  SUBROUTINE write_string_two_value_sp_c(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
1432  !Argument variables
1433  INTEGER(INTG), INTENT(IN) :: ID
1434  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1435  REAL(SP), INTENT(IN) :: FIRST_VALUE
1436  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
1437  CHARACTER(LEN=*), INTENT(IN) :: SECOND_VALUE
1438  INTEGER(INTG), INTENT(OUT) :: ERR
1439  TYPE(varying_string), INTENT(OUT) :: ERROR
1440  !Local variables
1441  TYPE(varying_string) :: LOCAL_STRING
1442 
1443 ! ENTERS("WRITE_STRING_TWO_VALUE_SP_C",ERR,ERROR,*999)
1444 
1445  local_string=first_string//number_to_vstring(first_value,"*",err,error)//second_string//second_value
1446  IF(err/=0) GOTO 999
1447  WRITE(op_string,'(A)') char(local_string)
1448  CALL write_str(id,err,error,*999)
1449 
1450 ! EXITS("WRITE_STRING_TWO_VALUE_SP_C")
1451  RETURN
1452 999 errorsexits("WRITE_STRING_TWO_VALUE_SP_C",err,error)
1453 ! EXITS("WRITE_STRING_TWO_VALUE_SP_C")
1454  RETURN 1
1455  END SUBROUTINE write_string_two_value_sp_c
1456 
1457  !
1458  !================================================================================================================================
1459  !
1460 
1462  SUBROUTINE write_string_two_value_sp_dp(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
1464  !Argument variables
1465  INTEGER(INTG), INTENT(IN) :: ID
1466  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1467  REAL(SP), INTENT(IN) :: FIRST_VALUE
1468  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
1469  REAL(DP), INTENT(IN) :: SECOND_VALUE
1470  INTEGER(INTG), INTENT(OUT) :: ERR
1471  TYPE(varying_string), INTENT(OUT) :: ERROR
1472  !Local variables
1473  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
1474 
1475  ! ENTERS("WRITE_STRING_TWO_VALUE_SP_DP",ERR,ERROR,*999)
1476 
1477  local_string=first_string//number_to_vstring(first_value,"*",err,error)
1478  IF(err/=0) GOTO 999
1479  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
1480  local_string2=local_string//second_string
1481  local_string=local_string2//number_to_vstring(second_value,"*",err,error)
1482  IF(err/=0) GOTO 999
1483  WRITE(op_string,'(A)') char(local_string)
1484  CALL write_str(id,err,error,*999)
1485 
1486 ! EXITS("WRITE_STRING_TWO_VALUE_SP_DP")
1487  RETURN
1488 999 errorsexits("WRITE_STRING_TWO_VALUE_SP_DP",err,error)
1489 ! EXITS("WRITE_STRING_TWO_VALUE_SP_DP")
1490  RETURN 1
1491  END SUBROUTINE write_string_two_value_sp_dp
1492 
1493  !
1494  !================================================================================================================================
1495  !
1496 
1498  SUBROUTINE write_string_two_value_sp_intg(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
1500  !Argument variables
1501  INTEGER(INTG), INTENT(IN) :: ID
1502  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1503  REAL(SP), INTENT(IN) :: FIRST_VALUE
1504  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
1505  INTEGER(INTG), INTENT(IN) :: SECOND_VALUE
1506  INTEGER(INTG), INTENT(OUT) :: ERR
1507  TYPE(varying_string), INTENT(OUT) :: ERROR
1508  !Local variables
1509  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
1510 
1511 ! ENTERS("WRITE_STRING_TWO_VALUE_SP_INTG",ERR,ERROR,*999)
1512 
1513  local_string=first_string//number_to_vstring(first_value,"*",err,error)
1514  IF(err/=0) GOTO 999
1515  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
1516  local_string2=local_string//second_string
1517  local_string=local_string2//number_to_vstring(second_value,"*",err,error)
1518  IF(err/=0) GOTO 999
1519  WRITE(op_string,'(A)') char(local_string)
1520  CALL write_str(id,err,error,*999)
1521 
1522 ! EXITS("WRITE_STRING_TWO_VALUE_SP_INTG")
1523  RETURN
1524 999 errorsexits("WRITE_STRING_TWO_VALUE_SP_INTG",err,error)
1525 ! EXITS("WRITE_STRING_TWO_VALUE_SP_INTG")
1526  RETURN 1
1527  END SUBROUTINE write_string_two_value_sp_intg
1528 
1529  !
1530  !================================================================================================================================
1531  !
1532 
1534  SUBROUTINE write_string_two_value_sp_l(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
1536  !Argument variables
1537  INTEGER(INTG), INTENT(IN) :: ID
1538  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1539  REAL(SP), INTENT(IN) :: FIRST_VALUE
1540  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
1541  LOGICAL, INTENT(IN) :: SECOND_VALUE
1542  INTEGER(INTG), INTENT(OUT) :: ERR
1543  TYPE(varying_string), INTENT(OUT) :: ERROR
1544  !Local variables
1545  TYPE(varying_string) :: LOCAL_STRING
1546 
1547 ! ENTERS("WRITE_STRING_TWO_VALUE_SP_L",ERR,ERROR,*999)
1548 
1549  local_string=first_string//number_to_vstring(first_value,"*",err,error)
1550  IF(err/=0) GOTO 999
1551  local_string=local_string//second_string//logical_to_vstring(second_value,err,error)
1552  WRITE(op_string,'(A)') char(local_string)
1553  CALL write_str(id,err,error,*999)
1554 
1555 ! EXITS("WRITE_STRING_TWO_VALUE_SP_L")
1556  RETURN
1557 999 errorsexits("WRITE_STRING_TWO_VALUE_SP_L",err,error)
1558 ! EXITS("WRITE_STRING_TWO_VALUE_SP_L")
1559  RETURN 1
1560  END SUBROUTINE write_string_two_value_sp_l
1561 
1562  !
1563  !================================================================================================================================
1564  !
1565 
1567  SUBROUTINE write_string_two_value_sp_sp(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
1569  !Argument variables
1570  INTEGER(INTG), INTENT(IN) :: ID
1571  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1572  REAL(SP), INTENT(IN) :: FIRST_VALUE
1573  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
1574  REAL(SP), INTENT(IN) :: SECOND_VALUE
1575  INTEGER(INTG), INTENT(OUT) :: ERR
1576  TYPE(varying_string), INTENT(OUT) :: ERROR
1577  !Local variables
1578  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
1579 
1580  ! ENTERS("WRITE_STRING_TWO_VALUE_SP_SP",ERR,ERROR,*999)
1581 
1582  local_string=first_string//number_to_vstring(first_value,"*",err,error)
1583  IF(err/=0) GOTO 999
1584  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
1585  local_string2=local_string//second_string
1586  local_string=local_string2//number_to_vstring(second_value,"*",err,error)
1587  IF(err/=0) GOTO 999
1588  WRITE(op_string,'(A)') char(local_string)
1589  CALL write_str(id,err,error,*999)
1590 
1591 ! EXITS("WRITE_STRING_TWO_VALUE_SP_SP")
1592  RETURN
1593 999 errorsexits("WRITE_STRING_TWO_VALUE_SP_SP",err,error)
1594 ! EXITS("WRITE_STRING_TWO_VALUE_SP_SP")
1595  RETURN 1
1596  END SUBROUTINE write_string_two_value_sp_sp
1597 
1598  !
1599  !================================================================================================================================
1600  !
1601 
1603  SUBROUTINE write_string_two_value_sp_vs(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
1605  !Argument variables
1606  INTEGER(INTG), INTENT(IN) :: ID
1607  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1608  REAL(SP), INTENT(IN) :: FIRST_VALUE
1609  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
1610  TYPE(varying_string), INTENT(IN) :: SECOND_VALUE
1611  INTEGER(INTG), INTENT(OUT) :: ERR
1612  TYPE(varying_string), INTENT(OUT) :: ERROR
1613  !Local variables
1614  TYPE(varying_string) :: LOCAL_STRING
1615 
1616 ! ENTERS("WRITE_STRING_TWO_VALUE_SP_VS",ERR,ERROR,*999)
1617 
1618  local_string=first_string//number_to_vstring(first_value,"*",err,error)//second_string//second_value
1619  IF(err/=0) GOTO 999
1620  WRITE(op_string,'(A)') char(local_string)
1621  CALL write_str(id,err,error,*999)
1622 
1623 ! EXITS("WRITE_STRING_TWO_VALUE_SP_VS")
1624  RETURN
1625 999 errorsexits("WRITE_STRING_TWO_VALUE_SP_VS",err,error)
1626 ! EXITS("WRITE_STRING_TWO_VALUE_SP_VS")
1627  RETURN 1
1628  END SUBROUTINE write_string_two_value_sp_vs
1629 
1630  !
1631  !================================================================================================================================
1632  !
1633 
1635  SUBROUTINE write_string_two_value_vs_c(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
1637  !Argument variables
1638  INTEGER(INTG), INTENT(IN) :: ID
1639  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1640  TYPE(varying_string), INTENT(IN) :: FIRST_VALUE
1641  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
1642  CHARACTER(LEN=*), INTENT(IN) :: SECOND_VALUE
1643  INTEGER(INTG), INTENT(OUT) :: ERR
1644  TYPE(varying_string), INTENT(OUT) :: ERROR
1645  !Local variables
1646  TYPE(varying_string) :: LOCAL_STRING
1647 
1648 ! ENTERS("WRITE_STRING_TWO_VALUE_VS_C",ERR,ERROR,*999)
1649 
1650  local_string=first_string//first_value//second_string//second_value
1651  WRITE(op_string,'(A)') char(local_string)
1652  CALL write_str(id,err,error,*999)
1653 
1654 ! EXITS("WRITE_STRING_TWO_VALUE_VS_C")
1655  RETURN
1656 999 errorsexits("WRITE_STRING_TWO_VALUE_VS_C",err,error)
1657 ! EXITS("WRITE_STRING_TWO_VALUE_VS_C")
1658  RETURN 1
1659  END SUBROUTINE write_string_two_value_vs_c
1660 
1661  !
1662  !================================================================================================================================
1663  !
1664 
1666  SUBROUTINE write_string_two_value_vs_dp(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
1668  !Argument variables
1669  INTEGER(INTG), INTENT(IN) :: ID
1670  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1671  TYPE(varying_string), INTENT(IN) :: FIRST_VALUE
1672  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
1673  REAL(DP), INTENT(IN) :: SECOND_VALUE
1674  INTEGER(INTG), INTENT(OUT) :: ERR
1675  TYPE(varying_string), INTENT(OUT) :: ERROR
1676  !Local variables
1677  TYPE(varying_string) :: LOCAL_STRING
1678 
1679  ! ENTERS("WRITE_STRING_TWO_VALUE_VS_DP",ERR,ERROR,*999)
1680 
1681  local_string=first_string//first_value//second_string//number_to_vstring(second_value,"*",err,error)
1682  IF(err/=0) GOTO 999
1683  WRITE(op_string,'(A)') char(local_string)
1684  CALL write_str(id,err,error,*999)
1685 
1686 ! EXITS("WRITE_STRING_TWO_VALUE_VS_DP")
1687  RETURN
1688 999 errorsexits("WRITE_STRING_TWO_VALUE_VS_DP",err,error)
1689 ! EXITS("WRITE_STRING_TWO_VALUE_VS_DP")
1690  RETURN 1
1691  END SUBROUTINE write_string_two_value_vs_dp
1692 
1693  !
1694  !================================================================================================================================
1695  !
1696 
1698  SUBROUTINE write_string_two_value_vs_intg(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
1700  !Argument variables
1701  INTEGER(INTG), INTENT(IN) :: ID
1702  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1703  TYPE(varying_string), INTENT(IN) :: FIRST_VALUE
1704  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
1705  INTEGER(INTG), INTENT(IN) :: SECOND_VALUE
1706  INTEGER(INTG), INTENT(OUT) :: ERR
1707  TYPE(varying_string), INTENT(OUT) :: ERROR
1708  !Local variables
1709  TYPE(varying_string) :: LOCAL_STRING
1710 
1711 ! ENTERS("WRITE_STRING_TWO_VALUE_VS_INTG",ERR,ERROR,*999)
1712 
1713  local_string=first_string//first_value//second_string//number_to_vstring(second_value,"*",err,error)
1714  IF(err/=0) GOTO 999
1715  WRITE(op_string,'(A)') char(local_string)
1716  CALL write_str(id,err,error,*999)
1717 
1718 ! EXITS("WRITE_STRING_TWO_VALUE_VS_INTG")
1719  RETURN
1720 999 errorsexits("WRITE_STRING_TWO_VALUE_VS_INTG",err,error)
1721 ! EXITS("WRITE_STRING_TWO_VALUE_VS_INTG")
1722  RETURN 1
1723  END SUBROUTINE write_string_two_value_vs_intg
1724 
1725  !
1726  !================================================================================================================================
1727  !
1728 
1730  SUBROUTINE write_string_two_value_vs_l(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
1732  !Argument variables
1733  INTEGER(INTG), INTENT(IN) :: ID
1734  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1735  TYPE(varying_string), INTENT(IN) :: FIRST_VALUE
1736  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
1737  LOGICAL, INTENT(IN) :: SECOND_VALUE
1738  INTEGER(INTG), INTENT(OUT) :: ERR
1739  TYPE(varying_string), INTENT(OUT) :: ERROR
1740  !Local variables
1741  TYPE(varying_string) :: LOCAL_STRING
1742 
1743 ! ENTERS("WRITE_STRING_TWO_VALUE_VS_L",ERR,ERROR,*999)
1744 
1745  local_string=first_string//first_value//second_string//logical_to_vstring(second_value,err,error)
1746  WRITE(op_string,'(A)') char(local_string)
1747  CALL write_str(id,err,error,*999)
1748 
1749 ! EXITS("WRITE_STRING_TWO_VALUE_VS_L")
1750  RETURN
1751 999 errorsexits("WRITE_STRING_TWO_VALUE_VS_L",err,error)
1752 ! EXITS("WRITE_STRING_TWO_VALUE_VS_L")
1753  RETURN 1
1754  END SUBROUTINE write_string_two_value_vs_l
1755 
1756  !
1757  !================================================================================================================================
1758  !
1759 
1761  SUBROUTINE write_string_two_value_vs_sp(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
1763  !Argument variables
1764  INTEGER(INTG), INTENT(IN) :: ID
1765  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1766  TYPE(varying_string), INTENT(IN) :: FIRST_VALUE
1767  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
1768  REAL(SP), INTENT(IN) :: SECOND_VALUE
1769  INTEGER(INTG), INTENT(OUT) :: ERR
1770  TYPE(varying_string), INTENT(OUT) :: ERROR
1771  !Local variables
1772  TYPE(varying_string) :: LOCAL_STRING
1773 
1774  ! ENTERS("WRITE_STRING_TWO_VALUE_VS_SP",ERR,ERROR,*999)
1775 
1776  local_string=first_string//first_value//second_string//number_to_vstring(second_value,"*",err,error)
1777  IF(err/=0) GOTO 999
1778  WRITE(op_string,'(A)') char(local_string)
1779  CALL write_str(id,err,error,*999)
1780 
1781 ! EXITS("WRITE_STRING_TWO_VALUE_VS_SP")
1782  RETURN
1783 999 errorsexits("WRITE_STRING_TWO_VALUE_VS_SP",err,error)
1784 ! EXITS("WRITE_STRING_TWO_VALUE_VS_SP")
1785  RETURN 1
1786  END SUBROUTINE write_string_two_value_vs_sp
1787 
1788  !
1789  !================================================================================================================================
1790  !
1791 
1793  SUBROUTINE write_string_two_value_vs_vs(ID,FIRST_STRING,FIRST_VALUE,SECOND_STRING,SECOND_VALUE,ERR,ERROR,*)
1795  !Argument variables
1796  INTEGER(INTG), INTENT(IN) :: ID
1797  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1798  TYPE(varying_string), INTENT(IN) :: FIRST_VALUE
1799  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
1800  TYPE(varying_string), INTENT(IN) :: SECOND_VALUE
1801  INTEGER(INTG), INTENT(OUT) :: ERR
1802  TYPE(varying_string), INTENT(OUT) :: ERROR
1803  !Local variables
1804  TYPE(varying_string) :: LOCAL_STRING
1805 
1806 ! ENTERS("WRITE_STRING_TWO_VALUE_VS_VS",ERR,ERROR,*999)
1807 
1808  local_string=first_string//first_value//second_string//second_value
1809  WRITE(op_string,'(A)') char(local_string)
1810  CALL write_str(id,err,error,*999)
1811 
1812 ! EXITS("WRITE_STRING_TWO_VALUE_VS_VS")
1813  RETURN
1814 999 errorsexits("WRITE_STRING_TWO_VALUE_VS_VS",err,error)
1815 ! EXITS("WRITE_STRING_TWO_VALUE_VS_VS")
1816  RETURN 1
1817  END SUBROUTINE write_string_two_value_vs_vs
1818 
1819  !
1820  !================================================================================================================================
1821  !
1822 
1824  SUBROUTINE write_string_fmt_value_c(ID,FIRST_STRING,VALUE,FORMAT_STRING,ERR,ERROR,*)
1826  !Argument variables
1827  INTEGER(INTG), INTENT(IN) :: ID
1828  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1829  CHARACTER(LEN=*), INTENT(IN) :: VALUE
1830  CHARACTER(LEN=*), INTENT(IN) :: FORMAT_STRING
1831  INTEGER(INTG), INTENT(OUT) :: ERR
1832  TYPE(varying_string), INTENT(OUT) :: ERROR
1833  !Local variables
1834  TYPE(varying_string) :: LOCAL_STRING
1835 
1836 ! ENTERS("WRITE_STRING_FMT_VALUE_C",ERR,ERROR,*999)
1837 
1838  local_string=first_string(1:len_trim(first_string))//value(1:len_trim(VALUE))
1839  WRITE(op_string,'(A)') char(local_string)
1840  CALL write_str(id,err,error,*999)
1841 
1842 ! EXITS("WRITE_STRING_FMT_VALUE_C")
1843  RETURN
1844 999 errorsexits("WRITE_STRING_FMT_VALUE_C",err,error)
1845 ! EXITS("WRITE_STRING_FMT_VALUE_C")
1846  RETURN 1
1847  END SUBROUTINE write_string_fmt_value_c
1848 
1849  !
1850  !================================================================================================================================
1851  !
1852 
1854  SUBROUTINE write_string_fmt_value_dp(ID,FIRST_STRING,VALUE,FORMAT_STRING,ERR,ERROR,*)
1856  !Argument variables
1857  INTEGER(INTG), INTENT(IN) :: ID
1858  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1859  REAL(DP), INTENT(IN) :: VALUE
1860  CHARACTER(LEN=*), INTENT(IN) :: FORMAT_STRING
1861  INTEGER(INTG), INTENT(OUT) :: ERR
1862  TYPE(varying_string), INTENT(OUT) :: ERROR
1863  !Local variables
1864  TYPE(varying_string) :: LOCAL_STRING
1865 
1866 ! ENTERS("WRITE_STRING_FMT_VALUE_DP",ERR,ERROR,*999)
1867 
1868  local_string=first_string//number_to_vstring(VALUE,format_string,err,error)
1869  IF(err/=0) GOTO 999
1870  WRITE(op_string,'(A)') char(local_string)
1871  CALL write_str(id,err,error,*999)
1872 
1873 ! EXITS("WRITE_STRING_FMT_VALUE_DP")
1874  RETURN
1875 999 errorsexits("WRITE_STRING_FMT_VALUE_DP",err,error)
1876 ! EXITS("WRITE_STRING_FMT_VALUE_DP")
1877  RETURN 1
1878  END SUBROUTINE write_string_fmt_value_dp
1879 
1880  !
1881  !================================================================================================================================
1882  !
1883 
1885  SUBROUTINE write_string_fmt_value_intg(ID,FIRST_STRING,VALUE,FORMAT_STRING,ERR,ERROR,*)
1887  !Argument variables
1888  INTEGER(INTG), INTENT(IN) :: ID
1889  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1890  INTEGER(INTG), INTENT(IN) :: VALUE
1891  CHARACTER(LEN=*), INTENT(IN) :: FORMAT_STRING
1892  INTEGER(INTG), INTENT(OUT) :: ERR
1893  TYPE(varying_string), INTENT(OUT) :: ERROR
1894  !Local variables
1895  TYPE(varying_string) :: LOCAL_STRING
1896 
1897 ! ENTERS("WRITE_STRING_FMT_VALUE_INTG",ERR,ERROR,*999)
1898 
1899  local_string=first_string//number_to_vstring(VALUE,format_string,err,error)
1900  WRITE(op_string,'(A)') char(local_string)
1901  CALL write_str(id,err,error,*999)
1902 
1903 ! EXITS("WRITE_STRING_FMT_VALUE_INTG")
1904  RETURN
1905 999 errorsexits("WRITE_STRING_FMT_VALUE_INTG",err,error)
1906 ! EXITS("WRITE_STRING_FMT_VALUE_INTG")
1907  RETURN 1
1908  END SUBROUTINE write_string_fmt_value_intg
1909 
1910  !
1911  !================================================================================================================================
1912  !
1913 
1915  SUBROUTINE write_string_fmt_value_lintg(ID,FIRST_STRING,VALUE,FORMAT_STRING,ERR,ERROR,*)
1917  !Argument variables
1918  INTEGER(INTG), INTENT(IN) :: ID
1919  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1920  INTEGER(LINTG), INTENT(IN) :: VALUE
1921  CHARACTER(LEN=*), INTENT(IN) :: FORMAT_STRING
1922  INTEGER(INTG), INTENT(OUT) :: ERR
1923  TYPE(varying_string), INTENT(OUT) :: ERROR
1924  !Local variables
1925  TYPE(varying_string) :: LOCAL_STRING
1926 
1927 ! ENTERS("WRITE_STRING_FMT_VALUE_LINTG",ERR,ERROR,*999)
1928 
1929  local_string=first_string//number_to_vstring(VALUE,format_string,err,error)
1930  WRITE(op_string,'(A)') char(local_string)
1931  CALL write_str(id,err,error,*999)
1932 
1933 ! EXITS("WRITE_STRING_FMT_VALUE_LINTG")
1934  RETURN
1935 999 errorsexits("WRITE_STRING_FMT_VALUE_LINTG",err,error)
1936 ! EXITS("WRITE_STRING_FMT_VALUE_LINTG")
1937  RETURN 1
1938  END SUBROUTINE write_string_fmt_value_lintg
1939 
1940  !
1941  !================================================================================================================================
1942  !
1943 
1945  SUBROUTINE write_string_fmt_value_l(ID,FIRST_STRING,VALUE,FORMAT_STRING,ERR,ERROR,*)
1947  !Argument variables
1948  INTEGER(INTG), INTENT(IN) :: ID
1949  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1950  LOGICAL, INTENT(IN) :: VALUE
1951  CHARACTER(LEN=*), INTENT(IN) :: FORMAT_STRING
1952  INTEGER(INTG), INTENT(OUT) :: ERR
1953  TYPE(varying_string), INTENT(OUT) :: ERROR
1954  !Local variables
1955  TYPE(varying_string) :: LOCAL_STRING
1956 
1957 ! ENTERS("WRITE_STRING_FMT_VALUE_L",ERR,ERROR,*999)
1958 
1959  local_string=first_string//logical_to_vstring(VALUE,err,error)
1960  WRITE(op_string,'(A)') char(local_string)
1961  CALL write_str(id,err,error,*999)
1962 
1963 ! EXITS("WRITE_STRING_FMT_VALUE_L")
1964  RETURN
1965 999 errorsexits("WRITE_STRING_FMT_VALUE_L",err,error)
1966 ! EXITS("WRITE_STRING_FMT_VALUE_L")
1967  RETURN 1
1968  END SUBROUTINE write_string_fmt_value_l
1969 
1970  !
1971  !================================================================================================================================
1972  !
1973 
1975  SUBROUTINE write_string_fmt_value_sp(ID,FIRST_STRING,VALUE,FORMAT_STRING,ERR,ERROR,*)
1977  !Argument variables
1978  INTEGER(INTG), INTENT(IN) :: ID
1979  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
1980  REAL(SP), INTENT(IN) :: VALUE
1981  CHARACTER(LEN=*), INTENT(IN) :: FORMAT_STRING
1982  INTEGER(INTG), INTENT(OUT) :: ERR
1983  TYPE(varying_string), INTENT(OUT) :: ERROR
1984  !Local variables
1985  TYPE(varying_string) :: LOCAL_STRING
1986 
1987 ! ENTERS("WRITE_STRING_FMT_VALUE_SP",ERR,ERROR,*999)
1988 
1989  local_string=first_string//number_to_vstring(VALUE,format_string,err,error)
1990  IF(err/=0) GOTO 999
1991  WRITE(op_string,'(A)') char(local_string)
1992  CALL write_str(id,err,error,*999)
1993 
1994 ! EXITS("WRITE_STRING_FMT_VALUE_SP")
1995  RETURN
1996 999 errorsexits("WRITE_STRING_FMT_VALUE_SP",err,error)
1997 ! EXITS("WRITE_STRING_FMT_VALUE_SP")
1998  RETURN 1
1999  END SUBROUTINE write_string_fmt_value_sp
2000 
2001  !
2002  !================================================================================================================================
2003  !
2004 
2006  SUBROUTINE write_string_fmt_value_vs(ID,FIRST_STRING,VALUE,FORMAT_STRING,ERR,ERROR,*)
2008  !Argument variables
2009  INTEGER(INTG), INTENT(IN) :: ID
2010  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2011  TYPE(varying_string), INTENT(IN) :: VALUE
2012  CHARACTER(LEN=*), INTENT(IN) :: FORMAT_STRING
2013  INTEGER(INTG), INTENT(OUT) :: ERR
2014  TYPE(varying_string), INTENT(OUT) :: ERROR
2015  !Local variables
2016  TYPE(varying_string) :: LOCAL_STRING
2017 
2018 ! ENTERS("WRITE_STRING_FMT_VALUE_VS",ERR,ERROR,*999)
2019 
2020  local_string=first_string//VALUE
2021  WRITE(op_string,'(A)') char(local_string)
2022  CALL write_str(id,err,error,*999)
2023 
2024 ! EXITS("WRITE_STRING_FMT_VALUE_VS")
2025  RETURN
2026 999 errorsexits("WRITE_STRING_FMT_VALUE_VS",err,error)
2027 ! EXITS("WRITE_STRING_FMT_VALUE_VS")
2028  RETURN 1
2029  END SUBROUTINE write_string_fmt_value_vs
2030 
2031  !
2032  !================================================================================================================================
2033  !
2034 
2036  SUBROUTINE write_string_fmt_two_value_c_c(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
2037  & err,error,*)
2039  !Argument variables
2040  INTEGER(INTG), INTENT(IN) :: ID
2041  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2042  CHARACTER(LEN=*), INTENT(IN) :: FIRST_VALUE
2043  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2044  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2045  CHARACTER(LEN=*), INTENT(IN) :: SECOND_VALUE
2046  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2047  INTEGER(INTG), INTENT(OUT) :: ERR
2048  TYPE(varying_string), INTENT(OUT) :: ERROR
2049  !Local variables
2050  TYPE(varying_string) :: LOCAL_STRING
2051 
2052 ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_C_C",ERR,ERROR,*999)
2053 
2054  local_string=first_string//first_value//second_string//second_value
2055  WRITE(op_string,'(A)') char(local_string)
2056  CALL write_str(id,err,error,*999)
2057 
2058 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_C_C")
2059  RETURN
2060 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_C_C",err,error)
2061 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_C_C")
2062  RETURN 1
2063  END SUBROUTINE write_string_fmt_two_value_c_c
2064 
2065  !
2066  !================================================================================================================================
2067  !
2068 
2070  SUBROUTINE write_string_fmt_two_value_c_dp(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
2071  & err,error,*)
2073  !Argument variables
2074  INTEGER(INTG), INTENT(IN) :: ID
2075  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2076  CHARACTER(LEN=*), INTENT(IN) :: FIRST_VALUE
2077  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2078  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2079  REAL(DP), INTENT(IN) :: SECOND_VALUE
2080  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2081  INTEGER(INTG), INTENT(OUT) :: ERR
2082  TYPE(varying_string), INTENT(OUT) :: ERROR
2083  !Local variables
2084  TYPE(varying_string) :: LOCAL_STRING
2085 
2086  ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_C_DP",ERR,ERROR,*999)
2087 
2088  local_string=first_string//first_value//second_string//number_to_vstring(second_value,second_format,err,error)
2089  IF(err/=0) GOTO 999
2090  WRITE(op_string,'(A)') char(local_string)
2091  CALL write_str(id,err,error,*999)
2092 
2093 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_C_DP")
2094  RETURN
2095 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_C_DP",err,error)
2096 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_C_DP")
2097  RETURN 1
2098  END SUBROUTINE write_string_fmt_two_value_c_dp
2099 
2100  !
2101  !================================================================================================================================
2102  !
2103 
2105  SUBROUTINE write_string_fmt_two_value_c_intg(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
2106  & err,error,*)
2108  !Argument variables
2109  INTEGER(INTG), INTENT(IN) :: ID
2110  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2111  CHARACTER(LEN=*), INTENT(IN) :: FIRST_VALUE
2112  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2113  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2114  INTEGER(INTG), INTENT(IN) :: SECOND_VALUE
2115  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2116  INTEGER(INTG), INTENT(OUT) :: ERR
2117  TYPE(varying_string), INTENT(OUT) :: ERROR
2118  !Local variables
2119  TYPE(varying_string) :: LOCAL_STRING
2120 
2121 ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_C_INTG",ERR,ERROR,*999)
2122 
2123  local_string=first_string//first_value//second_string//number_to_vstring(second_value,second_format,err,error)
2124  IF(err/=0) GOTO 999
2125  WRITE(op_string,'(A)') char(local_string)
2126  CALL write_str(id,err,error,*999)
2127 
2128 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_C_INTG")
2129  RETURN
2130 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_C_INTG",err,error)
2131 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_C_INTG")
2132  RETURN 1
2133  END SUBROUTINE write_string_fmt_two_value_c_intg
2134 
2135  !
2136  !================================================================================================================================
2137  !
2138 
2140  SUBROUTINE write_string_fmt_two_value_c_l(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
2141  & err,error,*)
2143  !Argument variables
2144  INTEGER(INTG), INTENT(IN) :: ID
2145  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2146  CHARACTER(LEN=*), INTENT(IN) :: FIRST_VALUE
2147  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2148  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2149  LOGICAL, INTENT(IN) :: SECOND_VALUE
2150  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2151  INTEGER(INTG), INTENT(OUT) :: ERR
2152  TYPE(varying_string), INTENT(OUT) :: ERROR
2153  !Local variables
2154  TYPE(varying_string) :: LOCAL_STRING
2155 
2156 ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_C_L",ERR,ERROR,*999)
2157 
2158  local_string=first_string//first_value//second_string//logical_to_vstring(second_value,err,error)
2159  WRITE(op_string,'(A)') char(local_string)
2160  CALL write_str(id,err,error,*999)
2161 
2162 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_C_L")
2163  RETURN
2164 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_C_L",err,error)
2165 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_C_L")
2166  RETURN 1
2167  END SUBROUTINE write_string_fmt_two_value_c_l
2168 
2169  !
2170  !================================================================================================================================
2171  !
2172 
2174  SUBROUTINE write_string_fmt_two_value_c_sp(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
2175  & err,error,*)
2177  !Argument variables
2178  INTEGER(INTG), INTENT(IN) :: ID
2179  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2180  CHARACTER(LEN=*), INTENT(IN) :: FIRST_VALUE
2181  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2182  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2183  REAL(SP), INTENT(IN) :: SECOND_VALUE
2184  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2185  INTEGER(INTG), INTENT(OUT) :: ERR
2186  TYPE(varying_string), INTENT(OUT) :: ERROR
2187  !Local variables
2188  TYPE(varying_string) :: LOCAL_STRING
2189 
2190  ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_C_SP",ERR,ERROR,*999)
2191 
2192  local_string=first_string//first_value//second_string//number_to_vstring(second_value,second_format,err,error)
2193  IF(err/=0) GOTO 999
2194  WRITE(op_string,'(A)') char(local_string)
2195  CALL write_str(id,err,error,*999)
2196 
2197 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_C_SP")
2198  RETURN
2199 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_C_SP",err,error)
2200 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_C_SP")
2201  RETURN 1
2202  END SUBROUTINE write_string_fmt_two_value_c_sp
2203 
2204  !
2205  !================================================================================================================================
2206  !
2207 
2209  SUBROUTINE write_string_fmt_two_value_c_vs(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
2210  & err,error,*)
2212  !Argument variables
2213  INTEGER(INTG), INTENT(IN) :: ID
2214  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2215  CHARACTER(LEN=*), INTENT(IN) :: FIRST_VALUE
2216  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2217  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2218  TYPE(varying_string), INTENT(IN) :: SECOND_VALUE
2219  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2220  INTEGER(INTG), INTENT(OUT) :: ERR
2221  TYPE(varying_string), INTENT(OUT) :: ERROR
2222  !Local variables
2223  TYPE(varying_string) :: LOCAL_STRING
2224 
2225 ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_C_VS",ERR,ERROR,*999)
2226 
2227  local_string=first_string//first_value//second_string//second_value
2228  WRITE(op_string,'(A)') char(local_string)
2229  CALL write_str(id,err,error,*999)
2230 
2231 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_C_VS")
2232  RETURN
2233 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_C_VS",err,error)
2234 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_C_VS")
2235  RETURN 1
2236  END SUBROUTINE write_string_fmt_two_value_c_vs
2237 
2238  !
2239  !================================================================================================================================
2240  !
2241 
2243  SUBROUTINE write_string_fmt_two_value_dp_c(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
2244  & err,error,*)
2246  !Argument variables
2247  INTEGER(INTG), INTENT(IN) :: ID
2248  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2249  REAL(DP), INTENT(IN) :: FIRST_VALUE
2250  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2251  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2252  CHARACTER(LEN=*), INTENT(IN) :: SECOND_VALUE
2253  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2254  INTEGER(INTG), INTENT(OUT) :: ERR
2255  TYPE(varying_string), INTENT(OUT) :: ERROR
2256  !Local variables
2257  TYPE(varying_string) :: LOCAL_STRING
2258 
2259 ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_DP_C",ERR,ERROR,*999)
2260 
2261  local_string=first_string//number_to_vstring(first_value,first_format,err,error)//second_string//second_value
2262  IF(err/=0) GOTO 999
2263  WRITE(op_string,'(A)') char(local_string)
2264  CALL write_str(id,err,error,*999)
2265 
2266 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_DP_C")
2267  RETURN
2268 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_DP_C",err,error)
2269 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_DP_C")
2270  RETURN 1
2271  END SUBROUTINE write_string_fmt_two_value_dp_c
2272 
2273  !
2274  !================================================================================================================================
2275  !
2276 
2278  SUBROUTINE write_string_fmt_two_value_dp_dp(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
2279  & err,error,*)
2281  !Argument variables
2282  INTEGER(INTG), INTENT(IN) :: ID
2283  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2284  REAL(DP), INTENT(IN) :: FIRST_VALUE
2285  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2286  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2287  REAL(DP), INTENT(IN) :: SECOND_VALUE
2288  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2289  INTEGER(INTG), INTENT(OUT) :: ERR
2290  TYPE(varying_string), INTENT(OUT) :: ERROR
2291  !Local variables
2292  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
2293 
2294  ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_DP_DP",ERR,ERROR,*999)
2295 
2296  local_string=first_string//number_to_vstring(first_value,first_format,err,error)
2297  IF(err/=0) GOTO 999
2298  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
2299  local_string2=local_string//second_string
2300  local_string=local_string2//number_to_vstring(second_value,second_format,err,error)
2301  IF(err/=0) GOTO 999
2302  WRITE(op_string,'(A)') char(local_string)
2303  CALL write_str(id,err,error,*999)
2304 
2305 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_DP_DP")
2306  RETURN
2307 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_DP_DP",err,error)
2308 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_DP_DP")
2309  RETURN 1
2310  END SUBROUTINE write_string_fmt_two_value_dp_dp
2311 
2312  !
2313  !================================================================================================================================
2314  !
2315 
2317  SUBROUTINE write_string_fmt_two_value_dp_intg(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE, &
2318  & second_format,err,error,*)
2320  !Argument variables
2321  INTEGER(INTG), INTENT(IN) :: ID
2322  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2323  REAL(DP), INTENT(IN) :: FIRST_VALUE
2324  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2325  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2326  INTEGER(INTG), INTENT(IN) :: SECOND_VALUE
2327  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2328  INTEGER(INTG), INTENT(OUT) :: ERR
2329  TYPE(varying_string), INTENT(OUT) :: ERROR
2330  !Local variables
2331  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
2332 
2333 ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_DP_INTG",ERR,ERROR,*999)
2334 
2335  local_string=first_string//number_to_vstring(first_value,first_format,err,error)
2336  IF(err/=0) GOTO 999
2337  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
2338  local_string2=local_string//second_string
2339  local_string=local_string2//number_to_vstring(second_value,second_format,err,error)
2340  IF(err/=0) GOTO 999
2341  WRITE(op_string,'(A)') char(local_string)
2342  CALL write_str(id,err,error,*999)
2343 
2344 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_DP_INTG")
2345  RETURN
2346 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_DP_INTG",err,error)
2347 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_DP_INTG")
2348  RETURN 1
2349  END SUBROUTINE write_string_fmt_two_value_dp_intg
2350 
2351  !
2352  !================================================================================================================================
2353  !
2354 
2356  SUBROUTINE write_string_fmt_two_value_dp_l(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
2357  & err,error,*)
2359  !Argument variables
2360  INTEGER(INTG), INTENT(IN) :: ID
2361  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2362  REAL(DP), INTENT(IN) :: FIRST_VALUE
2363  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2364  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2365  LOGICAL, INTENT(IN) :: SECOND_VALUE
2366  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2367  INTEGER(INTG), INTENT(OUT) :: ERR
2368  TYPE(varying_string), INTENT(OUT) :: ERROR
2369  !Local variables
2370  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
2371 
2372 ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_DP_L",ERR,ERROR,*999)
2373 
2374  local_string=first_string//number_to_vstring(first_value,first_format,err,error)
2375  IF(err/=0) GOTO 999
2376  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
2377  local_string2=local_string//second_string
2378  local_string=local_string2//logical_to_vstring(second_value,err,error)
2379  WRITE(op_string,'(A)') char(local_string)
2380  CALL write_str(id,err,error,*999)
2381 
2382 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_DP_L")
2383  RETURN
2384 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_DP_L",err,error)
2385 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_DP_L")
2386  RETURN 1
2387  END SUBROUTINE write_string_fmt_two_value_dp_l
2388 
2389  !
2390  !================================================================================================================================
2391  !
2392 
2394  SUBROUTINE write_string_fmt_two_value_dp_sp(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
2395  & err,error,*)
2397  !Argument variables
2398  INTEGER(INTG), INTENT(IN) :: ID
2399  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2400  REAL(DP), INTENT(IN) :: FIRST_VALUE
2401  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2402  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2403  REAL(SP), INTENT(IN) :: SECOND_VALUE
2404  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2405  INTEGER(INTG), INTENT(OUT) :: ERR
2406  TYPE(varying_string), INTENT(OUT) :: ERROR
2407  !Local variables
2408  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
2409 
2410  ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_DP_SP",ERR,ERROR,*999)
2411 
2412  local_string=first_string//number_to_vstring(first_value,first_format,err,error)
2413  IF(err/=0) GOTO 999
2414  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
2415  local_string2=local_string//second_string
2416  local_string=local_string2//number_to_vstring(second_value,second_format,err,error)
2417  IF(err/=0) GOTO 999
2418  WRITE(op_string,'(A)') char(local_string)
2419  CALL write_str(id,err,error,*999)
2420 
2421 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_DP_SP")
2422  RETURN
2423 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_DP_SP",err,error)
2424 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_DP_SP")
2425  RETURN 1
2426  END SUBROUTINE write_string_fmt_two_value_dp_sp
2427 
2428  !
2429  !================================================================================================================================
2430  !
2431 
2433  SUBROUTINE write_string_fmt_two_value_dp_vs(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
2434  & err,error,*)
2436  !Argument variables
2437  INTEGER(INTG), INTENT(IN) :: ID
2438  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2439  REAL(DP), INTENT(IN) :: FIRST_VALUE
2440  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2441  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2442  TYPE(varying_string), INTENT(IN) :: SECOND_VALUE
2443  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2444  INTEGER(INTG), INTENT(OUT) :: ERR
2445  TYPE(varying_string), INTENT(OUT) :: ERROR
2446  !Local variables
2447  TYPE(varying_string) :: LOCAL_STRING
2448 
2449 ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_DP_VS",ERR,ERROR,*999)
2450 
2451  local_string=first_string//number_to_vstring(first_value,first_format,err,error)//second_string//second_value
2452  IF(err/=0) GOTO 999
2453  WRITE(op_string,'(A)') char(local_string)
2454  CALL write_str(id,err,error,*999)
2455 
2456 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_DP_VS")
2457  RETURN
2458 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_DP_VS",err,error)
2459 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_DP_VS")
2460  RETURN 1
2461  END SUBROUTINE write_string_fmt_two_value_dp_vs
2462 
2463  !
2464  !================================================================================================================================
2465  !
2466 
2468  SUBROUTINE write_string_fmt_two_value_intg_c(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
2469  & err,error,*)
2471  !Argument variables
2472  INTEGER(INTG), INTENT(IN) :: ID
2473  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2474  INTEGER(INTG), INTENT(IN) :: FIRST_VALUE
2475  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2476  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2477  CHARACTER(LEN=*), INTENT(IN) :: SECOND_VALUE
2478  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2479  INTEGER(INTG), INTENT(OUT) :: ERR
2480  TYPE(varying_string), INTENT(OUT) :: ERROR
2481  !Local variables
2482  TYPE(varying_string) :: LOCAL_STRING
2483 
2484 ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_INTG_C",ERR,ERROR,*999)
2485 
2486  local_string=first_string//number_to_vstring(first_value,first_format,err,error)//second_string//second_value
2487  IF(err/=0) GOTO 999
2488  WRITE(op_string,'(A)') char(local_string)
2489  CALL write_str(id,err,error,*999)
2490 
2491 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_INTG_C")
2492  RETURN
2493 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_INTG_C",err,error)
2494 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_INTG_C")
2495  RETURN 1
2496  END SUBROUTINE write_string_fmt_two_value_intg_c
2497 
2498  !
2499  !================================================================================================================================
2500  !
2501 
2503  SUBROUTINE write_string_fmt_two_value_intg_dp(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE, &
2504  & second_format,err,error,*)
2506  !Argument variables
2507  INTEGER(INTG), INTENT(IN) :: ID
2508  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2509  INTEGER(INTG), INTENT(IN) :: FIRST_VALUE
2510  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2511  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2512  REAL(DP), INTENT(IN) :: SECOND_VALUE
2513  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2514  INTEGER(INTG), INTENT(OUT) :: ERR
2515  TYPE(varying_string), INTENT(OUT) :: ERROR
2516  !Local variables
2517  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
2518 
2519  ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_INTG_DP",ERR,ERROR,*999)
2520 
2521  local_string=first_string//number_to_vstring(first_value,first_format,err,error)
2522  IF(err/=0) GOTO 999
2523  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
2524  local_string2=local_string//second_string
2525  local_string=local_string2//number_to_vstring(second_value,second_format,err,error)
2526  IF(err/=0) GOTO 999
2527  WRITE(op_string,'(A)') char(local_string)
2528  CALL write_str(id,err,error,*999)
2529 
2530 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_INTG_DP")
2531  RETURN
2532 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_INTG_DP",err,error)
2533 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_INTG_DP")
2534  RETURN 1
2535  END SUBROUTINE write_string_fmt_two_value_intg_dp
2536 
2537  !
2538  !================================================================================================================================
2539  !
2540 
2542  SUBROUTINE write_string_fmt_two_value_intg_intg(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE, &
2543  & second_format,err,error,*)
2545  !Argument variables
2546  INTEGER(INTG), INTENT(IN) :: ID
2547  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2548  INTEGER(INTG), INTENT(IN) :: FIRST_VALUE
2549  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2550  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2551  INTEGER(INTG), INTENT(IN) :: SECOND_VALUE
2552  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2553  INTEGER(INTG), INTENT(OUT) :: ERR
2554  TYPE(varying_string), INTENT(OUT) :: ERROR
2555  !Local variables
2556  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
2557 
2558 ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_INTG_INTG",ERR,ERROR,*999)
2559 
2560  local_string=first_string//number_to_vstring(first_value,first_format,err,error)
2561  IF(err/=0) GOTO 999
2562  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
2563  local_string2=local_string//second_string
2564  local_string=local_string2//number_to_vstring(second_value,second_format,err,error)
2565  IF(err/=0) GOTO 999
2566  WRITE(op_string,'(A)') char(local_string)
2567  CALL write_str(id,err,error,*999)
2568 
2569 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_INTG_INTG")
2570  RETURN
2571 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_INTG_INTG",err,error)
2572 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_INTG_INTG")
2573  RETURN 1
2575 
2576  !
2577  !================================================================================================================================
2578  !
2579 
2581  SUBROUTINE write_string_fmt_two_value_intg_l(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
2582  & err,error,*)
2584  !Argument variables
2585  INTEGER(INTG), INTENT(IN) :: ID
2586  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2587  INTEGER(INTG), INTENT(IN) :: FIRST_VALUE
2588  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2589  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2590  LOGICAL, INTENT(IN) :: SECOND_VALUE
2591  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2592  INTEGER(INTG), INTENT(OUT) :: ERR
2593  TYPE(varying_string), INTENT(OUT) :: ERROR
2594  !Local variables
2595  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
2596 
2597 ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_INTG_L",ERR,ERROR,*999)
2598 
2599  local_string=first_string//number_to_vstring(first_value,first_format,err,error)
2600  IF(err/=0) GOTO 999
2601  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
2602  local_string2=local_string//second_string
2603  local_string=local_string2//logical_to_vstring(second_value,err,error)
2604  WRITE(op_string,'(A)') char(local_string)
2605  CALL write_str(id,err,error,*999)
2606 
2607 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_INTG_L")
2608  RETURN
2609 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_INTG_L",err,error)
2610 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_INTG_L")
2611  RETURN 1
2612  END SUBROUTINE write_string_fmt_two_value_intg_l
2613 
2614  !
2615  !================================================================================================================================
2616  !
2617 
2619  SUBROUTINE write_string_fmt_two_value_intg_sp(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE, &
2620  & second_format,err,error,*)
2622  !Argument variables
2623  INTEGER(INTG), INTENT(IN) :: ID
2624  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2625  INTEGER(INTG), INTENT(IN) :: FIRST_VALUE
2626  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2627  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2628  REAL(SP), INTENT(IN) :: SECOND_VALUE
2629  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2630  INTEGER(INTG), INTENT(OUT) :: ERR
2631  TYPE(varying_string), INTENT(OUT) :: ERROR
2632  !Local variables
2633  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
2634 
2635  ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_INTG_SP",ERR,ERROR,*999)
2636 
2637  local_string=first_string//number_to_vstring(first_value,first_format,err,error)
2638  IF(err/=0) GOTO 999
2639  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
2640  local_string2=local_string//second_string
2641  local_string=local_string2//number_to_vstring(second_value,second_format,err,error)
2642  IF(err/=0) GOTO 999
2643  WRITE(op_string,'(A)') char(local_string)
2644  CALL write_str(id,err,error,*999)
2645 
2646 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_INTG_SP")
2647  RETURN
2648 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_INTG_SP",err,error)
2649 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_INTG_SP")
2650  RETURN 1
2651  END SUBROUTINE write_string_fmt_two_value_intg_sp
2652 
2653  !
2654  !================================================================================================================================
2655  !
2656 
2658  SUBROUTINE write_string_fmt_two_value_intg_vs(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE, &
2659  & second_format,err,error,*)
2661  !Argument variables
2662  INTEGER(INTG), INTENT(IN) :: ID
2663  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2664  INTEGER(INTG), INTENT(IN) :: FIRST_VALUE
2665  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2666  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2667  TYPE(varying_string), INTENT(IN) :: SECOND_VALUE
2668  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2669  INTEGER(INTG), INTENT(OUT) :: ERR
2670  TYPE(varying_string), INTENT(OUT) :: ERROR
2671  !Local variables
2672  TYPE(varying_string) :: LOCAL_STRING
2673 
2674 ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_INTG_VS",ERR,ERROR,*999)
2675 
2676  local_string=first_string//number_to_vstring(first_value,first_format,err,error)//second_string//second_value
2677  IF(err/=0) GOTO 999
2678  WRITE(op_string,'(A)') char(local_string)
2679  CALL write_str(id,err,error,*999)
2680 
2681 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_INTG_VS")
2682  RETURN
2683 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_INTG_VS",err,error)
2684 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_INTG_VS")
2685  RETURN 1
2686  END SUBROUTINE write_string_fmt_two_value_intg_vs
2687 
2688  !
2689  !================================================================================================================================
2690  !
2691 
2693  SUBROUTINE write_string_fmt_two_value_l_c(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
2694  & err,error,*)
2696  !Argument variables
2697  INTEGER(INTG), INTENT(IN) :: ID
2698  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2699  LOGICAL, INTENT(IN) :: FIRST_VALUE
2700  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2701  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2702  CHARACTER(LEN=*), INTENT(IN) :: SECOND_VALUE
2703  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2704  INTEGER(INTG), INTENT(OUT) :: ERR
2705  TYPE(varying_string), INTENT(OUT) :: ERROR
2706  !Local variables
2707  TYPE(varying_string) :: LOCAL_STRING
2708 
2709 ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_L_C",ERR,ERROR,*999)
2710 
2711  local_string=first_string//logical_to_vstring(first_value,err,error)//second_string//second_value
2712  IF(err/=0) GOTO 999
2713  WRITE(op_string,'(A)') char(local_string)
2714  CALL write_str(id,err,error,*999)
2715 
2716 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_L_C")
2717  RETURN
2718 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_L_C",err,error)
2719 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_L_C")
2720  RETURN 1
2721  END SUBROUTINE write_string_fmt_two_value_l_c
2722 
2723  !
2724  !================================================================================================================================
2725  !
2726 
2728  SUBROUTINE write_string_fmt_two_value_l_dp(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
2729  & err,error,*)
2731  !Argument variables
2732  INTEGER(INTG), INTENT(IN) :: ID
2733  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2734  LOGICAL, INTENT(IN) :: FIRST_VALUE
2735  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2736  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2737  REAL(DP), INTENT(IN) :: SECOND_VALUE
2738  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2739  INTEGER(INTG), INTENT(OUT) :: ERR
2740  TYPE(varying_string), INTENT(OUT) :: ERROR
2741  !Local variables
2742  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
2743 
2744  ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_L_DP",ERR,ERROR,*999)
2745 
2746  local_string=first_string//logical_to_vstring(first_value,err,error)
2747  IF(err/=0) GOTO 999
2748  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
2749  local_string2=local_string//second_string
2750  local_string=local_string2//number_to_vstring(second_value,second_format,err,error)
2751  IF(err/=0) GOTO 999
2752  WRITE(op_string,'(A)') char(local_string)
2753  CALL write_str(id,err,error,*999)
2754 
2755 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_L_DP")
2756  RETURN
2757 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_L_DP",err,error)
2758 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_L_DP")
2759  RETURN 1
2760  END SUBROUTINE write_string_fmt_two_value_l_dp
2761 
2762  !
2763  !================================================================================================================================
2764  !
2765 
2767  SUBROUTINE write_string_fmt_two_value_l_intg(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
2768  & err,error,*)
2770  !Argument variables
2771  INTEGER(INTG), INTENT(IN) :: ID
2772  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2773  LOGICAL, INTENT(IN) :: FIRST_VALUE
2774  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2775  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2776  INTEGER(INTG), INTENT(IN) :: SECOND_VALUE
2777  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2778  INTEGER(INTG), INTENT(OUT) :: ERR
2779  TYPE(varying_string), INTENT(OUT) :: ERROR
2780  !Local variables
2781  TYPE(varying_string) :: LOCAL_STRING
2782 
2783 ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_L_INTG",ERR,ERROR,*999)
2784 
2785  local_string=first_string//logical_to_vstring(first_value,err,error)
2786  IF(err/=0) GOTO 999
2787  local_string=local_string//second_string//number_to_vstring(second_value,second_format,err,error)
2788  IF(err/=0) GOTO 999
2789  WRITE(op_string,'(A)') char(local_string)
2790  CALL write_str(id,err,error,*999)
2791 
2792 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_L_INTG")
2793  RETURN
2794 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_L_INTG",err,error)
2795 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_L_INTG")
2796  RETURN 1
2797  END SUBROUTINE write_string_fmt_two_value_l_intg
2798 
2799  !
2800  !================================================================================================================================
2801  !
2802 
2804  SUBROUTINE write_string_fmt_two_value_l_l(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
2805  & err,error,*)
2807  !Argument variables
2808  INTEGER(INTG), INTENT(IN) :: ID
2809  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2810  LOGICAL, INTENT(IN) :: FIRST_VALUE
2811  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2812  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2813  LOGICAL, INTENT(IN) :: SECOND_VALUE
2814  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2815  INTEGER(INTG), INTENT(OUT) :: ERR
2816  TYPE(varying_string), INTENT(OUT) :: ERROR
2817  !Local variables
2818  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
2819 
2820 ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_L_L",ERR,ERROR,*999)
2821 
2822  local_string=first_string//logical_to_vstring(first_value,err,error)
2823  IF(err/=0) GOTO 999
2824  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
2825  local_string2=local_string//second_string
2826  local_string=local_string2//logical_to_vstring(second_value,err,error)
2827  WRITE(op_string,'(A)') char(local_string)
2828  CALL write_str(id,err,error,*999)
2829 
2830 ! EXITS("WRITE_STRING_TWO_L_INTG_L")
2831  RETURN
2832 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_L_L",err,error)
2833 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_L_L")
2834  RETURN 1
2835  END SUBROUTINE write_string_fmt_two_value_l_l
2836 
2837  !
2838  !================================================================================================================================
2839  !
2840 
2842  SUBROUTINE write_string_fmt_two_value_l_sp(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
2843  & err,error,*)
2845  !Argument variables
2846  INTEGER(INTG), INTENT(IN) :: ID
2847  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2848  LOGICAL, INTENT(IN) :: FIRST_VALUE
2849  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2850  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2851  REAL(SP), INTENT(IN) :: SECOND_VALUE
2852  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2853  INTEGER(INTG), INTENT(OUT) :: ERR
2854  TYPE(varying_string), INTENT(OUT) :: ERROR
2855  !Local variables
2856  TYPE(varying_string) :: LOCAL_STRING
2857 
2858  ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_L_SP",ERR,ERROR,*999)
2859 
2860  local_string=first_string//logical_to_vstring(first_value,err,error)
2861  IF(err/=0) GOTO 999
2862  local_string=local_string//second_string//number_to_vstring(second_value,second_format,err,error)
2863  IF(err/=0) GOTO 999
2864  WRITE(op_string,'(A)') char(local_string)
2865  CALL write_str(id,err,error,*999)
2866 
2867 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_L_SP")
2868  RETURN
2869 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_L_SP",err,error)
2870 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_L_SP")
2871  RETURN 1
2872  END SUBROUTINE write_string_fmt_two_value_l_sp
2873 
2874  !
2875  !================================================================================================================================
2876  !
2877 
2879  SUBROUTINE write_string_fmt_two_value_l_vs(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
2880  & err,error,*)
2882  !Argument variables
2883  INTEGER(INTG), INTENT(IN) :: ID
2884  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2885  LOGICAL, INTENT(IN) :: FIRST_VALUE
2886  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2887  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2888  TYPE(varying_string), INTENT(IN) :: SECOND_VALUE
2889  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2890  INTEGER(INTG), INTENT(OUT) :: ERR
2891  TYPE(varying_string), INTENT(OUT) :: ERROR
2892  !Local variables
2893  TYPE(varying_string) :: LOCAL_STRING
2894 
2895 ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_L_VS",ERR,ERROR,*999)
2896 
2897  local_string=first_string//logical_to_vstring(first_value,err,error)//second_string//second_value
2898  IF(err/=0) GOTO 999
2899  WRITE(op_string,'(A)') char(local_string)
2900  CALL write_str(id,err,error,*999)
2901 
2902 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_L_VS")
2903  RETURN
2904 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_L_VS",err,error)
2905 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_L_VS")
2906  RETURN 1
2907  END SUBROUTINE write_string_fmt_two_value_l_vs
2908 
2909  !
2910  !================================================================================================================================
2911  !
2912 
2914  SUBROUTINE write_string_fmt_two_value_sp_c(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
2915  & err,error,*)
2917  !Argument variables
2918  INTEGER(INTG), INTENT(IN) :: ID
2919  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2920  REAL(SP), INTENT(IN) :: FIRST_VALUE
2921  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2922  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2923  CHARACTER(LEN=*), INTENT(IN) :: SECOND_VALUE
2924  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2925  INTEGER(INTG), INTENT(OUT) :: ERR
2926  TYPE(varying_string), INTENT(OUT) :: ERROR
2927  !Local variables
2928  TYPE(varying_string) :: LOCAL_STRING
2929 
2930 ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_SP_C",ERR,ERROR,*999)
2931 
2932  local_string=first_string//number_to_vstring(first_value,first_format,err,error)//second_string//second_value
2933  IF(err/=0) GOTO 999
2934  WRITE(op_string,'(A)') char(local_string)
2935  CALL write_str(id,err,error,*999)
2936 
2937 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_SP_C")
2938  RETURN
2939 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_SP_C",err,error)
2940 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_SP_C")
2941  RETURN 1
2942  END SUBROUTINE write_string_fmt_two_value_sp_c
2943 
2944  !
2945  !================================================================================================================================
2946  !
2947 
2949  SUBROUTINE write_string_fmt_two_value_sp_dp(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
2950  & err,error,*)
2952  !Argument variables
2953  INTEGER(INTG), INTENT(IN) :: ID
2954  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2955  REAL(SP), INTENT(IN) :: FIRST_VALUE
2956  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2957  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2958  REAL(DP), INTENT(IN) :: SECOND_VALUE
2959  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2960  INTEGER(INTG), INTENT(OUT) :: ERR
2961  TYPE(varying_string), INTENT(OUT) :: ERROR
2962  !Local variables
2963  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
2964 
2965  ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_SP_DP",ERR,ERROR,*999)
2966 
2967  local_string=first_string//number_to_vstring(first_value,first_format,err,error)
2968  IF(err/=0) GOTO 999
2969  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
2970  local_string2=local_string//second_string
2971  local_string=local_string2//number_to_vstring(second_value,second_format,err,error)
2972  IF(err/=0) GOTO 999
2973  WRITE(op_string,'(A)') char(local_string)
2974  CALL write_str(id,err,error,*999)
2975 
2976 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_SP_DP")
2977  RETURN
2978 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_SP_DP",err,error)
2979 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_SP_DP")
2980  RETURN 1
2981  END SUBROUTINE write_string_fmt_two_value_sp_dp
2982 
2983  !
2984  !================================================================================================================================
2985  !
2986 
2988  SUBROUTINE write_string_fmt_two_value_sp_intg(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE, &
2989  & second_format,err,error,*)
2991  !Argument variables
2992  INTEGER(INTG), INTENT(IN) :: ID
2993  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
2994  REAL(SP), INTENT(IN) :: FIRST_VALUE
2995  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
2996  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
2997  INTEGER(INTG), INTENT(IN) :: SECOND_VALUE
2998  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
2999  INTEGER(INTG), INTENT(OUT) :: ERR
3000  TYPE(varying_string), INTENT(OUT) :: ERROR
3001  !Local variables
3002  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
3003 
3004 ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_SP_INTG",ERR,ERROR,*999)
3005 
3006  local_string=first_string//number_to_vstring(first_value,first_format,err,error)
3007  IF(err/=0) GOTO 999
3008  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
3009  local_string2=local_string//second_string
3010  local_string=local_string2//number_to_vstring(second_value,second_format,err,error)
3011  IF(err/=0) GOTO 999
3012  WRITE(op_string,'(A)') char(local_string)
3013  CALL write_str(id,err,error,*999)
3014 
3015 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_SP_INTG")
3016  RETURN
3017 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_SP_INTG",err,error)
3018 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_SP_INTG")
3019  RETURN 1
3020  END SUBROUTINE write_string_fmt_two_value_sp_intg
3021 
3022  !
3023  !================================================================================================================================
3024  !
3025 
3027  SUBROUTINE write_string_fmt_two_value_sp_l(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
3028  & err,error,*)
3030  !Argument variables
3031  INTEGER(INTG), INTENT(IN) :: ID
3032  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
3033  REAL(SP), INTENT(IN) :: FIRST_VALUE
3034  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
3035  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
3036  LOGICAL, INTENT(IN) :: SECOND_VALUE
3037  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
3038  INTEGER(INTG), INTENT(OUT) :: ERR
3039  TYPE(varying_string), INTENT(OUT) :: ERROR
3040  !Local variables
3041  TYPE(varying_string) :: LOCAL_STRING
3042 
3043 ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_SP_L",ERR,ERROR,*999)
3044 
3045  local_string=first_string//number_to_vstring(first_value,first_format,err,error)
3046  IF(err/=0) GOTO 999
3047  local_string=local_string//second_string//logical_to_vstring(second_value,err,error)
3048  WRITE(op_string,'(A)') char(local_string)
3049  CALL write_str(id,err,error,*999)
3050 
3051 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_SP_L")
3052  RETURN
3053 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_SP_L",err,error)
3054 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_SP_L")
3055  RETURN 1
3056  END SUBROUTINE write_string_fmt_two_value_sp_l
3057 
3058  !
3059  !================================================================================================================================
3060  !
3061 
3063  SUBROUTINE write_string_fmt_two_value_sp_sp(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
3064  & err,error,*)
3066  !Argument variables
3067  INTEGER(INTG), INTENT(IN) :: ID
3068  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
3069  REAL(SP), INTENT(IN) :: FIRST_VALUE
3070  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
3071  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
3072  REAL(SP), INTENT(IN) :: SECOND_VALUE
3073  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
3074  INTEGER(INTG), INTENT(OUT) :: ERR
3075  TYPE(varying_string), INTENT(OUT) :: ERROR
3076  !Local variables
3077  TYPE(varying_string) :: LOCAL_STRING,LOCAL_STRING2
3078 
3079  ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_SP_SP",ERR,ERROR,*999)
3080 
3081  local_string=first_string//number_to_vstring(first_value,first_format,err,error)
3082  IF(err/=0) GOTO 999
3083  !CPB 21/02/2007 AIX doesn't like concatenating vstrings and reassigning to itself so split this into two steps
3084  local_string2=local_string//second_string
3085  local_string=local_string2//number_to_vstring(second_value,second_format,err,error)
3086  IF(err/=0) GOTO 999
3087  WRITE(op_string,'(A)') char(local_string)
3088  CALL write_str(id,err,error,*999)
3089 
3090 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_SP_SP")
3091  RETURN
3092 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_SP_SP",err,error)
3093 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_SP_SP")
3094  RETURN 1
3095  END SUBROUTINE write_string_fmt_two_value_sp_sp
3096 
3097  !
3098  !================================================================================================================================
3099  !
3100 
3102  SUBROUTINE write_string_fmt_two_value_sp_vs(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
3103  & err,error,*)
3105  !Argument variables
3106  INTEGER(INTG), INTENT(IN) :: ID
3107  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
3108  REAL(SP), INTENT(IN) :: FIRST_VALUE
3109  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
3110  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
3111  TYPE(varying_string), INTENT(IN) :: SECOND_VALUE
3112  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
3113  INTEGER(INTG), INTENT(OUT) :: ERR
3114  TYPE(varying_string), INTENT(OUT) :: ERROR
3115  !Local variables
3116  TYPE(varying_string) :: LOCAL_STRING
3117 
3118 ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_SP_VS",ERR,ERROR,*999)
3119 
3120  local_string=first_string//number_to_vstring(first_value,first_format,err,error)//second_string//second_value
3121  IF(err/=0) GOTO 999
3122  WRITE(op_string,'(A)') char(local_string)
3123  CALL write_str(id,err,error,*999)
3124 
3125 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_SP_VS")
3126  RETURN
3127 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_SP_VS",err,error)
3128 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_SP_VS")
3129  RETURN 1
3130  END SUBROUTINE write_string_fmt_two_value_sp_vs
3131 
3132  !
3133  !================================================================================================================================
3134  !
3135 
3137  SUBROUTINE write_string_fmt_two_value_vs_c(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
3138  & err,error,*)
3140  !Argument variables
3141  INTEGER(INTG), INTENT(IN) :: ID
3142  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
3143  TYPE(varying_string), INTENT(IN) :: FIRST_VALUE
3144  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
3145  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
3146  CHARACTER(LEN=*), INTENT(IN) :: SECOND_VALUE
3147  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
3148  INTEGER(INTG), INTENT(OUT) :: ERR
3149  TYPE(varying_string), INTENT(OUT) :: ERROR
3150  !Local variables
3151  TYPE(varying_string) :: LOCAL_STRING
3152 
3153 ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_VS_C",ERR,ERROR,*999)
3154 
3155  local_string=first_string//first_value//second_string//second_value
3156  WRITE(op_string,'(A)') char(local_string)
3157  CALL write_str(id,err,error,*999)
3158 
3159 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_VS_C")
3160  RETURN
3161 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_VS_C",err,error)
3162 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_VS_C")
3163  RETURN 1
3164  END SUBROUTINE write_string_fmt_two_value_vs_c
3165 
3166  !
3167  !================================================================================================================================
3168  !
3169 
3171  SUBROUTINE write_string_fmt_two_value_vs_dp(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
3172  & err,error,*)
3174  !Argument variables
3175  INTEGER(INTG), INTENT(IN) :: ID
3176  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
3177  TYPE(varying_string), INTENT(IN) :: FIRST_VALUE
3178  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
3179  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
3180  REAL(DP), INTENT(IN) :: SECOND_VALUE
3181  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
3182  INTEGER(INTG), INTENT(OUT) :: ERR
3183  TYPE(varying_string), INTENT(OUT) :: ERROR
3184  !Local variables
3185  TYPE(varying_string) :: LOCAL_STRING
3186 
3187  ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_VS_DP",ERR,ERROR,*999)
3188 
3189  local_string=first_string//first_value//second_string//number_to_vstring(second_value,second_format,err,error)
3190  IF(err/=0) GOTO 999
3191  WRITE(op_string,'(A)') char(local_string)
3192  CALL write_str(id,err,error,*999)
3193 
3194 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_VS_DP")
3195  RETURN
3196 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_VS_DP",err,error)
3197 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_VS_DP")
3198  RETURN 1
3199  END SUBROUTINE write_string_fmt_two_value_vs_dp
3200 
3201  !
3202  !================================================================================================================================
3203  !
3204 
3206  SUBROUTINE write_string_fmt_two_value_vs_intg(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE, &
3207  & second_format,err,error,*)
3209  !Argument variables
3210  INTEGER(INTG), INTENT(IN) :: ID
3211  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
3212  TYPE(varying_string), INTENT(IN) :: FIRST_VALUE
3213  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
3214  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
3215  INTEGER(INTG), INTENT(IN) :: SECOND_VALUE
3216  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
3217  INTEGER(INTG), INTENT(OUT) :: ERR
3218  TYPE(varying_string), INTENT(OUT) :: ERROR
3219  !Local variables
3220  TYPE(varying_string) :: LOCAL_STRING
3221 
3222 ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_VS_INTG",ERR,ERROR,*999)
3223 
3224  local_string=first_string//first_value//second_string//number_to_vstring(second_value,second_format,err,error)
3225  IF(err/=0) GOTO 999
3226  WRITE(op_string,'(A)') char(local_string)
3227  CALL write_str(id,err,error,*999)
3228 
3229 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_VS_INTG")
3230  RETURN
3231 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_VS_INTG",err,error)
3232 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_VS_INTG")
3233  RETURN 1
3234  END SUBROUTINE write_string_fmt_two_value_vs_intg
3235 
3236  !
3237  !================================================================================================================================
3238  !
3239 
3241  SUBROUTINE write_string_fmt_two_value_vs_l(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
3242  & err,error,*)
3244  !Argument variables
3245  INTEGER(INTG), INTENT(IN) :: ID
3246  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
3247  TYPE(varying_string), INTENT(IN) :: FIRST_VALUE
3248  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
3249  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
3250  LOGICAL, INTENT(IN) :: SECOND_VALUE
3251  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
3252  INTEGER(INTG), INTENT(OUT) :: ERR
3253  TYPE(varying_string), INTENT(OUT) :: ERROR
3254  !Local variables
3255  TYPE(varying_string) :: LOCAL_STRING
3256 
3257 ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_VS_L",ERR,ERROR,*999)
3258 
3259  local_string=first_string//first_value//second_string//logical_to_vstring(second_value,err,error)
3260  WRITE(op_string,'(A)') char(local_string)
3261  CALL write_str(id,err,error,*999)
3262 
3263 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_VS_L")
3264  RETURN
3265 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_VS_L",err,error)
3266 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_VS_L")
3267  RETURN 1
3268  END SUBROUTINE write_string_fmt_two_value_vs_l
3269 
3270  !
3271  !================================================================================================================================
3272  !
3273 
3275  SUBROUTINE write_string_fmt_two_value_vs_sp(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
3276  & err,error,*)
3278  !Argument variables
3279  INTEGER(INTG), INTENT(IN) :: ID
3280  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
3281  TYPE(varying_string), INTENT(IN) :: FIRST_VALUE
3282  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
3283  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
3284  REAL(SP), INTENT(IN) :: SECOND_VALUE
3285  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
3286  INTEGER(INTG), INTENT(OUT) :: ERR
3287  TYPE(varying_string), INTENT(OUT) :: ERROR
3288  !Local variables
3289  TYPE(varying_string) :: LOCAL_STRING
3290 
3291  ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_VS_SP",ERR,ERROR,*999)
3292 
3293  local_string=first_string//first_value//second_string//number_to_vstring(second_value,second_format,err,error)
3294  IF(err/=0) GOTO 999
3295  WRITE(op_string,'(A)') char(local_string)
3296  CALL write_str(id,err,error,*999)
3297 
3298 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_VS_SP")
3299  RETURN
3300 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_VS_SP",err,error)
3301 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_VS_SP")
3302  RETURN 1
3303  END SUBROUTINE write_string_fmt_two_value_vs_sp
3304 
3305  !
3306  !================================================================================================================================
3307  !
3308 
3310  SUBROUTINE write_string_fmt_two_value_vs_vs(ID,FIRST_STRING,FIRST_VALUE,FIRST_FORMAT,SECOND_STRING,SECOND_VALUE,SECOND_FORMAT, &
3311  & err,error,*)
3313  !Argument variables
3314  INTEGER(INTG), INTENT(IN) :: ID
3315  CHARACTER(LEN=*), INTENT(IN) :: FIRST_STRING
3316  TYPE(varying_string), INTENT(IN) :: FIRST_VALUE
3317  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
3318  CHARACTER(LEN=*), INTENT(IN) :: SECOND_STRING
3319  TYPE(varying_string), INTENT(IN) :: SECOND_VALUE
3320  CHARACTER(LEN=*), INTENT(IN) :: SECOND_FORMAT
3321  INTEGER(INTG), INTENT(OUT) :: ERR
3322  TYPE(varying_string), INTENT(OUT) :: ERROR
3323  !Local variables
3324  TYPE(varying_string) :: LOCAL_STRING
3325 
3326 ! ENTERS("WRITE_STRING_FMT_TWO_VALUE_VS_VS",ERR,ERROR,*999)
3327 
3328  local_string=first_string//first_value//second_string//second_value
3329  WRITE(op_string,'(A)') char(local_string)
3330  CALL write_str(id,err,error,*999)
3331 
3332 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_VS_VS")
3333  RETURN
3334 999 errorsexits("WRITE_STRING_FMT_TWO_VALUE_VS_VS",err,error)
3335 ! EXITS("WRITE_STRING_FMT_TWO_VALUE_VS_VS")
3336  RETURN 1
3337  END SUBROUTINE write_string_fmt_two_value_vs_vs
3338 
3339  !
3340  !================================================================================================================================
3341  !
3342 
3344  SUBROUTINE write_string_vector_dp(ID,FIRST_IDX,DELTA,LAST_IDX,NUMBER_FIRST,NUMBER_REPEAT,VECTOR,FIRST_FORMAT,REPEAT_FORMAT, &
3345  & err,error,*)
3347  !Argument variables
3348  INTEGER(INTG), INTENT(IN) :: ID
3349  INTEGER(INTG), INTENT(IN) :: FIRST_IDX
3350  INTEGER(INTG), INTENT(IN) :: DELTA
3351  INTEGER(INTG), INTENT(IN) :: LAST_IDX
3352  INTEGER(INTG), INTENT(IN) :: NUMBER_FIRST
3353  INTEGER(INTG), INTENT(IN) :: NUMBER_REPEAT
3354  REAL(DP), INTENT(IN) :: VECTOR(:)
3355  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
3356  CHARACTER(LEN=*), INTENT(IN) :: REPEAT_FORMAT
3357  INTEGER(INTG), INTENT(OUT) :: ERR
3358  TYPE(varying_string), INTENT(OUT) :: ERROR
3359  !Local variables
3360  INTEGER(INTG) :: current,final,count
3361 
3362 ! ENTERS("WRITE_STRING_VECTOR_DP",ERR,ERROR,*999)
3363 
3364  current=first_idx
3365  final=current+(number_first-1)*delta
3366  IF(final>last_idx) final=last_idx
3367 
3368  WRITE(op_string,fmt=first_format) (vector(count),count=current,final,delta)
3369  CALL write_str(id,err,error,*999)
3370  DO WHILE(final<last_idx) !more stuff to do
3371  current=final+delta
3372  final=final+number_repeat*delta
3373  IF(final>last_idx) final=last_idx
3374  WRITE(op_string,fmt=repeat_format) (vector(count),count=current,final,delta)
3375  CALL write_str(id,err,error,*999)
3376  ENDDO !final<LAST_IDX
3377 
3378 ! EXITS("WRITE_STRING_VECTOR_DP")
3379  RETURN
3380 999 errorsexits("WRITE_STRING_VECTOR_DP",err,error)
3381 ! EXITS("WRITE_STRING_VECTOR_DP")
3382  RETURN 1
3383  END SUBROUTINE write_string_vector_dp
3384 
3385  !
3386  !================================================================================================================================
3387  !
3388 
3390  SUBROUTINE write_string_vector_intg(ID,FIRST_IDX,DELTA,LAST_IDX,NUMBER_FIRST,NUMBER_REPEAT,VECTOR,FIRST_FORMAT,REPEAT_FORMAT, &
3391  & err,error,*)
3393  !Argument variables
3394  INTEGER(INTG), INTENT(IN) :: ID
3395  INTEGER(INTG), INTENT(IN) :: FIRST_IDX
3396  INTEGER(INTG), INTENT(IN) :: DELTA
3397  INTEGER(INTG), INTENT(IN) :: LAST_IDX
3398  INTEGER(INTG), INTENT(IN) :: NUMBER_FIRST
3399  INTEGER(INTG), INTENT(IN) :: NUMBER_REPEAT
3400  INTEGER(INTG), INTENT(IN) :: VECTOR(:)
3401  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
3402  CHARACTER(LEN=*), INTENT(IN) :: REPEAT_FORMAT
3403  INTEGER(INTG), INTENT(OUT) :: ERR
3404  TYPE(varying_string), INTENT(OUT) :: ERROR
3405  !Local variables
3406  INTEGER(INTG) :: current,final,count
3407 
3408 ! ENTERS("WRITE_STRING_VECTOR_INTG",ERR,ERROR,*999)
3409 
3410  current=first_idx
3411  final=current+(number_first-1)*delta
3412  IF(final>last_idx) final=last_idx
3413  WRITE(op_string,fmt=first_format) (vector(count),count=current,final,delta)
3414  CALL write_str(id,err,error,*999)
3415  DO WHILE(final<last_idx) !more stuff to do
3416  current=final+delta
3417  final=final+number_repeat*delta
3418  IF(final>last_idx) final=last_idx
3419  WRITE(op_string,fmt=repeat_format) (vector(count),count=current,final,delta)
3420  CALL write_str(id,err,error,*999)
3421  ENDDO !final<LAST_IDX
3422 
3423 ! EXITS("WRITE_STRING_VECTOR_INTG")
3424  RETURN
3425 999 errorsexits("WRITE_STRING_VECTOR_INTG",err,error)
3426 ! EXITS("WRITE_STRING_VECTOR_INTG")
3427  RETURN 1
3428  END SUBROUTINE write_string_vector_intg
3429 
3430  !
3431  !================================================================================================================================
3432  !
3433 
3435  SUBROUTINE write_string_vector_lintg(ID,FIRST_IDX,DELTA,LAST_IDX,NUMBER_FIRST,NUMBER_REPEAT,VECTOR,FIRST_FORMAT,REPEAT_FORMAT, &
3436  & err,error,*)
3438  !Argument variables
3439  INTEGER(INTG), INTENT(IN) :: ID
3440  INTEGER(INTG), INTENT(IN) :: FIRST_IDX
3441  INTEGER(INTG), INTENT(IN) :: DELTA
3442  INTEGER(INTG), INTENT(IN) :: LAST_IDX
3443  INTEGER(INTG), INTENT(IN) :: NUMBER_FIRST
3444  INTEGER(INTG), INTENT(IN) :: NUMBER_REPEAT
3445  INTEGER(LINTG), INTENT(IN) :: VECTOR(:)
3446  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
3447  CHARACTER(LEN=*), INTENT(IN) :: REPEAT_FORMAT
3448  INTEGER(INTG), INTENT(OUT) :: ERR
3449  TYPE(varying_string), INTENT(OUT) :: ERROR
3450  !Local variables
3451  INTEGER(INTG) :: current,final,count
3452 
3453 ! ENTERS("WRITE_STRING_VECTOR_LINTG",ERR,ERROR,*999)
3454 
3455  current=first_idx
3456  final=current+(number_first-1)*delta
3457  IF(final>last_idx) final=last_idx
3458  WRITE(op_string,fmt=first_format) (vector(count),count=current,final,delta)
3459  CALL write_str(id,err,error,*999)
3460  DO WHILE(final<last_idx) !more stuff to do
3461  current=final+delta
3462  final=final+number_repeat*delta
3463  IF(final>last_idx) final=last_idx
3464  WRITE(op_string,fmt=repeat_format) (vector(count),count=current,final,delta)
3465  CALL write_str(id,err,error,*999)
3466  ENDDO !final<LAST_IDX
3467 
3468 ! EXITS("WRITE_STRING_VECTOR_LINTG")
3469  RETURN
3470 999 errorsexits("WRITE_STRING_VECTOR_LINTG",err,error)
3471 ! EXITS("WRITE_STRING_VECTOR_LINTG")
3472  RETURN 1
3473  END SUBROUTINE write_string_vector_lintg
3474 
3475  !
3476  !================================================================================================================================
3477  !
3478 
3480  SUBROUTINE write_string_vector_l(ID,FIRST_IDX,DELTA,LAST_IDX,NUMBER_FIRST,NUMBER_REPEAT,VECTOR,FIRST_FORMAT,REPEAT_FORMAT, &
3481  & err,error,*)
3483  !Argument variables
3484  INTEGER(INTG), INTENT(IN) :: ID
3485  INTEGER(INTG), INTENT(IN) :: FIRST_IDX
3486  INTEGER(INTG), INTENT(IN) :: DELTA
3487  INTEGER(INTG), INTENT(IN) :: LAST_IDX
3488  INTEGER(INTG), INTENT(IN) :: NUMBER_FIRST
3489  INTEGER(INTG), INTENT(IN) :: NUMBER_REPEAT
3490  LOGICAL, INTENT(IN) :: VECTOR(:)
3491  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
3492  CHARACTER(LEN=*), INTENT(IN) :: REPEAT_FORMAT
3493  INTEGER(INTG), INTENT(OUT) :: ERR
3494  TYPE(varying_string), INTENT(OUT) :: ERROR
3495  !Local variables
3496  INTEGER(INTG) :: current,final,count
3497 
3498 ! ENTERS("WRITE_STRING_VECTOR_L",ERR,ERROR,*999)
3499 
3500  current=first_idx
3501  final=current+(number_first-1)*delta
3502  IF(final>last_idx) final=last_idx
3503  WRITE(op_string,fmt=first_format) (vector(count),count=current,final,delta)
3504  CALL write_str(id,err,error,*999)
3505  DO WHILE(final<last_idx) !more stuff to do
3506  current=final+delta
3507  final=final+number_repeat*delta
3508  IF(final>last_idx) final=last_idx
3509  WRITE(op_string,fmt=repeat_format) (vector(count),count=current,final,delta)
3510  CALL write_str(id,err,error,*999)
3511  ENDDO !final<LAST_IDX
3512 
3513 ! EXITS("WRITE_STRING_VECTOR_L")
3514  RETURN
3515 999 errorsexits("WRITE_STRING_VECTOR_L",err,error)
3516 ! EXITS("WRITE_STRING_VECTOR_L")
3517  RETURN 1
3518  END SUBROUTINE write_string_vector_l
3519 
3520  !
3521  !================================================================================================================================
3522  !
3523 
3525  SUBROUTINE write_string_vector_sp(ID,FIRST_IDX,DELTA,LAST_IDX,NUMBER_FIRST,NUMBER_REPEAT,VECTOR,FIRST_FORMAT,REPEAT_FORMAT, &
3526  & err,error,*)
3528  !Argument variables
3529  INTEGER(INTG), INTENT(IN) :: ID
3530  INTEGER(INTG), INTENT(IN) :: FIRST_IDX
3531  INTEGER(INTG), INTENT(IN) :: DELTA
3532  INTEGER(INTG), INTENT(IN) :: LAST_IDX
3533  INTEGER(INTG), INTENT(IN) :: NUMBER_FIRST
3534  INTEGER(INTG), INTENT(IN) :: NUMBER_REPEAT
3535  REAL(SP), INTENT(IN) :: VECTOR(:)
3536  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
3537  CHARACTER(LEN=*), INTENT(IN) :: REPEAT_FORMAT
3538  INTEGER(INTG), INTENT(OUT) :: ERR
3539  TYPE(varying_string), INTENT(OUT) :: ERROR
3540  !Local variables
3541  INTEGER(INTG) :: current,final,count
3542 
3543 ! ENTERS("WRITE_STRING_VECTOR_SP",ERR,ERROR,*999)
3544 
3545  current=first_idx
3546  final=current+(number_first-1)*delta
3547  IF(final>last_idx) final=last_idx
3548  WRITE(op_string,fmt=first_format) (vector(count),count=current,final,delta)
3549  CALL write_str(id,err,error,*999)
3550  DO WHILE(final<last_idx) !more stuff to do
3551  current=final+delta
3552  final=final+number_repeat*delta
3553  IF(final>last_idx) final=last_idx
3554  WRITE(op_string,fmt=repeat_format) (vector(count),count=current,final,delta)
3555  CALL write_str(id,err,error,*999)
3556  ENDDO !final<LAST_IDX
3557 
3558 ! EXITS("WRITE_STRING_VECTOR_SP")
3559  RETURN
3560 999 errorsexits("WRITE_STRING_VECTOR_SP",err,error)
3561 ! EXITS("WRITE_STRING_VECTOR_SP")
3562  RETURN 1
3563  END SUBROUTINE write_string_vector_sp
3564 
3565  !
3566  !================================================================================================================================
3567  !
3568 
3570  SUBROUTINE write_string_idx_vector_dp(ID,NUM_INDICES,INDICES,DELTA,NUMBER_FIRST,NUMBER_REPEAT,VECTOR,FIRST_FORMAT, &
3571  & repeat_format,err,error,*)
3573  !Argument variables
3574  INTEGER(INTG), INTENT(IN) :: ID
3575  INTEGER(INTG), INTENT(IN) :: NUM_INDICES
3576  INTEGER(INTG), INTENT(IN) :: INDICES(num_indices)
3577  INTEGER(INTG), INTENT(IN) :: DELTA
3578  INTEGER(INTG), INTENT(IN) :: NUMBER_FIRST
3579  INTEGER(INTG), INTENT(IN) :: NUMBER_REPEAT
3580  REAL(DP), INTENT(IN) :: VECTOR(:)
3581  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
3582  CHARACTER(LEN=*), INTENT(IN) :: REPEAT_FORMAT
3583  INTEGER(INTG), INTENT(OUT) :: ERR
3584  TYPE(varying_string), INTENT(OUT) :: ERROR
3585  !Local variables
3586  INTEGER(INTG) :: current,count,number_to_do
3587 
3588 ! ENTERS("WRITE_STRING_IDX_VECTOR_DP",ERR,ERROR,*999)
3589 
3590  number_to_do=num_indices
3591  WRITE(op_string,fmt=first_format) (vector((indices(count)-1)*delta+1),count=1,min(number_first,num_indices))
3592  CALL write_str(id,err,error,*999)
3593  number_to_do=num_indices-number_first
3594  current=number_first+1
3595  DO WHILE(number_to_do>0) !more stuff to do
3596  WRITE(op_string,fmt=repeat_format) (vector((indices(count)-1)*delta+1),count=current,min(current+number_repeat-1, &
3597  & num_indices))
3598  CALL write_str(id,err,error,*999)
3599  current=current+number_repeat
3600  number_to_do=number_to_do-number_repeat
3601  ENDDO !number_to_do > 0
3602 
3603 ! EXITS("WRITE_STRING_IDX_VECTOR_DP")
3604  RETURN
3605 999 errorsexits("WRITE_STRING_IDX_VECTOR_DP",err,error)
3606 ! EXITS("WRITE_STRING_IDX_VECTOR_DP")
3607  RETURN 1
3608  END SUBROUTINE write_string_idx_vector_dp
3609 
3610  !
3611  !================================================================================================================================
3612  !
3613 
3615  SUBROUTINE write_string_idx_vector_intg(ID,NUM_INDICES,INDICES,DELTA,NUMBER_FIRST,NUMBER_REPEAT,VECTOR,FIRST_FORMAT, &
3616  & repeat_format,err,error,*)
3618  !Argument variables
3619  INTEGER(INTG), INTENT(IN) :: ID
3620  INTEGER(INTG), INTENT(IN) :: NUM_INDICES
3621  INTEGER(INTG), INTENT(IN) :: INDICES(num_indices)
3622  INTEGER(INTG), INTENT(IN) :: DELTA
3623  INTEGER(INTG), INTENT(IN) :: NUMBER_FIRST
3624  INTEGER(INTG), INTENT(IN) :: NUMBER_REPEAT
3625  INTEGER(INTG), INTENT(IN) :: VECTOR(:)
3626  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
3627  CHARACTER(LEN=*), INTENT(IN) :: REPEAT_FORMAT
3628  INTEGER(INTG), INTENT(OUT) :: ERR
3629  TYPE(varying_string), INTENT(OUT) :: ERROR
3630  !Local variables
3631  INTEGER(INTG) :: current,count,number_to_do
3632 
3633 ! ENTERS("WRITE_STRING_IDX_VECTOR_INTG",ERR,ERROR,*999)
3634 
3635  number_to_do=num_indices
3636  WRITE(op_string,fmt=first_format) (vector((indices(count)-1)*delta+1),count=1,min(number_first,num_indices))
3637  CALL write_str(id,err,error,*999)
3638  number_to_do=num_indices-number_first
3639  current=number_first+1
3640  DO WHILE(number_to_do>0) !more stuff to do
3641  WRITE(op_string,fmt=repeat_format) (vector((indices(count)-1)*delta+1),count=current,min(current+number_repeat-1, &
3642  & num_indices))
3643  CALL write_str(id,err,error,*999)
3644  current=current+number_repeat
3645  number_to_do=number_to_do-number_repeat
3646  ENDDO !number_to_do > 0
3647 
3648 ! EXITS("WRITE_STRING_IDX_VECTOR_INTG")
3649  RETURN
3650 999 errorsexits("WRITE_STRING_IDX_VECTOR_INTG",err,error)
3651 ! EXITS("WRITE_STRING_IDX_VECTOR_INTG")
3652  RETURN 1
3653  END SUBROUTINE write_string_idx_vector_intg
3654 
3655  !
3656  !================================================================================================================================
3657  !
3658 
3660  SUBROUTINE write_string_idx_vector_lintg(ID,NUM_INDICES,INDICES,DELTA,NUMBER_FIRST,NUMBER_REPEAT,VECTOR,FIRST_FORMAT, &
3661  & repeat_format,err,error,*)
3663  !#### Generic-Subroutine: WRITE_STRING_IDX_VECTOR_LINTG
3664  !### Description:
3665  !###
3666  !### Parent-subroutines: WRITE_STRING_IDX_VECTOR
3667 
3668  !Argument variables
3669  INTEGER(INTG), INTENT(IN) :: ID
3670  INTEGER(INTG), INTENT(IN) :: NUM_INDICES
3671  INTEGER(INTG), INTENT(IN) :: INDICES(num_indices)
3672  INTEGER(INTG), INTENT(IN) :: DELTA
3673  INTEGER(INTG), INTENT(IN) :: NUMBER_FIRST
3674  INTEGER(INTG), INTENT(IN) :: NUMBER_REPEAT
3675  INTEGER(LINTG), INTENT(IN) :: VECTOR(:)
3676  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
3677  CHARACTER(LEN=*), INTENT(IN) :: REPEAT_FORMAT
3678  INTEGER(INTG), INTENT(OUT) :: ERR
3679  TYPE(varying_string), INTENT(OUT) :: ERROR
3680  !Local variables
3681  INTEGER(INTG) :: current,count,number_to_do
3682 
3683 ! ENTERS("WRITE_STRING_IDX_VECTOR_LINTG",ERR,ERROR,*999)
3684 
3685  number_to_do=num_indices
3686  WRITE(op_string,fmt=first_format) (vector((indices(count)-1)*delta+1),count=1,min(number_first,num_indices))
3687  CALL write_str(id,err,error,*999)
3688  number_to_do=num_indices-number_first
3689  current=number_first+1
3690  DO WHILE(number_to_do>0) !more stuff to do
3691  WRITE(op_string,fmt=repeat_format) (vector((indices(count)-1)*delta+1),count=current,min(current+number_repeat-1, &
3692  & num_indices))
3693  CALL write_str(id,err,error,*999)
3694  current=current+number_repeat
3695  number_to_do=number_to_do-number_repeat
3696  ENDDO !number_to_do > 0
3697 
3698 ! EXITS("WRITE_STRING_IDX_VECTOR_LINTG")
3699  RETURN
3700 999 errorsexits("WRITE_STRING_IDX_VECTOR_LINTG",err,error)
3701 ! EXITS("WRITE_STRING_IDX_VECTOR_LINTG")
3702  RETURN 1
3703  END SUBROUTINE write_string_idx_vector_lintg
3704 
3705  !
3706  !================================================================================================================================
3707  !
3708 
3710  SUBROUTINE write_string_idx_vector_l(ID,NUM_INDICES,INDICES,DELTA,NUMBER_FIRST,NUMBER_REPEAT,VECTOR,FIRST_FORMAT, &
3711  & repeat_format,err,error,*)
3713  !Argument variables
3714  INTEGER(INTG), INTENT(IN) :: ID
3715  INTEGER(INTG), INTENT(IN) :: NUM_INDICES
3716  INTEGER(INTG), INTENT(IN) :: INDICES(num_indices)
3717  INTEGER(INTG), INTENT(IN) :: DELTA
3718  INTEGER(INTG), INTENT(IN) :: NUMBER_FIRST
3719  INTEGER(INTG), INTENT(IN) :: NUMBER_REPEAT
3720  LOGICAL, INTENT(IN) :: VECTOR(:)
3721  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
3722  CHARACTER(LEN=*), INTENT(IN) :: REPEAT_FORMAT
3723  INTEGER(INTG), INTENT(OUT) :: ERR
3724  TYPE(varying_string), INTENT(OUT) :: ERROR
3725  !Local variables
3726  INTEGER(INTG) :: current,count,number_to_do
3727 
3728 ! ENTERS("WRITE_STRING_IDX_VECTOR_L",ERR,ERROR,*999)
3729 
3730  number_to_do=num_indices
3731  WRITE(op_string,fmt=first_format) (vector((indices(count)-1)*delta+1),count=1,min(number_first,num_indices))
3732  CALL write_str(id,err,error,*999)
3733  number_to_do=num_indices-number_first
3734  current=number_first+1
3735  DO WHILE(number_to_do>0) !more stuff to do
3736  WRITE(op_string,fmt=repeat_format) (vector((indices(count)-1)*delta+1),count=current,min(current+number_repeat-1, &
3737  & num_indices))
3738  CALL write_str(id,err,error,*999)
3739  current=current+number_repeat
3740  number_to_do=number_to_do-number_repeat
3741  ENDDO !number_to_do > 0
3742 
3743 ! EXITS("WRITE_STRING_IDX_VECTOR_L")
3744  RETURN
3745 999 errorsexits("WRITE_STRING_IDX_VECTOR_L",err,error)
3746 ! EXITS("WRITE_STRING_IDX_VECTOR_L")
3747  RETURN 1
3748  END SUBROUTINE write_string_idx_vector_l
3749 
3750  !
3751  !================================================================================================================================
3752  !
3753 
3755  SUBROUTINE write_string_idx_vector_sp(ID,NUM_INDICES,INDICES,DELTA,NUMBER_FIRST,NUMBER_REPEAT,VECTOR,FIRST_FORMAT, &
3756  & repeat_format,err,error,*)
3758  !Argument variables
3759  INTEGER(INTG), INTENT(IN) :: ID
3760  INTEGER(INTG), INTENT(IN) :: NUM_INDICES
3761  INTEGER(INTG), INTENT(IN) :: INDICES(num_indices)
3762  INTEGER(INTG), INTENT(IN) :: DELTA
3763  INTEGER(INTG), INTENT(IN) :: NUMBER_FIRST
3764  INTEGER(INTG), INTENT(IN) :: NUMBER_REPEAT
3765  REAL(SP), INTENT(IN) :: VECTOR(:)
3766  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
3767  CHARACTER(LEN=*), INTENT(IN) :: REPEAT_FORMAT
3768  INTEGER(INTG), INTENT(OUT) :: ERR
3769  TYPE(varying_string), INTENT(OUT) :: ERROR
3770  !Local variables
3771  INTEGER(INTG) :: current,count,number_to_do
3772 
3773 ! ENTERS("WRITE_STRING_IDX_VECTOR_SP",ERR,ERROR,*999)
3774 
3775  number_to_do=num_indices
3776  WRITE(op_string,fmt=first_format) (vector((indices(count)-1)*delta+1),count=1,min(number_first,num_indices))
3777  CALL write_str(id,err,error,*999)
3778  number_to_do=num_indices-number_first
3779  current=number_first+1
3780  DO WHILE(number_to_do>0) !more stuff to do
3781  WRITE(op_string,fmt=repeat_format) (vector((indices(count)-1)*delta+1),count=current,min(current+number_repeat-1, &
3782  & num_indices))
3783  CALL write_str(id,err,error,*999)
3784  current=current+number_repeat
3785  number_to_do=number_to_do-number_repeat
3786  ENDDO !number_to_do > 0
3787 
3788 ! EXITS("WRITE_STRING_IDX_VECTOR_SP")
3789  RETURN
3790 999 errorsexits("WRITE_STRING_IDX_VECTOR_SP",err,error)
3791 ! EXITS("WRITE_STRING_IDX_VECTOR_SP")
3792  RETURN 1
3793  END SUBROUTINE write_string_idx_vector_sp
3794 
3795  !
3796  !================================================================================================================================
3797  !
3798 
3800  SUBROUTINE write_string_matrix_dp(ID,FIRST_ROW,DELTA_ROW,LAST_ROW,FIRST_COLUMN,DELTA_COLUMN,LAST_COLUMN,NUMBER_FIRST, &
3801  & number_repeat,matrix,index_format_type,matrix_name_format,row_index_format,first_format,repeat_format,err,error,*)
3803  !Argument variables
3804  INTEGER(INTG), INTENT(IN) :: ID
3805  INTEGER(INTG), INTENT(IN) :: FIRST_ROW
3806  INTEGER(INTG), INTENT(IN) :: DELTA_ROW
3807  INTEGER(INTG), INTENT(IN) :: LAST_ROW
3808  INTEGER(INTG), INTENT(IN) :: FIRST_COLUMN
3809  INTEGER(INTG), INTENT(IN) :: DELTA_COLUMN
3810  INTEGER(INTG), INTENT(IN) :: LAST_COLUMN
3811  INTEGER(INTG), INTENT(IN) :: NUMBER_FIRST
3812  INTEGER(INTG), INTENT(IN) :: NUMBER_REPEAT
3813  REAL(DP), INTENT(IN) :: MATRIX(:,:)
3814  INTEGER(INTG), INTENT(IN) :: INDEX_FORMAT_TYPE
3815  CHARACTER(LEN=*), INTENT(IN) :: MATRIX_NAME_FORMAT
3816  CHARACTER(LEN=*), INTENT(IN) :: ROW_INDEX_FORMAT
3817  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
3818  CHARACTER(LEN=*), INTENT(IN) :: REPEAT_FORMAT
3819  INTEGER(INTG), INTENT(OUT) :: ERR
3820  TYPE(varying_string), INTENT(OUT) :: ERROR
3821  !Local variables
3822  INTEGER(INTG) :: current_row,current_column,final_column,count
3823  CHARACTER(LEN=MAXSTRLEN) :: FORMAT_STR
3824 
3825 ! ENTERS("WRITE_STRING_MATRIX_DP",ERR,ERROR,*999)
3826 
3827  IF(index_format_type==write_string_matrix_name_only) THEN
3828  format_str=matrix_name_format//first_format
3829  ELSE IF(index_format_type==write_string_matrix_name_and_indices) THEN
3830  format_str=matrix_name_format//row_index_format//first_format
3831  ELSE
3832  CALL flagerror("Invalid index format type",err,error,*999)
3833  ENDIF
3834  DO current_row=first_row,last_row,delta_row
3835  current_column=first_column
3836  final_column=current_column+(number_first-1)*delta_column
3837  IF(final_column>last_column) final_column=last_column
3838  IF(index_format_type==write_string_matrix_name_only) THEN
3839  WRITE(op_string,fmt=format_str) (matrix(current_row,count),count=current_column,final_column,delta_column)
3840  ELSE IF(index_format_type==write_string_matrix_name_and_indices) THEN
3841  WRITE(op_string,fmt=format_str) current_row,(matrix(current_row,count),count=current_column,final_column,delta_column)
3842  ENDIF
3843  CALL write_str(id,err,error,*999)
3844  DO WHILE(final_column<last_column) !more stuff to do
3845  current_column=final_column+delta_column
3846  final_column=final_column+number_repeat*delta_column
3847  IF(final_column>last_column) final_column=last_column
3848  WRITE(op_string,fmt=repeat_format) (matrix(current_row,count),count=current_column,final_column,delta_column)
3849  CALL write_str(id,err,error,*999)
3850  ENDDO !final_columnn<LAST_COLUMN
3851  ENDDO !current_row
3852 
3853 ! EXITS("WRITE_STRING_MATRIX_DP")
3854  RETURN
3855 999 errorsexits("WRITE_STRING_MATRIX_DP",err,error)
3856 ! EXITS("WRITE_STRING_MATRIX_DP")
3857  RETURN 1
3858  END SUBROUTINE write_string_matrix_dp
3859 
3860  !
3861  !================================================================================================================================
3862  !
3863 
3865  SUBROUTINE write_string_matrix_intg(ID,FIRST_ROW,DELTA_ROW,LAST_ROW,FIRST_COLUMN,DELTA_COLUMN,LAST_COLUMN,NUMBER_FIRST, &
3866  & number_repeat,matrix,index_format_type,matrix_name_format,row_index_format,first_format,repeat_format,err,error,*)
3868  !#### Generic-Subroutine: WRITE_STRING_MATRIX_INTG
3869  !### Description:
3870  !###
3871  !### Parent-subroutines: WRITE_STRING_MATRIX
3872 
3873  !Argument variables
3874  INTEGER(INTG), INTENT(IN) :: ID
3875  INTEGER(INTG), INTENT(IN) :: FIRST_ROW
3876  INTEGER(INTG), INTENT(IN) :: DELTA_ROW
3877  INTEGER(INTG), INTENT(IN) :: LAST_ROW
3878  INTEGER(INTG), INTENT(IN) :: FIRST_COLUMN
3879  INTEGER(INTG), INTENT(IN) :: DELTA_COLUMN
3880  INTEGER(INTG), INTENT(IN) :: LAST_COLUMN
3881  INTEGER(INTG), INTENT(IN) :: NUMBER_FIRST
3882  INTEGER(INTG), INTENT(IN) :: NUMBER_REPEAT
3883  INTEGER(INTG), INTENT(IN) :: MATRIX(:,:)
3884  INTEGER(INTG), INTENT(IN) :: INDEX_FORMAT_TYPE
3885  CHARACTER(LEN=*), INTENT(IN) :: MATRIX_NAME_FORMAT
3886  CHARACTER(LEN=*), INTENT(IN) :: ROW_INDEX_FORMAT
3887  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
3888  CHARACTER(LEN=*), INTENT(IN) :: REPEAT_FORMAT
3889  INTEGER(INTG), INTENT(OUT) :: ERR
3890  TYPE(varying_string), INTENT(OUT) :: ERROR
3891  !Local variables
3892  INTEGER(INTG) :: current_row,current_column,final_column,count
3893  CHARACTER(LEN=MAXSTRLEN) :: FORMAT_STR
3894 
3895 ! ENTERS("WRITE_STRING_MATRIX_INTG",ERR,ERROR,*999)
3896 
3897  IF(index_format_type==write_string_matrix_name_only) THEN
3898  format_str=matrix_name_format//first_format
3899  ELSE IF(index_format_type==write_string_matrix_name_and_indices) THEN
3900  format_str=matrix_name_format//row_index_format//first_format
3901  ELSE
3902  CALL flagerror("Invalid index format type",err,error,*999)
3903  ENDIF
3904  DO current_row=first_row,last_row,delta_row
3905  current_column=first_column
3906  final_column=current_column+(number_first-1)*delta_column
3907  IF(final_column>last_column) final_column=last_column
3908  IF(index_format_type==write_string_matrix_name_only) THEN
3909  WRITE(op_string,fmt=format_str) (matrix(current_row,count),count=current_column,final_column,delta_column)
3910  ELSE IF(index_format_type==write_string_matrix_name_and_indices) THEN
3911  WRITE(op_string,fmt=format_str) current_row,(matrix(current_row,count),count=current_column,final_column,delta_column)
3912  ENDIF
3913  CALL write_str(id,err,error,*999)
3914  DO WHILE(final_column<last_column) !more stuff to do
3915  current_column=final_column+delta_column
3916  final_column=final_column+number_repeat*delta_column
3917  IF(final_column>last_column) final_column=last_column
3918  WRITE(op_string,fmt=repeat_format) (matrix(current_row,count),count=current_column,final_column,delta_column)
3919  CALL write_str(id,err,error,*999)
3920  ENDDO !final_columnn<LAST_COLUMN
3921  ENDDO !current_row
3922 
3923 ! EXITS("WRITE_STRING_MATRIX_INTG")
3924  RETURN
3925 999 errorsexits("WRITE_STRING_MATRIX_INTG",err,error)
3926 ! EXITS("WRITE_STRING_MATRIX_INTG")
3927  RETURN 1
3928  END SUBROUTINE write_string_matrix_intg
3929 
3930  !
3931  !================================================================================================================================
3932  !
3933 
3935 
3937  SUBROUTINE write_string_matrix_lintg(ID,FIRST_ROW,DELTA_ROW,LAST_ROW,FIRST_COLUMN,DELTA_COLUMN,LAST_COLUMN,NUMBER_FIRST, &
3938  & number_repeat,matrix,index_format_type,matrix_name_format,row_index_format,first_format,repeat_format,err,error,*)
3940  !Argument variables
3941  INTEGER(INTG), INTENT(IN) :: ID
3942  INTEGER(INTG), INTENT(IN) :: FIRST_ROW
3943  INTEGER(INTG), INTENT(IN) :: DELTA_ROW
3944  INTEGER(INTG), INTENT(IN) :: LAST_ROW
3945  INTEGER(INTG), INTENT(IN) :: FIRST_COLUMN
3946  INTEGER(INTG), INTENT(IN) :: DELTA_COLUMN
3947  INTEGER(INTG), INTENT(IN) :: LAST_COLUMN
3948  INTEGER(INTG), INTENT(IN) :: NUMBER_FIRST
3949  INTEGER(INTG), INTENT(IN) :: NUMBER_REPEAT
3950  INTEGER(LINTG), INTENT(IN) :: MATRIX(:,:)
3951  INTEGER(INTG), INTENT(IN) :: INDEX_FORMAT_TYPE
3952  CHARACTER(LEN=*), INTENT(IN) :: MATRIX_NAME_FORMAT
3953  CHARACTER(LEN=*), INTENT(IN) :: ROW_INDEX_FORMAT
3954  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
3955  CHARACTER(LEN=*), INTENT(IN) :: REPEAT_FORMAT
3956  INTEGER(INTG), INTENT(OUT) :: ERR
3957  TYPE(varying_string), INTENT(OUT) :: ERROR
3958  !Local variables
3959  INTEGER(INTG) :: current_row,current_column,final_column,count
3960  CHARACTER(LEN=MAXSTRLEN) :: FORMAT_STR
3961 
3962 ! ENTERS("WRITE_STRING_MATRIX_LINTG",ERR,ERROR,*999)
3963 
3964  IF(index_format_type==write_string_matrix_name_only) THEN
3965  format_str=matrix_name_format//first_format
3966  ELSE IF(index_format_type==write_string_matrix_name_and_indices) THEN
3967  format_str=matrix_name_format//row_index_format//first_format
3968  ELSE
3969  CALL flagerror("Invalid index format type",err,error,*999)
3970  ENDIF
3971  DO current_row=first_row,last_row,delta_row
3972  current_column=first_column
3973  final_column=current_column+(number_first-1)*delta_column
3974  IF(final_column>last_column) final_column=last_column
3975  IF(index_format_type==write_string_matrix_name_only) THEN
3976  WRITE(op_string,fmt=format_str) (matrix(current_row,count),count=current_column,final_column,delta_column)
3977  ELSE IF(index_format_type==write_string_matrix_name_and_indices) THEN
3978  WRITE(op_string,fmt=format_str) current_row,(matrix(current_row,count),count=current_column,final_column,delta_column)
3979  ENDIF
3980  CALL write_str(id,err,error,*999)
3981  DO WHILE(final_column<last_column) !more stuff to do
3982  current_column=final_column+delta_column
3983  final_column=final_column+number_repeat*delta_column
3984  IF(final_column>last_column) final_column=last_column
3985  WRITE(op_string,fmt=repeat_format) (matrix(current_row,count),count=current_column,final_column,delta_column)
3986  CALL write_str(id,err,error,*999)
3987  ENDDO !final_columnn<LAST_COLUMN
3988  ENDDO !current_row
3989 
3990 ! EXITS("WRITE_STRING_MATRIX_LINTG")
3991  RETURN
3992 999 errorsexits("WRITE_STRING_MATRIX_LINTG",err,error)
3993 ! EXITS("WRITE_STRING_MATRIX_LINTG")
3994  RETURN 1
3995  END SUBROUTINE write_string_matrix_lintg
3996 
3997  !
3998  !================================================================================================================================
3999  !
4000 
4002  SUBROUTINE write_string_matrix_l(ID,FIRST_ROW,DELTA_ROW,LAST_ROW,FIRST_COLUMN,DELTA_COLUMN,LAST_COLUMN,NUMBER_FIRST, &
4003  & number_repeat,matrix,index_format_type,matrix_name_format,row_index_format,first_format,repeat_format,err,error,*)
4005  !Argument variables
4006  INTEGER(INTG), INTENT(IN) :: ID
4007  INTEGER(INTG), INTENT(IN) :: FIRST_ROW
4008  INTEGER(INTG), INTENT(IN) :: DELTA_ROW
4009  INTEGER(INTG), INTENT(IN) :: LAST_ROW
4010  INTEGER(INTG), INTENT(IN) :: FIRST_COLUMN
4011  INTEGER(INTG), INTENT(IN) :: DELTA_COLUMN
4012  INTEGER(INTG), INTENT(IN) :: LAST_COLUMN
4013  INTEGER(INTG), INTENT(IN) :: NUMBER_FIRST
4014  INTEGER(INTG), INTENT(IN) :: NUMBER_REPEAT
4015  LOGICAL, INTENT(IN) :: MATRIX(:,:)
4016  INTEGER(INTG), INTENT(IN) :: INDEX_FORMAT_TYPE
4017  CHARACTER(LEN=*), INTENT(IN) :: MATRIX_NAME_FORMAT
4018  CHARACTER(LEN=*), INTENT(IN) :: ROW_INDEX_FORMAT
4019  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
4020  CHARACTER(LEN=*), INTENT(IN) :: REPEAT_FORMAT
4021  INTEGER(INTG), INTENT(OUT) :: ERR
4022  TYPE(varying_string), INTENT(OUT) :: ERROR
4023  !Local variables
4024  INTEGER(INTG) :: current_row,current_column,final_column,count
4025  CHARACTER(LEN=MAXSTRLEN) :: FORMAT_STR
4026 
4027 ! ENTERS("WRITE_STRING_MATRIX_L",ERR,ERROR,*999)
4028 
4029  IF(index_format_type==write_string_matrix_name_only) THEN
4030  format_str=matrix_name_format//first_format
4031  ELSE IF(index_format_type==write_string_matrix_name_and_indices) THEN
4032  format_str=matrix_name_format//row_index_format//first_format
4033  ELSE
4034  CALL flagerror("Invalid index format type",err,error,*999)
4035  ENDIF
4036  DO current_row=first_row,last_row,delta_row
4037  current_column=first_column
4038  final_column=current_column+(number_first-1)*delta_column
4039  IF(final_column>last_column) final_column=last_column
4040  IF(index_format_type==write_string_matrix_name_only) THEN
4041  WRITE(op_string,fmt=format_str) (matrix(current_row,count),count=current_column,final_column,delta_column)
4042  ELSE IF(index_format_type==write_string_matrix_name_and_indices) THEN
4043  WRITE(op_string,fmt=format_str) current_row,(matrix(current_row,count),count=current_column,final_column,delta_column)
4044  ENDIF
4045  CALL write_str(id,err,error,*999)
4046  DO WHILE(final_column<last_column) !more stuff to do
4047  current_column=final_column+delta_column
4048  final_column=final_column+number_repeat*delta_column
4049  IF(final_column>last_column) final_column=last_column
4050  WRITE(op_string,fmt=repeat_format) (matrix(current_row,count),count=current_column,final_column,delta_column)
4051  CALL write_str(id,err,error,*999)
4052  ENDDO !final_columnn<LAST_COLUMN
4053  ENDDO !current_row
4054 
4055 ! EXITS("WRITE_STRING_MATRIX_L")
4056  RETURN
4057 999 errorsexits("WRITE_STRING_MATRIX_L",err,error)
4058 ! EXITS("WRITE_STRING_MATRIX_L")
4059  RETURN 1
4060  END SUBROUTINE write_string_matrix_l
4061 
4062  !
4063  !================================================================================================================================
4064  !
4065 
4067  SUBROUTINE write_string_matrix_sp(ID,FIRST_ROW,DELTA_ROW,LAST_ROW,FIRST_COLUMN,DELTA_COLUMN,LAST_COLUMN,NUMBER_FIRST, &
4068  & number_repeat,matrix,index_format_type,matrix_name_format,row_index_format,first_format,repeat_format,err,error,*)
4070  !Argument variables
4071  INTEGER(INTG), INTENT(IN) :: ID
4072  INTEGER(INTG), INTENT(IN) :: FIRST_ROW
4073  INTEGER(INTG), INTENT(IN) :: DELTA_ROW
4074  INTEGER(INTG), INTENT(IN) :: LAST_ROW
4075  INTEGER(INTG), INTENT(IN) :: FIRST_COLUMN
4076  INTEGER(INTG), INTENT(IN) :: DELTA_COLUMN
4077  INTEGER(INTG), INTENT(IN) :: LAST_COLUMN
4078  INTEGER(INTG), INTENT(IN) :: NUMBER_FIRST
4079  INTEGER(INTG), INTENT(IN) :: NUMBER_REPEAT
4080  REAL(SP), INTENT(IN) :: MATRIX(:,:)
4081  INTEGER(INTG), INTENT(IN) :: INDEX_FORMAT_TYPE
4082  CHARACTER(LEN=*), INTENT(IN) :: MATRIX_NAME_FORMAT
4083  CHARACTER(LEN=*), INTENT(IN) :: ROW_INDEX_FORMAT
4084  CHARACTER(LEN=*), INTENT(IN) :: FIRST_FORMAT
4085  CHARACTER(LEN=*), INTENT(IN) :: REPEAT_FORMAT
4086  INTEGER(INTG), INTENT(OUT) :: ERR
4087  TYPE(varying_string), INTENT(OUT) :: ERROR
4088  !Local variables
4089  INTEGER(INTG) :: current_row,current_column,final_column,count
4090  CHARACTER(LEN=MAXSTRLEN) :: FORMAT_STR
4091 
4092 ! ENTERS("WRITE_STRING_MATRIX_SP",ERR,ERROR,*999)
4093 
4094  IF(index_format_type==write_string_matrix_name_only) THEN
4095  format_str=matrix_name_format//first_format
4096  ELSE IF(index_format_type==write_string_matrix_name_and_indices) THEN
4097  format_str=matrix_name_format//row_index_format//first_format
4098  ELSE
4099  CALL flagerror("Invalid index format type",err,error,*999)
4100  ENDIF
4101  DO current_row=first_row,last_row,delta_row
4102  current_column=first_column
4103  final_column=current_column+(number_first-1)*delta_column
4104  IF(final_column>last_column) final_column=last_column
4105  IF(index_format_type==write_string_matrix_name_only) THEN
4106  WRITE(op_string,fmt=format_str) (matrix(current_row,count),count=current_column,final_column,delta_column)
4107  ELSE IF(index_format_type==write_string_matrix_name_and_indices) THEN
4108  WRITE(op_string,fmt=format_str) current_row,(matrix(current_row,count),count=current_column,final_column,delta_column)
4109  ENDIF
4110  CALL write_str(id,err,error,*999)
4111  DO WHILE(final_column<last_column) !more stuff to do
4112  current_column=final_column+delta_column
4113  final_column=final_column+number_repeat*delta_column
4114  IF(final_column>last_column) final_column=last_column
4115  WRITE(op_string,fmt=repeat_format) (matrix(current_row,count),count=current_column,final_column,delta_column)
4116  CALL write_str(id,err,error,*999)
4117  ENDDO !final_columnn<LAST_COLUMN
4118  ENDDO !current_row
4119 
4120 ! EXITS("WRITE_STRING_MATRIX_SP")
4121  RETURN
4122 999 errorsexits("WRITE_STRING_MATRIX_SP",err,error)
4123  RETURN 1
4124  END SUBROUTINE write_string_matrix_sp
4125 
4126  !
4127  !================================================================================================================================
4128  !
4129 
4130 END MODULE input_output
subroutine write_string_fmt_two_value_dp_dp(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted double precision FIRST_VALUE and the the SECOND_STRIN...
subroutine write_string_two_value_sp_c(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted single precision FIRST_VALUE and the the SECOND_STRIN...
Write a string followed by a value to a given output stream.
subroutine write_string_fmt_two_value_c_sp(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted character FIRST_VALUE and the the SECOND_STRING follo...
subroutine write_string_fmt_two_value_intg_sp(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted integer FIRST_VALUE and the the SECOND_STRING followe...
subroutine write_string_fmt_two_value_c_dp(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted character FIRST_VALUE and the the SECOND_STRING follo...
subroutine write_string_two_value_dp_vs(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted double precision FIRST_VALUE and the the SECOND_STRIN...
Write a string followed by a value formatted in a particular way to a specified output stream...
subroutine write_string_two_value_c_c(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted character FIRST_VALUE and the the SECOND_STRING follo...
subroutine write_string_fmt_two_value_c_intg(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted character FIRST_VALUE and the the SECOND_STRING follo...
subroutine write_string_two_value_l_dp(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted logical FIRST_VALUE and the the SECOND_STRING followe...
Converts a number to its equivalent varying string representation.
Definition: strings.f90:161
subroutine write_string_two_value_l_vs(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted logical FIRST_VALUE and the the SECOND_STRING followe...
subroutine write_string_two_value_vs_c(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted varying string FIRST_VALUE and the the SECOND_STRING ...
subroutine write_string_two_value_sp_l(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted single precision FIRST_VALUE and the the SECOND_STRIN...
subroutine write_string_two_value_intg_dp(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted integer FIRST_VALUE and the the SECOND_STRING followe...
Write a string followed by a matrix to a specified output stream.
Write a string, value, string then a value with the values formatted in a particular way to a given o...
subroutine, public write_str(ID, ERR, ERROR,)
Writes the output string to a specified output stream.
This module contains all string manipulation and transformation routines.
Definition: strings.f90:45
subroutine write_string_two_value_intg_sp(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted integer FIRST_VALUE and the the SECOND_STRING followe...
subroutine write_string_two_value_c_vs(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted character FIRST_VALUE and the the SECOND_STRING follo...
subroutine write_string_fmt_two_value_vs_c(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted varying string FIRST_VALUE and the the SECOND_STRING ...
subroutine write_string_idx_vector_sp(ID, NUM_INDICES, INDICES, DELTA, NUMBER_FIRST, NUMBER_REPEAT, VECTOR, FIRST_FORMAT, REPEAT_FORMAT, ERR, ERROR,)
Writes the given indexed single precision VECTOR to the given output stream specified by ID...
subroutine write_string_two_value_sp_dp(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted single precision FIRST_VALUE and the the SECOND_STRIN...
subroutine write_string_fmt_two_value_dp_l(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted double precision FIRST_VALUE and the the SECOND_STRIN...
subroutine write_string_two_value_l_l(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted logical FIRST_VALUE and the the SECOND_STRING followe...
Write a string followed by a indexed vector to a specified output stream.
subroutine write_string_fmt_two_value_c_c(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted character FIRST_VALUE and the the SECOND_STRING follo...
subroutine write_string_two_value_intg_l(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted integer FIRST_VALUE and the the SECOND_STRING followe...
subroutine write_string_fmt_two_value_intg_vs(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted integer FIRST_VALUE and the the SECOND_STRING followe...
subroutine write_string_two_value_sp_sp(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted single precision FIRST_VALUE and the the SECOND_STRIN...
subroutine write_string_two_value_dp_sp(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted double precision FIRST_VALUE and the the SECOND_STRIN...
subroutine write_string_two_value_c_sp(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted character FIRST_VALUE and the the SECOND_STRING follo...
subroutine write_string_fmt_value_intg(ID, FIRST_STRING, VALUE, FORMAT_STRING, ERR, ERROR,)
Writes the FIRST STRING followed by a formatted character VALUE to the given output stream specified ...
Write a string followed by a matrix to a specified output stream.
subroutine write_string_matrix_lintg(ID, FIRST_ROW, DELTA_ROW, LAST_ROW, FIRST_COLUMN, DELTA_COLUMN, LAST_COLUMN, NUMBER_FIRST, NUMBER_REPEAT, MATRIX, INDEX_FORMAT_TYPE, MATRIX_NAME_FORMAT, ROW_INDEX_FORMAT, FIRST_FORMAT, REPEAT_FORMAT, ERR, ERROR,)
Writes the given long integer MATRIX to the given output stream specified by ID. The basic output is ...
This module provides an iso_varying_string module, conformant to the API specified in ISO/IEC 1539-2:...
subroutine write_string_two_value_vs_vs(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted varying string FIRST_VALUE and the the SECOND_STRING ...
subroutine write_string_fmt_value_l(ID, FIRST_STRING, VALUE, FORMAT_STRING, ERR, ERROR,)
Writes the FIRST STRING followed by a formatted character VALUE to the given output stream specified ...
subroutine write_string_fmt_two_value_intg_l(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted integer FIRST_VALUE and the the SECOND_STRING followe...
subroutine write_string_matrix_dp(ID, FIRST_ROW, DELTA_ROW, LAST_ROW, FIRST_COLUMN, DELTA_COLUMN, LAST_COLUMN, NUMBER_FIRST, NUMBER_REPEAT, MATRIX, INDEX_FORMAT_TYPE, MATRIX_NAME_FORMAT, ROW_INDEX_FORMAT, FIRST_FORMAT, REPEAT_FORMAT, ERR, ERROR,)
Writes the given double precision MATRIX to the given output stream specified by ID. The basic output is determined by the flag INDEX_FORMAT_TYPE. If INDEX_FORMAT_TYPE is WRITE_STRING_MATRIX_NAME_ONLY then the first line of output for each row is MATRIX_NAME_FORMAT concatenated named with the FIRST_FORMAT. If INDEX_FORMAT_TYPE is WRITE_STRING_MATRIX_NAME_AND_INDICES then the first line of output for each row is MATRIX_NAME_FORMAT concatenated with ROW_INDEX_FORMAT and concatenated with FIRST_FORMAT. Note that with a WRITE_STRING_MATRIX_NAME_AND_INDICES index format type the row number will be supplied to the format before the matrix data. The FIRST_FORMAT is the format initially used, followed by the REPEAT_FORMAT which is repeated as many times as necessary. NUMBER_FIRST is the number of data items in the FIRST_FORMAT and NUMBER_REPEAT is the number of data items in the REPEAT_FORMAT. FIRST_ROW/FIRST_COLUMN and LAST_ROW/LAST_COLUMN are the extents of the row/column and DELTA_ROW/DELTA_COLUMN is the NUMBER of indices to skip for each row/column index.
This module contains all program wide constants.
Definition: constants.f90:45
subroutine write_string_two_value_sp_intg(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted single precision FIRST_VALUE and the the SECOND_STRIN...
subroutine write_string_fmt_two_value_sp_c(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted single precision FIRST_VALUE and the the SECOND_STRIN...
subroutine write_string_two_value_c_dp(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted character FIRST_VALUE and the the SECOND_STRING follo...
subroutine write_string_fmt_two_value_intg_dp(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted integer FIRST_VALUE and the the SECOND_STRING followe...
subroutine write_string_value_vs(ID, FIRST_STRING, VALUE, ERR, ERROR,)
Writes the FIRST STRING followed by a formatted character VALUE to the given output stream specified ...
subroutine write_string_fmt_value_vs(ID, FIRST_STRING, VALUE, FORMAT_STRING, ERR, ERROR,)
Writes the FIRST STRING followed by a formatted character VALUE to the given output stream specified ...
subroutine write_string_two_value_vs_dp(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted varying string FIRST_VALUE and the the SECOND_STRING ...
subroutine write_string_two_value_l_sp(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted logical FIRST_VALUE and the the SECOND_STRING followe...
subroutine write_string_two_value_dp_c(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted double precision FIRST_VALUE and the the SECOND_STRIN...
Write a string to a given output stream.
This module contains all the low-level base routines e.g., all debug, control, and low-level communic...
subroutine write_string_fmt_two_value_intg_intg(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted integer FIRST_VALUE and the the SECOND_STRING followe...
subroutine write_string_vector_sp(ID, FIRST_IDX, DELTA, LAST_IDX, NUMBER_FIRST, NUMBER_REPEAT, VECTOR, FIRST_FORMAT, REPEAT_FORMAT, ERR, ERROR,)
Writes the given single precision VECTOR to the given output stream specified by ID. The FIRST_FORMAT is the format initially used, followed by the REPEAT_FORMAT which is repeated as many times as necessary. NUMBER_FIRST is the number of data items in the FIRST_FORMAT and NUMBER_REPEAT is the number of data items in the REPEAT_FORMAT. FIRST_IDX and LAST_IDX are the extents of the data and DELTA is the NUMBER of indices to skip for each index.
subroutine write_string_two_value_dp_l(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted double precision FIRST_VALUE and the the SECOND_STRIN...
subroutine write_string_fmt_two_value_dp_c(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted double precision FIRST_VALUE and the the SECOND_STRIN...
subroutine write_string_value_dp(ID, FIRST_STRING, VALUE, ERR, ERROR,)
Writes the FIRST STRING followed by a formatted character VALUE to the given output stream specified ...
subroutine write_string_two_value_intg_c(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted integer FIRST_VALUE and the the SECOND_STRING followe...
subroutine write_string_fmt_two_value_sp_vs(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted single precision FIRST_VALUE and the the SECOND_STRIN...
subroutine write_string_fmt_two_value_l_c(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted logical FIRST_VALUE and the the SECOND_STRING followe...
integer(intg), parameter, public write_string_matrix_name_only
Write the matrix name with out any indices.
subroutine write_string_fmt_two_value_vs_dp(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted varying string FIRST_VALUE and the the SECOND_STRING ...
subroutine write_string_fmt_two_value_dp_sp(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted double precision FIRST_VALUE and the the SECOND_STRIN...
subroutine write_string_fmt_two_value_l_intg(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted logical FIRST_VALUE and the the SECOND_STRING followe...
integer(intg), parameter, public write_string_matrix_name_and_indices
Write the matrix name together with the matrix indices.
Write a string followed by a value to a given output stream.
subroutine write_string_idx_vector_l(ID, NUM_INDICES, INDICES, DELTA, NUMBER_FIRST, NUMBER_REPEAT, VECTOR, FIRST_FORMAT, REPEAT_FORMAT, ERR, ERROR,)
Writes the given indexed logical VECTOR to the given output stream specified by ID. NUM_INDICES is the number of indices and INDICES(i) contain the indices of the vector to write. The FIRST_FORMAT is the format initially used, followed by the REPEAT_FORMAT which is repeated as many times as necessary. NUMBER_FIRST is the number of data items in the FIRST_FORMAT and NUMBER_REPEAT is the number of data items in the REPEAT_FORMAT. DELTA is the number of actual indices to skip for each index.
subroutine write_string_fmt_two_value_sp_intg(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted single precision FIRST_VALUE and the the SECOND_STRIN...
subroutine write_string_fmt_two_value_sp_sp(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted single precision FIRST_VALUE and the the SECOND_STRIN...
subroutine write_string_fmt_value_c(ID, FIRST_STRING, VALUE, FORMAT_STRING, ERR, ERROR,)
Writes the FIRST STRING followed by a formatted character VALUE to the given output stream specified ...
subroutine write_string_fmt_two_value_c_vs(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted character FIRST_VALUE and the the SECOND_STRING follo...
subroutine write_string_idx_vector_lintg(ID, NUM_INDICES, INDICES, DELTA, NUMBER_FIRST, NUMBER_REPEAT, VECTOR, FIRST_FORMAT, REPEAT_FORMAT, ERR, ERROR,)
Writes the given indexed integer VECTOR to the given output stream specified by ID. NUM_INDICES is the number of indices and INDICES(i) contain the indices of the vector to write. The FIRST_FORMAT is the format initially used, followed by the REPEAT_FORMAT which is repeated as many times as necessary. NUMBER_FIRST is the number of data items in the FIRST_FORMAT and NUMBER_REPEAT is the number of data items in the REPEAT_FORMAT. DELTA is the number of actual indices to skip for each index.
subroutine write_string_two_value_sp_vs(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted single precision FIRST_VALUE and the the SECOND_STRIN...
subroutine write_string_vector_lintg(ID, FIRST_IDX, DELTA, LAST_IDX, NUMBER_FIRST, NUMBER_REPEAT, VECTOR, FIRST_FORMAT, REPEAT_FORMAT, ERR, ERROR,)
Writes the given integer VECTOR to the given output stream specified by ID. The FIRST_FORMAT is the f...
subroutine write_string_vector_intg(ID, FIRST_IDX, DELTA, LAST_IDX, NUMBER_FIRST, NUMBER_REPEAT, VECTOR, FIRST_FORMAT, REPEAT_FORMAT, ERR, ERROR,)
Writes the given integer VECTOR to the given output stream specified by ID. The FIRST_FORMAT is the f...
subroutine write_string_fmt_value_dp(ID, FIRST_STRING, VALUE, FORMAT_STRING, ERR, ERROR,)
Writes the FIRST STRING followed by a formatted character VALUE to the given output stream specified ...
subroutine write_string_matrix_sp(ID, FIRST_ROW, DELTA_ROW, LAST_ROW, FIRST_COLUMN, DELTA_COLUMN, LAST_COLUMN, NUMBER_FIRST, NUMBER_REPEAT, MATRIX, INDEX_FORMAT_TYPE, MATRIX_NAME_FORMAT, ROW_INDEX_FORMAT, FIRST_FORMAT, REPEAT_FORMAT, ERR, ERROR,)
Writes the given single precision MATRIX to the given output stream specified by ID. The basic output is determined by the flag INDEX_FORMAT_TYPE. If INDEX_FORMAT_TYPE is WRITE_STRING_MATRIX_NAME_ONLY then the first line of output for each row is MATRIX_NAME_FORMAT concatenated named with the FIRST_FORMAT. If INDEX_FORMAT_TYPE is WRITE_STRING_MATRIX_NAME_AND_INDICES then the first line of output for each row is MATRIX_NAME_FORMAT concatenated with ROW_INDEX_FORMAT and concatenated with FIRST_FORMAT. Note that with a WRITE_STRING_MATRIX_NAME_AND_INDICES index format type the row number will be supplied to the format before the matrix data. The FIRST_FORMAT is the format initially used, followed by the REPEAT_FORMAT which is repeated as many times as necessary. NUMBER_FIRST is the number of data items in the FIRST_FORMAT and NUMBER_REPEAT is the number of data items in the REPEAT_FORMAT. FIRST_ROW/FIRST_COLUMN and LAST_ROW/LAST_COLUMN are the extents of the row/column and DELTA_ROW/DELTA_COLUMN is the NUMBER of indices to skip for each row/column index.
subroutine write_string_fmt_two_value_vs_sp(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted varying string FIRST_VALUE and the the SECOND_STRING ...
Write a string, value, string then a value with the values formatted in a particular way to a given o...
subroutine write_string_vs(ID, STRING, ERR, ERROR,)
Writes the varying string STRING to the given output stream specified by ID.
subroutine write_string_two_value_c_l(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted character FIRST_VALUE and the the SECOND_STRING follo...
subroutine write_string_fmt_two_value_c_l(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted character FIRST_VALUE and the the SECOND_STRING follo...
subroutine write_string_matrix_l(ID, FIRST_ROW, DELTA_ROW, LAST_ROW, FIRST_COLUMN, DELTA_COLUMN, LAST_COLUMN, NUMBER_FIRST, NUMBER_REPEAT, MATRIX, INDEX_FORMAT_TYPE, MATRIX_NAME_FORMAT, ROW_INDEX_FORMAT, FIRST_FORMAT, REPEAT_FORMAT, ERR, ERROR,)
Writes the given logical MATRIX to the given output stream specified by ID. The basic output is deter...
subroutine write_string_fmt_value_lintg(ID, FIRST_STRING, VALUE, FORMAT_STRING, ERR, ERROR,)
Writes the FIRST STRING followed by a formatted character VALUE to the given output stream specified ...
subroutine write_string_fmt_two_value_sp_dp(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted single precision FIRST_VALUE and the the SECOND_STRIN...
Write a string followed by a value formatted in a particular way to a specified output stream...
Write a string followed by a vector to a specified output stream.
subroutine write_string_fmt_two_value_vs_l(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted varying string FIRST_VALUE and the the SECOND_STRING ...
subroutine write_string_vector_dp(ID, FIRST_IDX, DELTA, LAST_IDX, NUMBER_FIRST, NUMBER_REPEAT, VECTOR, FIRST_FORMAT, REPEAT_FORMAT, ERR, ERROR,)
Writes the given double precision VECTOR to the given output stream specified by ID. The FIRST_FORMAT is the format initially used, followed by the REPEAT_FORMAT which is repeated as many times as necessary. NUMBER_FIRST is the number of data items in the FIRST_FORMAT and NUMBER_REPEAT is the number of data items in the REPEAT_FORMAT. FIRST_IDX and LAST_IDX are the extents of the data and DELTA is the NUMBER of indices to skip for each index.
subroutine write_string_fmt_two_value_l_l(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted logical FIRST_VALUE and the the SECOND_STRING followe...
subroutine write_string_value_sp(ID, FIRST_STRING, VALUE, ERR, ERROR,)
Writes the FIRST STRING followed by a formatted character VALUE to the given output stream specified ...
subroutine write_string_two_value_intg_intg(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted integer FIRST_VALUE and the the SECOND_STRING followe...
subroutine write_string_two_value_l_c(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted logical FIRST_VALUE and the the SECOND_STRING followe...
subroutine write_string_fmt_value_sp(ID, FIRST_STRING, VALUE, FORMAT_STRING, ERR, ERROR,)
Writes the FIRST STRING followed by a formatted character VALUE to the given output stream specified ...
subroutine write_string_fmt_two_value_l_dp(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted logical FIRST_VALUE and the the SECOND_STRING followe...
type(varying_string) function, public logical_to_vstring(LOGICALVALUE, ERR, ERROR)
Converts a logical value to either a "TRUE" or "FALSE" varying string.
Definition: strings.f90:879
subroutine write_string_value_l(ID, FIRST_STRING, VALUE, ERR, ERROR,)
Writes the FIRST STRING followed by a formatted character VALUE to the given output stream specified ...
subroutine write_string_fmt_two_value_vs_intg(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted varying string FIRST_VALUE and the the SECOND_STRING ...
subroutine write_string_c(ID, STRING, ERR, ERROR,)
Writes the character STRING to the given output stream specified by ID.
Write a string to a given output stream.
subroutine write_string_two_value_vs_intg(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted varying string FIRST_VALUE and the the SECOND_STRING ...
subroutine write_string_fmt_two_value_l_vs(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted logical FIRST_VALUE and the the SECOND_STRING followe...
subroutine write_string_fmt_two_value_vs_vs(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted varying string FIRST_VALUE and the the SECOND_STRING ...
subroutine write_string_matrix_intg(ID, FIRST_ROW, DELTA_ROW, LAST_ROW, FIRST_COLUMN, DELTA_COLUMN, LAST_COLUMN, NUMBER_FIRST, NUMBER_REPEAT, MATRIX, INDEX_FORMAT_TYPE, MATRIX_NAME_FORMAT, ROW_INDEX_FORMAT, FIRST_FORMAT, REPEAT_FORMAT, ERR, ERROR,)
Writes the given integer MATRIX to the given output stream specified by ID. The basic output is deter...
subroutine write_string_fmt_two_value_sp_l(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted single precision FIRST_VALUE and the the SECOND_STRIN...
Write a string, value, string then a value to a given output stream.
subroutine write_string_two_value_c_intg(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted character FIRST_VALUE and the the SECOND_STRING follo...
subroutine write_string_two_value_vs_sp(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted varying string FIRST_VALUE and the the SECOND_STRING ...
Write a string followed by a vector to a specified output stream.
subroutine write_string_fmt_two_value_l_sp(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted logical FIRST_VALUE and the the SECOND_STRING followe...
subroutine write_string_two_value_l_intg(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted logical FIRST_VALUE and the the SECOND_STRING followe...
subroutine write_string_two_value_dp_intg(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted double precision FIRST_VALUE and the the SECOND_STRIN...
subroutine write_string_two_value_intg_vs(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted integer FIRST_VALUE and the the SECOND_STRING followe...
subroutine write_string_fmt_two_value_intg_c(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted integer FIRST_VALUE and the the SECOND_STRING followe...
subroutine write_string_value_c(ID, FIRST_STRING, VALUE, ERR, ERROR,)
Writes the FIRST STRING followed by a formatted character VALUE to the given output stream specified ...
character(len=maxstrlen), dimension(max_output_lines), save, public op_string
The array of lines to output.
Write a string followed by a indexed vector to a specified output stream.
subroutine write_string_fmt_two_value_dp_intg(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted double precision FIRST_VALUE and the the SECOND_STRIN...
subroutine write_string_fmt_two_value_dp_vs(ID, FIRST_STRING, FIRST_VALUE, FIRST_FORMAT, SECOND_STRING, SECOND_VALUE, SECOND_FORMAT, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted double precision FIRST_VALUE and the the SECOND_STRIN...
subroutine write_string_two_value_dp_dp(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted double precision FIRST_VALUE and the the SECOND_STRIN...
subroutine write_string_value_lintg(ID, FIRST_STRING, VALUE, ERR, ERROR,)
Writes the FIRST STRING followed by a formatted character VALUE to the given output stream specified ...
Flags an error condition.
subroutine write_string_vector_l(ID, FIRST_IDX, DELTA, LAST_IDX, NUMBER_FIRST, NUMBER_REPEAT, VECTOR, FIRST_FORMAT, REPEAT_FORMAT, ERR, ERROR,)
Writes the given logical VECTOR to the given output stream specified by ID. The FIRST_FORMAT is the f...
subroutine write_string_value_intg(ID, FIRST_STRING, VALUE, ERR, ERROR,)
Writes the FIRST STRING followed by a formatted character VALUE to the given output stream specified ...
subroutine write_string_two_value_vs_l(ID, FIRST_STRING, FIRST_VALUE, SECOND_STRING, SECOND_VALUE, ERR, ERROR,)
Writes the FIRST_STRING followed by a formatted varying string FIRST_VALUE and the the SECOND_STRING ...
subroutine write_string_idx_vector_dp(ID, NUM_INDICES, INDICES, DELTA, NUMBER_FIRST, NUMBER_REPEAT, VECTOR, FIRST_FORMAT, REPEAT_FORMAT, ERR, ERROR,)
Writes the given indexed double precision VECTOR to the given output stream specified by ID...
Write a string, value, string then a value to a given output stream.
This module contains all kind definitions.
Definition: kinds.f90:45
subroutine write_string_idx_vector_intg(ID, NUM_INDICES, INDICES, DELTA, NUMBER_FIRST, NUMBER_REPEAT, VECTOR, FIRST_FORMAT, REPEAT_FORMAT, ERR, ERROR,)
Writes the given indexed integer VECTOR to the given output stream specified by ID. NUM_INDICES is the number of indices and INDICES(i) contain the indices of the vector to write. The FIRST_FORMAT is the format initially used, followed by the REPEAT_FORMAT which is repeated as many times as necessary. NUMBER_FIRST is the number of data items in the FIRST_FORMAT and NUMBER_REPEAT is the number of data items in the REPEAT_FORMAT. DELTA is the number of actual indices to skip for each index.
This module handles all formating and input and output.