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, 1 month ago) by chuckv
File size: 1423 byte(s)
Log Message:
Import Root

File Contents

# User Rev Content
1 chuckv 4 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