/[MITgcm]/MITgcm_contrib/high_res_cube/README_ice
ViewVC logotype

Diff of /MITgcm_contrib/high_res_cube/README_ice

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

revision 1.20 by dimitri, Sun Jan 25 06:33:20 2004 UTC revision 1.64 by dimitri, Tue Aug 8 13:45:43 2006 UTC
# Line 1  Line 1 
1  Instructions for setting up a cube-sphere integration with sea-ice.  Instructions for setting up a cube-sphere integration with sea-ice.
2  Date last tested: January 24, 2004.  Date last updated: August 8, 2006
3  This is the code used for cube2 the second 1992-2002 510x510x6  216-CPU code and input used for integrating cube37
4  cube-sphere integration.  using "June 10, 2006" MITgcm code.
5    
6    
7  ##########################################################################  ##########################################################################
8  ##########################################################################  ##########################################################################
9  # getting the code from anonymous CVS server  # getting the code from anonymous CVS server
10    
11  setenv CVSROOT :pserver:cvsanon@mitgcm.org:/u/u0/gcmpack  cvs co MITgcm_contrib/high_res_cube/README_ice
12  cvs login ( CVS password: cvsanon )  cvs co MITgcm_contrib/high_res_cube/code-mods
13  cvs co -r hrcube_2 MITgcm_contrib/high_res_cube/README_ice  cvs co MITgcm_contrib/high_res_cube/input
14  cvs co -r hrcube_2 MITgcm_contrib/high_res_cube/code-mods  cvs co MITgcm_contrib/high_res_cube/results
15  cvs co -r hrcube_2 MITgcm_contrib/high_res_cube/matlab-grid-converter  cvs co MITgcm_code
16  cvs co -r hrcube_2 MITgcm_contrib/high_res_cube/input  cvs co MITgcm/verification/global_ocean.cs32x15
 cvs co -r hrcube_2 MITgcm_contrib/high_res_cube/results  
 cvs co -r hrcube_2 MITgcm_code  
 cvs co -r hrcube_2 MITgcm/verification/global_ocean.cs32x15  
