33Module Getargs
44 USE NFDETYPES , ONLY: BUFSIZE
55 implicit none
6- private
6+ private
77
88 public getcommandargument,commandargumentcount
99
1010contains
1111
1212 subroutine getcommandargument (chain2 ,posic ,argum ,length ,status )
13- character (LEN= BUFSIZE) :: chain2,argum
14- integer (kind= 4 ) :: i,length,status,posic,n,comienzo,finale,j
15-
16- ! length is unused
17- ! first remove all multiple blanks
18- do i= 1 ,len (trim (adjustl (chain2)))
19- if (chain2(i : i)==' ' ) then
20- rebus: do j= i+1 ,len (trim (adjustl (chain2)))
21- if (chain2(j : j)/= ' ' ) then
22- chain2(i+1 :)= chain2(j :)
23- exit rebus
24- endif
25- end do rebus
26- endif
27- end do
13+ character (LEN= BUFSIZE) :: chain2, argum, argument
14+ integer (kind= 4 ) :: length, status, posic
15+ integer (kind= 4 ) :: n
2816
17+ CALL getarg(posic, argument)
18+
19+ argum = argument
2920 status= 0
30- comienzo= 0
31- finale= 0
32- chain2= ' ' // trim (adjustl (chain2))// ' '
33- n= 0
34- busqueda1 : do i= 1 ,len (trim (adjustl (chain2)))+ 2
35- if (chain2(i : i)==' ' ) n= n+1
36- if (n== posic) then
37- do j= i+1 ,len (trim (adjustl (chain2)))+ 2
38- if (chain2(j : j)/= ' ' ) comienzo= j
39- exit busqueda1
40- end do
41- endif
42- end do busqueda1
43-
44-
45- busqueda2 : do i= comienzo,len (trim (adjustl (chain2)))+ 2
46- if (chain2(i : i)==' ' ) then
47- finale= i-1
48- continue
49- exit busqueda2
50- endif
51- end do busqueda2
52- if (comienzo* finale== 0 ) status= 1
53- argum= trim (adjustl (chain2(comienzo : finale)))
5421
5522 ! 100615 para evitar el crlf del .sh
5623 if ( (argum(1 :1 ) ==char (10 )) .or. (argum(1 :1 ) ==char (13 )) .or. (argum(1 :1 )==char ( 0 )) ) then
@@ -63,36 +30,10 @@ subroutine getcommandargument(chain2,posic,argum,length,status)
6330
6431 function commandargumentcount (chain2 )
6532 character (LEN= BUFSIZE) :: chain2
66- integer (kind= 4 ) :: status,n,i,j,commandargumentcount
67-
68-
69- ! !if (chain2(1 : 5)=='-----') then
70- ! ! n=command_argument_count()
71- ! !else
72- ! length is unused
73- ! first remove all multiple blanks
74- do i= 1 ,len (trim (adjustl (chain2)))
75- if (chain2(i : i)==' ' ) then
76- rebus: do j= i+1 ,len (trim (adjustl (chain2)))
77- if (chain2(j : j)/= ' ' ) then
78- chain2(i+1 :)= chain2(j :)
79- exit rebus
80- endif
81- end do rebus
82- endif
83- end do
84-
85-
86- n= 1
87- do i= 1 ,len (trim (adjustl (chain2)))
88- if (chain2(i : i)==' ' ) then
89- n= n+1
90- endif
91- end do
33+ integer (kind= 4 ) :: status,n,commandargumentcount
34+ n = command_argument_count()
9235 status= 0
93- ! !!!!!endif
9436 commandargumentcount= n
9537 return
9638 end function
97-
9839end module
0 commit comments