/[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.41 by dimitri, Fri Jul 9 23:54:52 2004 UTC revision 1.83 by dimitri, Thu Dec 21 15:16:17 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: July 9, 2004.  
3  Code and input used for integrating cube9.  Forcing fields and other input files needed for the CS510
4    configuration can be obtained from
5    http://ecco2.org/products/model_setups/cs510.html
6    
7    =================
8    UPDATES
9    
10    December 11, 2006: preparing for cube47, same as cube43
11    but with Arctic monthly river runoff climatology
12    
13    December 5, 2006: 216-CPU code for cube46
14    Changed diagnostics to accomodate JMCs latest and some
15    changes to code-mods/CPP_EEOPTIONS.h and W2_OPTIONS.h
16    to speed up code.
17    
18    November 7, 2006: 216-CPU code for cube43
19    Bug fixes in growth.F routine and new set of diagnostics
20    
21    October 15, 2006: 216-CPU code for cube40
22    
23    September 28, 2006: 216-CPU code for cube38
24    
25    September 4, 2006
26    Modified 32*32*6*15 experiments to use grid_cs32.* files from
27     verification/tutorial_held_suarez_cs/input instead of
28     tile* files from verification/global_ocean.cs32x15/input
29    
30    August 8, 2006: 216-CPU code and input used for cube37
31    using "June 10, 2006" MITgcm code.
32    
33    for online T/S profile diagnostics all that is needed is
34      profiles_init_fixed
35      profiles_inloop
36    see pkg/ecco/ecco_cost_init_fixed.F
37        pkg/ecco/cost_averagesfields.F
38    
39    ##########################################################################
40    ##########################################################################
41    # Get forcing files, etc.
42    # Example below is for cube46 on /nobackup2a/menemenl
43    
44    cd /nobackup2a/menemenl
45    mkdir cube47
46    cd cube47
47    ln -sf ../run_template .
48    ln -sf ../ncep_rgau .
49    
50    
51  ##########################################################################  ##########################################################################
52  ##########################################################################  ##########################################################################
53  # getting the code from anonymous CVS server  # getting the code from anonymous CVS server
54    
55      bash or sh shell:
56        $ export CVSROOT=':pserver:cvsanon@mitgcm.org:/u/gcmpack'
57        $ cvs login
58          ( enter the CVS password: "cvsanon" )
59    
60      tcsh or csh shell:
61        $ setenv CVSROOT ':pserver:cvsanon@mitgcm.org:/u/gcmpack'
62        $ cvs login
63          ( enter the CVS password: "cvsanon" )
64    
65  cvs co MITgcm_contrib/high_res_cube/README_ice  cvs co MITgcm_contrib/high_res_cube/README_ice
66  cvs co MITgcm_contrib/high_res_cube/code-mods  cvs co MITgcm_contrib/high_res_cube/code-mods
67  cvs co MITgcm_contrib/high_res_cube/input  cvs co MITgcm_contrib/high_res_cube/input
68  cvs co MITgcm_contrib/high_res_cube/results  cvs co MITgcm_contrib/high_res_cube/results
69  cvs co MITgcm_contrib/edge_problem  cvs co MITgcm_code
70  cvs co -r checkpoint54b_post MITgcm_code  cvs co MITgcm/verification/global_ocean.cs32x15
71  cvs co -r checkpoint54b_post MITgcm/verification/global_ocean.cs32x15  cvs co MITgcm/verification/tutorial_held_suarez_cs/input
72  cvs co -r checkpoint54b_post MITgcm/verification/testreport  
73    
74    ##########################################################################
75    ##########################################################################
76    # 510*510*6*50, 216-cpu cube sphere on altix with ifort and pkg/diagnostics
77    
78    cd MITgcm/verification/global_ocean.cs32x15/code
79    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .
80    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/s216t_85x85/* .
81    \cp SIZE.h_216 SIZE.h
82    \cp packages.conf_hr packages.conf
83    
84    cd ../build
85    \rm *
86    ../../../tools/genmake2 -mods=../code -of ../code/linux_ia64_ifort+mpi_altix_nas
87    make depend
88    make -j
89    
90    cd ..
91    mkdir run
92    cd run
93    \rm *
94    \cp ../input/* .
95    \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
96    ln -sf ../../../../run_template/* .
97    \rm pickup* eedata.mth data.pkg data.seaice data.exf_clim data.exf data.mnc data pr*
98    \rm bathy_Hmin50.bin *192_94* *cs32* *.m lev* tren* job_c* job_altix150 job_altix92_54t
99    ln -sf ../../../../run_template/pickup.0000000216.cube38 pickup.0000000216
100    ln -sf  ../../../../run_template/pickup_seaice.0000000216.cube38 pickup_seaice.0000000216
101    \cp ../build/mitgcmuv .
102    qsub job_altix
103    
104    
105  ##########################################################################  ##########################################################################
# Line 33  cd .. Line 118  cd ..
118  mkdir run  mkdir run
119  cd run  cd run
120  \rm *  \rm *
121    \cp ../../tutorial_held_suarez_cs/input/grid* .
122  \cp ../input/* .  \cp ../input/* .
123  \cp ../../../../MITgcm_contrib/high_res_cube/input/* .  \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
124  ../build/mitgcmuv >& output.txt  ../build/mitgcmuv >& output.txt
# Line 43  comparison output is in: Line 129  comparison output is in:
129  to use matlab to look at the output  to use matlab to look at the output
130  matlab  matlab
131    
132  for fld={'Eta','VICE','UICE','HEFF','AREA','Qsw','Qnet','FV','FU','EmPmR'}  for fld={'SIuice','SIvice','SIheff','SIarea','oceQsw', ...
133      tmp=permute(readbin([fld{1} '.0000000020.data'],[32,6,32]),[1 3 2]);           'surForcT','oceTAUX','oceTAUY','surForcS'}
134        tmp=permute(readbin([fld{1} '.0000000072.data'],[32,6,32]),[1 3 2]);
135      cx=[min(tmp(:)) max(tmp(:))]; clf, plot_cube, title(fld{1}), pause      cx=[min(tmp(:)) max(tmp(:))]; clf, plot_cube, title(fld{1}), pause
136  end  end
137    
138  heff=permute(readbin(['HEFF.0000000020.data'],[32,6,32]),[1 3 2]);  heff=permute(readbin(['SIheff.0000000072.data'],[32,6,32]),[1 3 2]);
139  mask=0*heff; mask(find(heff>.001))=1;  mask=0*heff; mask(find(heff>.001))=1;
140  uice=mask.*permute(readbin(['UICE.0000000020.data'],[32,6,32]),[1 3 2]);  uice=mask.*permute(readbin(['SIuice.0000000072.data'],[32,6,32]),[1 3 2]);
141  vice=mask.*permute(readbin(['VICE.0000000020.data'],[32,6,32]),[1 3 2]);  vice=mask.*permute(readbin(['SIvice.0000000072.data'],[32,6,32]),[1 3 2]);
142  clf  clf
143  subplot(221), mypcolor(uice(:,:,3)'), colorbar, title('uice, tile 3')  subplot(221), mypcolor(uice(:,:,3)'); colorbar, title('uice, tile 3')
144  subplot(222), mypcolor(uice(:,:,6)'), colorbar, title('uice, tile 6')  subplot(222), mypcolor(uice(:,:,6)'); colorbar, title('uice, tile 6')
145  subplot(223), mypcolor(vice(:,:,3)'), colorbar, title('vice, tile 3')  subplot(223), mypcolor(vice(:,:,3)'); colorbar, title('vice, tile 3')
146  subplot(224), mypcolor(vice(:,:,6)'), colorbar, title('vice, tile 6')  subplot(224), mypcolor(vice(:,:,6)'); colorbar, title('vice, tile 6')
147    
148    
149  ##########################################################################  ##########################################################################
# Line 75  cd .. Line 162  cd ..
162  mkdir run  mkdir run
163  cd run  cd run
164  \rm *  \rm *
165    \cp ../../tutorial_held_suarez_cs/input/grid* .
166  \cp ../input/* .  \cp ../input/* .
167  \cp ../../../../MITgcm_contrib/high_res_cube/input/* .  \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
168  ../build/mitgcmuv >& output.txt  ../build/mitgcmuv >& output.txt
169    
 comparison output is in:  
 ../../../../MITgcm_contrib/high_res_cube/results/output.txt  
   
 to use matlab to look at the output  
 matlab  
   
 for fld={'Eta','VICE','UICE','HEFF','AREA','Qsw','Qnet','FV','FU','EmPmR'}  
     tmp=permute(readbin([fld{1} '.0000000020.data'],[32,6,32]),[1 3 2]);  
     cx=[min(tmp(:)) max(tmp(:))]; clf, plot_cube, title(fld{1}), pause  
 end  
   
 heff=permute(readbin(['HEFF.0000000020.data'],[32,6,32]),[1 3 2]);  
 mask=0*heff; mask(find(heff>.001))=1;  
 uice=mask.*permute(readbin(['UICE.0000000020.data'],[32,6,32]),[1 3 2]);  
 vice=mask.*permute(readbin(['VICE.0000000020.data'],[32,6,32]),[1 3 2]);  
 clf  
 subplot(221), mypcolor(uice(:,:,3)'), colorbar, title('uice, tile 3')  
 subplot(222), mypcolor(uice(:,:,6)'), colorbar, title('uice, tile 6')  
 subplot(223), mypcolor(vice(:,:,3)'), colorbar, title('vice, tile 3')  
 subplot(224), mypcolor(vice(:,:,6)'), colorbar, title('vice, tile 6')  
   
170    
171  ##########################################################################  ##########################################################################
172  ##########################################################################  ##########################################################################
173  # 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
174    
175  cd MITgcm/verification/global_ocean.cs32x15/code  cd MITgcm/verification/global_ocean.cs32x15/code
176  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .
# Line 112  cd MITgcm/verification/global_ocean.cs32 Line 179  cd MITgcm/verification/global_ocean.cs32
179    
180  cd ../build  cd ../build
181  \rm *  \rm *
182  ../../../tools/genmake2 -mods=../code -of ../../../tools/build_options/linux_ia64_efc+mpi_altix  ../../../tools/genmake2 -mods=../code -of ../../../tools/build_options/linux_ia64_ifort+mpi_altix_nas
183  make depend  make depend
184  make -j  make -j
185    
# Line 120  cd .. Line 187  cd ..
187  mkdir run  mkdir run
188  cd run  cd run
189  \rm *  \rm *
190    \cp ../../tutorial_held_suarez_cs/input/grid* .
191  \cp ../input/* .  \cp ../input/* .
192  \cp ../../../../MITgcm_contrib/high_res_cube/input/* .  \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
193  mpirun -np 2 ../build/mitgcmuv  mpirun -np 2 ../build/mitgcmuv
# Line 127  mpirun -np 2 ../build/mitgcmuv Line 195  mpirun -np 2 ../build/mitgcmuv
195    
196  ##########################################################################  ##########################################################################
197  ##########################################################################  ##########################################################################
198  # 510*510*6*50, 216-tile, 54-cpu cube sphere on the altices with efc  # 510*510*6*50, 54-tile, 54-cpu cube sphere on the altices with efc
199    # starting with pickup file from end of 1992
200  # 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  
201    
202  cd MITgcm/verification/global_ocean.cs32x15/code  cd MITgcm/verification/global_ocean.cs32x15/code
203  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .
204  \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  
205  \cp packages.conf_hr packages.conf  \cp packages.conf_hr packages.conf
206    
207  cd ../build  cd ../build
# Line 149  cd run Line 216  cd run
216  \rm *  \rm *
217  \cp ../input/* .  \cp ../input/* .
218  \cp ../../../../MITgcm_contrib/high_res_cube/input/* .  \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
219  qsub job_orion  qsub job_altix92_54t
220    
221    
222  ##########################################################################  ##########################################################################
223  ##########################################################################  ##########################################################################
224  # 510*510*6*50, 54-tile, 54-cpu cube sphere on the altices with efc  # 510*510*6*50, 1500-tile, 150-cpu, excludes land
225  # starting with pickup file from end of 1992  # uses s1500t_17x51 configuration
 # requires input files in sudirectories run_template and ncep_rgau  
226    
227  cd MITgcm/verification/global_ocean.cs32x15/code  cd MITgcm/verification/global_ocean.cs32x15/code
228  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .
229  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/s54t_170x170/* .  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/s1500t_17x51/* .
230    \cp SIZE.h_150 SIZE.h
231  \cp packages.conf_hr packages.conf  \cp packages.conf_hr packages.conf
232    
233  cd ../build  cd ../build
234  \rm *  \rm *
235  ../../../tools/genmake2 -mods=../code -of ../../../tools/build_options/linux_ia64_efc+mpi_altix  ../../../tools/genmake2 -mods=../code -of ../../../tools/build_options/linux_ia64_ifort+mpi_altix_nas
236  make depend  make depend
237  make -j  make -j
238    
# Line 175  cd run Line 242  cd run
242  \rm *  \rm *
243  \cp ../input/* .  \cp ../input/* .
244  \cp ../../../../MITgcm_contrib/high_res_cube/input/* .  \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
245  qsub job_altix92_54t  ln -sf ../../../../run_template/* .
246    \rm pickup*
247    ln -sf ../../../../run_template/pickup.0000316440.cube19 pickup.0000000216
248    ln -sf  ../../../../run_template/pickup_seaice.0000316440.cube19 pickup_seaice.0000000216
249    \cp ../build/mitgcmuv mitgcmuv150
250    qsub job_altix150
251    
252    
253  ##########################################################################  ##########################################################################
254  ##########################################################################  ##########################################################################
255  # 510*510*6*50, 216-cpu cube sphere on altix with efc  # 510*510*6*50, 1500-tile, 375-cpu, excludes land
256  # requires input files in sudirectories run_template and ncep_rgau  # uses s1500t_17x51 configuration
257  # these can be obained from lou:/u/menemenl/cube  # example for running on c17-c20 using arrayd
258    
259  cd MITgcm/verification/global_ocean.cs32x15/code  cd MITgcm/verification/global_ocean.cs32x15/code
260  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .
261  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/s216t_85x85/* .  \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/s1500t_17x51/* .
262  \cp SIZE.h_216 SIZE.h  \cp SIZE.h_375 SIZE.h
263  \cp packages.conf_hr packages.conf  \cp packages.conf_hr packages.conf
264    
265  cd ../build  cd ../build
266  \rm *  \rm *
267  ../../../tools/genmake2 -mods=../code -of ../../../tools/build_options/linux_ia64_efc+mpi_altix  ../../../tools/genmake2 -mods=../code -of ../../../tools/build_options/linux_ia64_ifort+mpi_altix_nas
268  make depend  make depend
269  make -j  make -j
270    
# Line 202  cd run Line 274  cd run
274  \rm *  \rm *
275  \cp ../input/* .  \cp ../input/* .
276  \cp ../../../../MITgcm_contrib/high_res_cube/input/* .  \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
277  qsub job_altix92  ln -sf ../../../../run_template/* .
278    \rm pickup*
279    ln -sf ../../../../run_template/pickup.0000316440.cube19 pickup.0000000216
280    ln -sf  ../../../../run_template/pickup_seaice.0000316440.cube19 pickup_seaice.0000000216
281    \cp ../build/mitgcmuv .
282    job_c20_375cpu < /dev/null >&! output.run &
283    
284    
285    ##########################################################################
286    ##########################################################################
287    # 510*510*6*50, 1500-tile, 375-cpu, excludes land
288    # uses s1500t_17x51 configuration
289    # example for running on c17-c20 using arrayd
290    
291    cd MITgcm/verification/global_ocean.cs32x15/code
292    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .
293    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/s1500t_17x51/* .
294    \cp SIZE.h_375 SIZE.h
295    \cp packages.conf_hr packages.conf
296    
297    cd ../build
298    \rm *
299    ../../../tools/genmake2 -mods=../code -of ../../../tools/build_options/linux_ia64_ifort+mpi_altix_nas
300    make depend
301    make -j
302    
303    cd ..
304    mkdir run
305    cd run
306    \rm *
307    \cp ../input/* .
308    \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
309    ln -sf ../../../../run_template/* .
310    \rm pickup*
311    ln -sf ../../../../run_template/pickup.0000316440.cube19 pickup.0000000216
312    ln -sf  ../../../../run_template/pickup_seaice.0000316440.cube19 pickup_seaice.0000000216
313    \cp ../build/mitgcmuv .
314    job_c20_375cpu < /dev/null >&! output.run &
315    
316    
317    ##########################################################################
318    ##########################################################################
319    # 510*510*6*50, 1500-tile, 500-cpu, excludes land
320    # uses s1500t_17x51 configuration
321    # example for running on c17-c20 using arrayd
322    
323    cd MITgcm/verification/global_ocean.cs32x15/code
324    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .
325    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/s1500t_17x51/* .
326    \cp SIZE.h_500 SIZE.h
327    \cp packages.conf_hr packages.conf
328    
329    cd ../build
330    \rm *
331    ../../../tools/genmake2 -mods=../code -of ../../../tools/build_options/linux_ia64_ifort+mpi_altix_nas
332    make depend
333    make -j
334    
335    cd ..
336    mkdir run
337    cd run
338    \rm *
339    \cp ../input/* .
340    \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
341    ln -sf ../../../../run_template/* .
342    \rm pickup*
343    ln -sf ../../../../run_template/pickup.0000316440.cube19 pickup.0000000216
344    ln -sf  ../../../../run_template/pickup_seaice.0000316440.cube19 pickup_seaice.0000000216
345    \cp ../build/mitgcmuv .
346    job_c19_500cpu < /dev/null >&! output.run &
347    
348    
349    ##########################################################################
350    ##########################################################################
351    # 510*510*6*50, 216-cpu cube sphere on cosmos
352    
353    cd MITgcm/verification/global_ocean.cs32x15/code
354    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .
355    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/s216t_85x85/* .
356    \cp SIZE.h_216 SIZE.h
357    \cp packages.conf_hr packages.conf
358    
359    module unload latest_intel80
360    module unload mpich-gm-intel80
361    module load latest_intel81
362    module load mpich-gm-intel81
363    
364    cd ../build
365    \rm *
366    ../../../tools/genmake2 -mods=../code -of ../../../tools/build_options/linux_ia32_ifort+mpi_cosmos
367    make depend
368    make -j
369    
370    cd ..
371    mkdir run
372    cd run
373    \rm *
374    \cp ../input/* .
375    \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
376    ln -sf ../../../../run_template/* .
377    \rm pickup*
378    ln -sf ../../../../run_template/pickup.0000316440.cube19 pickup.0000000216
379    ln -sf  ../../../../run_template/pickup_seaice.0000316440.cube19 pickup_seaice.0000000216
380    \cp ../build/mitgcmuv .
381    bsub < job_cosmos
382    
383    
384    ##########################################################################
385    ##########################################################################
386    # 510*510*6*50, 216-tile, 54-cpu cube sphere on the altices with efc
387    # requires input files in sudirectories run_template and ncep_rgau
388    # presently residing under orion:/tmp1/dmenem/cube
389    
390    cd MITgcm/verification/global_ocean.cs32x15/code
391    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/* .
392    \cp ../../../../MITgcm_contrib/high_res_cube/code-mods/s216t_85x85/* .
393    \cp SIZE.h_54 SIZE.h
394    \cp packages.conf_hr packages.conf
395    
396    cd ../build
397    \rm *
398    ../../../tools/genmake2 -mods=../code -of ../../../tools/build_options/linux_ia64_efc+mpi_altix
399    make depend
400    make -j
401    
402    cd ..
403    mkdir run
404    cd run
405    \rm *
406    \cp ../input/* .
407    \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
408    qsub job_orion
409    
410    
411  ##########################################################################  ##########################################################################
# Line 282  cd run Line 460  cd run
460  \cp ../input/* .  \cp ../input/* .
461  \cp ../../../../MITgcm_contrib/high_res_cube/input/* .  \cp ../../../../MITgcm_contrib/high_res_cube/input/* .
462  qsub job_orion  qsub job_orion
   
   
 ##########################################################################  
 ##########################################################################  
 # matlab script for generating pChkptFreq  
   
 nTimeSteps=26352;  
 for niter0=216:26352:(26352*12)  
  pChkptFreq=(niter0+nTimeSteps)*1200;  
  day=pChkptFreq/24/60/60;  
  disp(['niter0=' int2str(niter0) ',day=' int2str(day) ', ' ...  
  datestr(datenum(1992,1,1)+day) ', pChkptFreq=' int2str(pChkptFreq)])  
 end  
   
 niter0 = 216   , day = 369 , 04-Jan-1993, pChkptFreq = 31881600  
 niter0 = 26568 , day = 735 , 05-Jan-1994, pChkptFreq = 63504000  
 niter0 = 52920 , day = 1101, 06-Jan-1995, pChkptFreq = 95126400  
 niter0 = 79272 , day = 1467, 07-Jan-1996, pChkptFreq = 126748800  
 niter0 = 105624, day = 1833, 07-Jan-1997, pChkptFreq = 158371200  
 niter0 = 131976, day = 2199, 08-Jan-1998, pChkptFreq = 189993600  
 niter0 = 158328, day = 2565, 09-Jan-1999, pChkptFreq = 221616000  
 niter0 = 184680, day = 2931, 10-Jan-2000, pChkptFreq = 253238400  
 niter0 = 211032, day = 3297, 10-Jan-2001, pChkptFreq = 284860800  
 niter0 = 237384, day = 3663, 11-Jan-2002, pChkptFreq = 316483200  
 niter0 = 263736, day = 4029, 12-Jan-2003, pChkptFreq = 348105600  
 niter0 = 290088, day = 4395, 13-Jan-2004, pChkptFreq = 379728000  

Legend:
Removed from v.1.41  
changed lines
  Added in v.1.83

  ViewVC Help
Powered by ViewVC 1.1.22