17    
18    
19  ##########################################################################  ##########################################################################
# Line 25  cvs co -r hrcube_2 MITgcm/verification/g Line 22  cvs co -r hrcube_2 MITgcm/verification/g
22    
23  cd MITgcm/verification/global_ocean.cs32x15/code  cd MITgcm/verification/global_ocean.cs32x15/code
24  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .
25  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/s12t_16x32/* .  \cp ../../../utils/exch2/code-mods/s12t_16x32/* .
26    cd ../build
27  cd ..  \rm *
 mkdir build  
 cd build  
28  ../../../tools/genmake2 -mods=../code  ../../../tools/genmake2 -mods=../code
29  make depend  make depend
30  make  make
   
31  cd ..  cd ..
32  mkdir run  mkdir run
33  cd run  cd run
34    \rm *
35  \cp ../input/* .  \cp ../input/* .
 \cp ../../../../MITgcm_contrib/high_res_cube/matlab-grid-converter/tile00* .  
36  \cp ../../../../MITgcm_contrib/high_res_cube/input/* .  \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
37  ../build/mitgcmuv >& output.txt  ../build/mitgcmuv >& output.txt
38    
# Line 48  comparison output is in: Line 42  comparison output is in:
42  to use matlab to look at the output  to use matlab to look at the output
43  matlab  matlab
44    
45  for fld={'Eta','VICE','UICE','HEFF','AREA','Qsw','Qnet','FV','FU','EmPmR'}  for fld={'VICEtave','UICEtave','HEFFtave','AREAtave','QSWtave', ...
46             'QNETtave','FVtave','FUtave','EmPmRtave'}
47      tmp=permute(readbin([fld{1} '.0000000020.data'],[32,6,32]),[1 3 2]);      tmp=permute(readbin([fld{1} '.0000000020.data'],[32,6,32]),[1 3 2]);
48      cx=[min(tmp(:)) max(tmp(:))]; clf, plot_cube, title(fld{1}), pause      cx=[min(tmp(:)) max(tmp(:))]; clf, plot_cube, title(fld{1}), pause
49  end  end
50    
51  heff=permute(readbin(['HEFF.0000000020.data'],[32,6,32]),[1 3 2]);  heff=permute(readbin(['HEFFtave.0000000020.data'],[32,6,32]),[1 3 2]);
52  mask=0*heff; mask(find(heff>.001))=1;  mask=0*heff; mask(find(heff>.001))=1;
53  uice=mask.*permute(readbin(['UICE.0000000020.data'],[32,6,32]),[1 3 2]);  uice=mask.*permute(readbin(['UICEtave.0000000020.data'],[32,6,32]),[1 3 2]);
54  vice=mask.*permute(readbin(['VICE.0000000020.data'],[32,6,32]),[1 3 2]);  vice=mask.*permute(readbin(['VICEtave.0000000020.data'],[32,6,32]),[1 3 2]);
55  clf  clf
56  subplot(221), mypcolor(uice(:,:,3)'), colorbar, title('uice, tile 3')  subplot(221), mypcolor(uice(:,:,3)'); colorbar, title('uice, tile 3')
57  subplot(222), mypcolor(uice(:,:,6)'), colorbar, title('uice, tile 6')  subplot(222), mypcolor(uice(:,:,6)'); colorbar, title('uice, tile 6')
58  subplot(223), mypcolor(vice(:,:,3)'), colorbar, title('vice, tile 3')  subplot(223), mypcolor(vice(:,:,3)'); colorbar, title('vice, tile 3')
59  subplot(224), mypcolor(vice(:,:,6)'), colorbar, title('vice, tile 6')  subplot(224), mypcolor(vice(:,:,6)'); colorbar, title('vice, tile 6')
60    
61    
62    ##########################################################################
63    ##########################################################################
64    # 32*32*6*15, 17-tile, 1-cpu cube sphere experiment
65    
66    cd MITgcm/verification/global_ocean.cs32x15/code
67    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .
68    \cp ../code_alt/code.176t_8x4/* .
69    cd ../build
70    \rm *
71    ../../../tools/genmake2 -mods=../code
72    make depend
73    make
74    cd ..
75    mkdir run
76    cd run
77    \rm *
78    \cp ../input/* .
79    \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
80    ../build/mitgcmuv >& output.txt
81    
82    
83  ##########################################################################  ##########################################################################
84  ##########################################################################  ##########################################################################
85  # 32*32*6*15, 2-cpu cube sphere on the altices with efc  # 32*32*6*15, 2-cpu cube sphere on the altices with ifort
86    
87  cd MITgcm/verification/global_ocean.cs32x15/code  cd MITgcm/verification/global_ocean.cs32x15/code
88  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .
89  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/s12t_16x32/* .  \cp ../../../utils/exch2/code-mods/s12t_16x32/* .
90  \cp SIZE.h_mpi SIZE.h  \cp SIZE.h_mpi SIZE.h
 \cp CPP_EEOPTIONS.h_mpi CPP_EEOPTIONS.h  
91    
92  cd ..  cd ../build
 mkdir build  
 cd build  
93  \rm *  \rm *
94  ../../../tools/genmake2 -mods=../code -of ../../../tools/build_options/linux_ia64_efc+mpi  ../../../tools/genmake2 -mods=../code -of ../../../tools/build_options/linux_ia64_ifort+mpi_altix_nas
95  make depend  make depend
96  make  make -j
97    
98  cd ..  cd ..
99  mkdir run  mkdir run
100  cd run  cd run
101  \rm *  \rm *
102  \cp ../input/* .  \cp ../input/* .
 \cp ../../../../MITgcm_contrib/high_res_cube/matlab-grid-converter/tile00* .  
103  \cp ../../../../MITgcm_contrib/high_res_cube/input/* .  \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
104  mpirun -np 2 ../build/mitgcmuv  mpirun -np 2 ../build/mitgcmuv
105    
106    
107  ##########################################################################  ##########################################################################
108  ##########################################################################  ##########################################################################
109  # 510*510*6*50, 54-cpu cube sphere on the altices with efc  # 510*510*6*50, 54-tile, 54-cpu cube sphere on the altices with efc
110    # starting with pickup file from end of 1992
111  # requires input files in sudirectories run_template and ncep_rgau  # requires input files in sudirectories run_template and ncep_rgau
 # presently residing under orion:/tmp1/dmenem/cube  
112    
113  cd MITgcm/verification/global_ocean.cs32x15/code  cd MITgcm/verification/global_ocean.cs32x15/code
114  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .
115  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/s216t_85x85/* .  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/s54t_170x170/* .
 \cp SIZE.h_54 SIZE.h  
 \cp CPP_EEOPTIONS.h_mpi CPP_EEOPTIONS.h  
116  \cp packages.conf_hr packages.conf  \cp packages.conf_hr packages.conf
 \cp mom_vi_hdissip.F_hr mom_vi_hdissip.F  
117    
118  cd ..  cd ../build
 mkdir build  
 cd build  
119  \rm *  \rm *
120  ../../../tools/genmake2 -mods=../code -of ../../../tools/build_options/linux_ia64_efc+mpi  ../../../tools/genmake2 -mods=../code -of ../../../tools/build_options/linux_ia64_efc+mpi_altix
121  make depend  make depend
122  make  make -j
123    
124  cd ..  cd ..
125  mkdir run  mkdir run
# Line 120  cd run Line 127  cd run
127  \rm *  \rm *
128  \cp ../input/* .  \cp ../input/* .
129  \cp ../../../../MITgcm_contrib/high_res_cube/input/* .  \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
130  qsub job_orion  qsub job_altix92_54t
131    
132    
133  ##########################################################################  ##########################################################################
134  ##########################################################################  ##########################################################################
135  # 510*510*6*50, 216-cpu cube sphere on altix with efc  # 510*510*6*50, 216-cpu cube sphere on altix with ifort and pkg/diagnostics
136  # requires input files in sudirectories run_template and ncep_rgau  # requires input files in sudirectories run_template and ncep_rgau
137  # these can be obained from lou:/u/menemenl/cube  # these can be obained from lou:/u/menemenl/cube
138    
# Line 133  cd MITgcm/verification/global_ocean.cs32 Line 140  cd MITgcm/verification/global_ocean.cs32
140  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .
141  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/s216t_85x85/* .  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/s216t_85x85/* .
142  \cp SIZE.h_216 SIZE.h  \cp SIZE.h_216 SIZE.h
 \cp CPP_EEOPTIONS.h_mpi CPP_EEOPTIONS.h  
143  \cp packages.conf_hr packages.conf  \cp packages.conf_hr packages.conf
144  \cp mom_vi_hdissip.F_hr mom_vi_hdissip.F  
145    cd ../build
146    \rm *
147    ../../../tools/genmake2 -mods=../code -of ../../../tools/build_options/linux_ia64_ifort+mpi_altix_nas
148    make depend
149    make -j
150    
151    cd ..
152    mkdir run
153    cd run
154    \rm *
155    \cp ../input/* .
156    \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
157    ln -sf ../../../../run_template/* .
158    \rm pickup* data.pkg data.seaice data.exf_clim data.exf data
159    \rm *192_94* *cs32* *.m lev* tren* job_c* job_altix150 job_altix92_54t
160    ln -sf ../../../../run_template/pickup.0000000216.cube27 pickup.0000000216
161    ln -sf  ../../../../run_template/pickup_seaice.0000000216.cube27 pickup_seaice.0000000216
162    \cp ../build/mitgcmuv .
163    qsub job_altix
164    
165    
166    ##########################################################################
167    ##########################################################################
168    # 510*510*6*50, 1500-tile, 150-cpu, excludes land
169    # uses s1500t_17x51 configuration
170    
171    cd MITgcm/verification/global_ocean.cs32x15/code
172    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .
173    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/s1500t_17x51/* .
174    \cp SIZE.h_150 SIZE.h
175    \cp packages.conf_hr packages.conf
176    
177    cd ../build
178    \rm *
179    ../../../tools/genmake2 -mods=../code -of ../../../tools/build_options/linux_ia64_ifort+mpi_altix_nas
180    make depend
181    make -j
182    
183  cd ..  cd ..
184  mkdir build  mkdir run
185  cd build  cd run
186    \rm *
187    \cp ../input/* .
188    \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
189    ln -sf ../../../../run_template/* .
190    \rm pickup*
191    ln -sf ../../../../run_template/pickup.0000316440.cube19 pickup.0000000216
192    ln -sf  ../../../../run_template/pickup_seaice.0000316440.cube19 pickup_seaice.0000000216
193    \cp ../build/mitgcmuv mitgcmuv150
194    qsub job_altix150
195    
196    
197    
198    
199    ##########################################################################
200    ##########################################################################
201    # 510*510*6*50, 1500-tile, 375-cpu, excludes land
202    # uses s1500t_17x51 configuration
203    # example for running on c17-c20 using arrayd
204    
205    cd MITgcm/verification/global_ocean.cs32x15/code
206    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .
207    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/s1500t_17x51/* .
208    \cp SIZE.h_375 SIZE.h
209    \cp packages.conf_hr packages.conf
210    
211    cd ../build
212    \rm *
213    ../../../tools/genmake2 -mods=../code -of ../../../tools/build_options/linux_ia64_ifort+mpi_altix_nas
214    make depend
215    make -j
216    
217    cd ..
218    mkdir run
219    cd run
220    \rm *
221    \cp ../input/* .
222    \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
223    ln -sf ../../../../run_template/* .
224    \rm pickup*
225    ln -sf ../../../../run_template/pickup.0000316440.cube19 pickup.0000000216
226    ln -sf  ../../../../run_template/pickup_seaice.0000316440.cube19 pickup_seaice.0000000216
227    \cp ../build/mitgcmuv .
228    job_c20_375cpu < /dev/null >&! output.run &
229    
230    
231    
232    
233    
234    
235    
236    
237    
238    
239    
240    
241    ##########################################################################
242    ##########################################################################
243    # 510*510*6*50, 1500-tile, 375-cpu, excludes land
244    # uses s1500t_17x51 configuration
245    # example for running on c17-c20 using arrayd
246    
247    cd MITgcm/verification/global_ocean.cs32x15/code
248    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .
249    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/s1500t_17x51/* .
250    \cp SIZE.h_375 SIZE.h
251    \cp packages.conf_hr packages.conf
252    
253    cd ../build
254    \rm *
255    ../../../tools/genmake2 -mods=../code -of ../../../tools/build_options/linux_ia64_ifort+mpi_altix_nas
256    make depend
257    make -j
258    
259    cd ..
260    mkdir run
261    cd run
262    \rm *
263    \cp ../input/* .
264    \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
265    ln -sf ../../../../run_template/* .
266    \rm pickup*
267    ln -sf ../../../../run_template/pickup.0000316440.cube19 pickup.0000000216
268    ln -sf  ../../../../run_template/pickup_seaice.0000316440.cube19 pickup_seaice.0000000216
269    \cp ../build/mitgcmuv .
270    job_c20_375cpu < /dev/null >&! output.run &
271    
272    
273    ##########################################################################
274    ##########################################################################
275    # 510*510*6*50, 1500-tile, 500-cpu, excludes land
276    # uses s1500t_17x51 configuration
277    # example for running on c17-c20 using arrayd
278    
279    cd MITgcm/verification/global_ocean.cs32x15/code
280    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .
281    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/s1500t_17x51/* .
282    \cp SIZE.h_500 SIZE.h
283    \cp packages.conf_hr packages.conf
284    
285    cd ../build
286    \rm *
287    ../../../tools/genmake2 -mods=../code -of ../../../tools/build_options/linux_ia64_ifort+mpi_altix_nas
288    make depend
289    make -j
290    
291    cd ..
292    mkdir run
293    cd run
294    \rm *
295    \cp ../input/* .
296    \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
297    ln -sf ../../../../run_template/* .
298    \rm pickup*
299    ln -sf ../../../../run_template/pickup.0000316440.cube19 pickup.0000000216
300    ln -sf  ../../../../run_template/pickup_seaice.0000316440.cube19 pickup_seaice.0000000216
301    \cp ../build/mitgcmuv .
302    job_c19_500cpu < /dev/null >&! output.run &
303    
304    
305    
306    
307    
308    ##########################################################################
309    ##########################################################################
310    # 510*510*6*50, 216-cpu cube sphere on cosmos
311    
312    cd MITgcm/verification/global_ocean.cs32x15/code
313    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .
314    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/s216t_85x85/* .
315    \cp SIZE.h_216 SIZE.h
316    \cp packages.conf_hr packages.conf
317    
318    module unload latest_intel80
319    module unload mpich-gm-intel80
320    module load latest_intel81
321    module load mpich-gm-intel81
322    
323    cd ../build
324    \rm *
325    ../../../tools/genmake2 -mods=../code -of ../../../tools/build_options/linux_ia32_ifort+mpi_cosmos
326    make depend
327    make -j
328    
329    cd ..
330    mkdir run
331    cd run
332    \rm *
333    \cp ../input/* .
334    \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
335    ln -sf ../../../../run_template/* .
336    \rm pickup*
337    ln -sf ../../../../run_template/pickup.0000316440.cube19 pickup.0000000216
338    ln -sf  ../../../../run_template/pickup_seaice.0000316440.cube19 pickup_seaice.0000000216
339    \cp ../build/mitgcmuv .
340    bsub < job_cosmos
341    
342    
343    
344    
345    
346    
347    
348    
349    
350    
351    
352    
353    
354    
355    
356    
357    
358    
359    
360    
361    ##########################################################################
362    ##########################################################################
363    # 510*510*6*50, 216-tile, 54-cpu cube sphere on the altices with efc
364    # requires input files in sudirectories run_template and ncep_rgau
365    # presently residing under orion:/tmp1/dmenem/cube
366    
367    cd MITgcm/verification/global_ocean.cs32x15/code
368    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .
369    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/s216t_85x85/* .
370    \cp SIZE.h_54 SIZE.h
371    \cp packages.conf_hr packages.conf
372    
373    cd ../build
374  \rm *  \rm *
375  ../../../tools/genmake2 -mods=../code -of ../../../tools/build_options/linux_ia64_efc+mpi_altix  ../../../tools/genmake2 -mods=../code -of ../../../tools/build_options/linux_ia64_efc+mpi_altix
376  make depend  make depend
377  make  make -j
378    
379  cd ..  cd ..
380  mkdir run  mkdir run
# Line 151  cd run Line 382  cd run
382  \rm *  \rm *
383  \cp ../input/* .  \cp ../input/* .
384  \cp ../../../../MITgcm_contrib/high_res_cube/input/* .  \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
385  qsub job_altix  qsub job_orion
386    
387    
388  ##########################################################################  ##########################################################################
389  ##########################################################################  ##########################################################################
390  # matlab script for generating pChkptFreq  # 510*510*6*50, 205-tile, 41-cpu cube sphere on the altices with efc
391    # requires input files in sudirectories run_template and ncep_rgau
392    # presently residing under orion:/tmp1/dmenem/cube
393    
394  nTimeSteps=26352;  cd MITgcm/verification/global_ocean.cs32x15/code
395  for niter0=216:26352:(26352*11)  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .
396   pChkptFreq=(niter0+nTimeSteps)*1200;  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/s205t_85x85/* .
397   day=pChkptFreq/24/60/60;  \cp SIZE.h_41 SIZE.h
398   disp(['niter0=' int2str(niter0) ',day=' int2str(day) ', ' ...  \cp packages.conf_hr packages.conf
  datestr(datenum(1992,1,1)+day) ', pChkptFreq=' int2str(pChkptFreq)])  
 end  
399    
400  niter0 = 216   , day = 369 , 04-Jan-1993, pChkptFreq = 31881600  cd ../build
401  niter0 = 26568 , day = 735 , 05-Jan-1994, pChkptFreq = 63504000  \rm *
402  niter0 = 52920 , day = 1101, 06-Jan-1995, pChkptFreq = 95126400  ../../../tools/genmake2 -mods=../code -of ../../../tools/build_options/linux_ia64_efc+mpi_altix
403  niter0 = 79272 , day = 1467, 07-Jan-1996, pChkptFreq = 126748800  make depend
404  niter0 = 105624, day = 1833, 07-Jan-1997, pChkptFreq = 158371200  make -j
405  niter0 = 131976, day = 2199, 08-Jan-1998, pChkptFreq = 189993600  
406  niter0 = 158328, day = 2565, 09-Jan-1999, pChkptFreq = 221616000  cd ..
407  niter0 = 184680, day = 2931, 10-Jan-2000, pChkptFreq = 253238400  mkdir run
408  niter0 = 211032, day = 3297, 10-Jan-2001, pChkptFreq = 284860800  cd run
409  niter0 = 237384, day = 3663, 11-Jan-2002, pChkptFreq = 316483200  \rm *
410  niter0 = 263736, day = 4029, 12-Jan-2003, pChkptFreq = 348105600  \cp ../input/* .
411    \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
412    qsub job_orion41
413    
414    
415    ##########################################################################
416    ##########################################################################
417    # 510*510*6*50, 1500-tile, 50-cpu cube sphere on the altices with efc
418    # requires input files in sudirectories run_template and ncep_rgau
419    # presently residing under orion:/tmp1/dmenem/cube
420    
421    cd MITgcm/verification/global_ocean.cs32x15/code
422    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .
423    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/s1500t_17x51/* .
424    \cp SIZE.h_50 SIZE.h
425    \cp packages.conf_hr packages.conf
426    
427    cd ../build
428    \rm *
429    ../../../tools/genmake2 -mods=../code -of ../../../tools/build_options/linux_ia64_efc+mpi_altix
430    make depend
431    make -j
432    
433    cd ..
434    mkdir run
435    cd run
436    \rm *
437    \cp ../input/* .
438    \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
439    qsub job_orion

Legend:
Removed from v.1.20  
changed lines
  Added in v.1.64

  ViewVC Help
Powered by ViewVC 1.1.22