/[MITgcm]/MITgcm_contrib/many_tracers/new_code/make_default_dlabel_list.F
ViewVC logotype

Contents of /MITgcm_contrib/many_tracers/new_code/make_default_dlabel_list.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1.1.1 - (show annotations) (download) (vendor branch)
Thu Jun 15 02:23:54 2006 UTC (17 years, 11 months ago) by cnh
Branch: initial, MAIN
CVS Tags: start, HEAD
Changes since 1.1: +0 -0 lines
Initial checkin

1 C PROGRAM MAIN
2 C INTEGER NLL
3 C PARAMETER (NLL=3800)
4 C CHARACTER*2 LL(NLL)
5 C
6 C INTEGER I
7 C
8 C CALL MAKE_DEFAULT_DLABEL_LIST( LL, NLL )
9 C
10 C DO I=1, NLL
11 C PRINT *, LL(I)
12 C ENDDO
13 C
14 C
15 C END
16 SUBROUTINE MAKE_DEFAULT_DLABEL_LIST(LL, NLL)
17 C
18 C Make sequenced label list 00, 02, 03, ... 99, 0a...0Z...9a...9Z,a0...ZZ
19 C to more than 99 TRACERS but without requiring more than two digit labels.
20 C Sequence below allows 3800 tracers. First 99 are numbered in decimal,
21 C sequence after that is from C[12]SET2 and then C[12]SET3.
22 C
23 C == Routine arguments ==
24 INTEGER NLL
25 CHARACTER*2 LL(NLL)
26
27 C == Local variables ==
28 CHARACTER*10 C1SET1
29 CHARACTER*10 C2SET1
30
31 CHARACTER*52 C1SET2
32 CHARACTER*10 C2SET2
33
34 CHARACTER*62 C1SET3
35 CHARACTER*52 C2SET3
36
37 INTEGER I, J, N, NLLMAX
38 INTEGER L11, L21, L12, L22, L13, L23
39
40 C1SET1 = '0123456789'
41 C2SET1 = '0123456789'
42 L11 = LEN(C1SET1)
43 L21 = LEN(C2SET1)
44
45 C1SET2 = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMONPQRSTUVWXYZ'
46 C2SET2 = '0123456789'
47 L12 = LEN(C1SET2)
48 L22 = LEN(C2SET2)
49
50 C1SET3 =
51 & '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMONPQRSTUVWXYZ'
52 C2SET3 = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMONPQRSTUVWXYZ'
53 L13 = LEN(C1SET3)
54 L23 = LEN(C2SET3)
55
56 C Set a default. This shouldn't show up unless there is
57 C a problem where NLL is greater than L11*L21 + L12*L22 + L13*L23
58 DO I=1,NLL
59 LL(I) = '--'
60 ENDDO
61
62 N = 0
63 DO J=1,L21
64 DO I=1,L11
65 IF ( I.NE.1 .OR. J.NE.1) THEN
66 N=N+1
67 IF ( N .LE. NLL ) THEN
68 LL(N)(2:2) = C1SET1(I:I)
69 LL(N)(1:1) = C2SET1(J:J)
70 ENDIF
71 ENDIF
72 ENDDO
73 ENDDO
74
75 DO J=1,L22
76 DO I=1,L12
77 N=N+1
78 IF ( N .LE. NLL ) THEN
79 LL(N)(2:2) = C1SET2(I:I)
80 LL(N)(1:1) = C2SET2(J:J)
81 ENDIF
82 ENDDO
83 ENDDO
84
85 DO J=1,L23
86 DO I=1,L13
87 N=N+1
88 IF ( N .LE. NLL ) THEN
89 LL(N)(2:2) = C1SET3(I:I)
90 LL(N)(1:1) = C2SET3(J:J)
91 ENDIF
92 ENDDO
93 ENDDO
94
95 RETURN
96 END

  ViewVC Help
Powered by ViewVC 1.1.22