ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/nano_mpi/src/strings_module.F90
Revision: 4
Committed: Mon Jun 10 17:18:36 2002 UTC (22 years ago) by chuckv
File size: 1423 byte(s)
Log Message:
Import Root

File Contents

# Content
1 MODULE STRINGS
2 IMPLICIT NONE
3 CONTAINS
4 !=======================================================
5 LOGICAL FUNCTION STRCMP(sStr1,sStr2)
6 !Comparison of two C strings or a C string and Fortran
7 !string. Stops comparison when it finds \0.
8
9 CHARACTER*(*),INTENT(IN):: sStr1
10 CHARACTER*(*),INTENT(IN):: sStr2
11
12 INTEGER:: Len1, Len2, k
13
14 Len1=LEN(sStr1)
15 Len2=LEN(sStr2)
16 STRCMP=.TRUE.
17 k=1
18 DO
19 IF (k.GT.Len1 .OR. k.GT.Len2) RETURN
20 IF (sStr1(k:k).EQ.CHAR(0) .AND. sStr2(k:k).EQ.CHAR(0)) THEN
21 RETURN
22 ELSE IF (sStr1(k:k).NE.sStr2(k:k)) THEN
23 STRCMP=.FALSE.
24 RETURN
25 END IF
26 k=k+1
27 END DO
28
29 END FUNCTION STRCMP
30 !=========================================================
31 FUNCTION C2F(sStr)
32 !C string to Fortran string conversion. Resulting string
33 !is padded with blanks.
34
35 CHARACTER(*),INTENT(IN):: sStr
36 CHARACTER(LEN=LEN(sStr)):: C2F
37
38 INTEGER:: nRes
39
40 nRes=SCAN(sStr,CHAR(0))
41 IF (nRes.EQ.0) THEN
42 C2F=sStr
43 ELSE
44 C2F=sStr(1:nRes-1)
45 END IF
46
47 END FUNCTION C2F
48 !=========================================================
49 INTEGER FUNCTION CLEN(szString)
50 !C-length of zero-terminated string
51
52 CHARACTER(*),INTENT(IN):: szString
53
54 CLEN=SCAN(szString,CHAR(0))
55 IF (CLEN.EQ.0) CLEN=LEN(szString)
56
57 END FUNCTION CLEN
58 !=========================================================
59 END MODULE
60
61 !!F2C string conversion is simple (TRIM(String)//CHAR(0)).
62
63