/[MITgcm]/MITgcm_contrib/ocean_inversion_project/README
ViewVC logotype

Diff of /MITgcm_contrib/ocean_inversion_project/README

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

revision 1.2 by dimitri, Thu Sep 18 02:33:38 2003 UTC revision 1.31 by dimitri, Wed Aug 24 21:12:01 2005 UTC
# Line 3  Ocean Inversion Project Line 3  Ocean Inversion Project
3    
4  Instructions for using pkg/ptracers to compute tracer  Instructions for using pkg/ptracers to compute tracer
5  Green's functions for Gruber's ocean inversion project  Green's functions for Gruber's ocean inversion project
6  (http://quercus.igpp.ucla.edu/OceanInversion/).  (see quercus.igpp.ucla.edu/OceanInversion/ for details).
7    
8    Preprocessed OceanInversion input files are available
9    under directories region_mask, takahashi, and
10    atm_co2 in this package.  All netcdf input files
11    have been converted to binary format in order to avoid
12    having to link netcdf library with MITgcm code.  See
13    respective README files in each directory for details.
14    
15    Instructions for CFC-11 computations are in
16    cvs co -r release1_50yr MITgcm_code
17    cvs co -r release1_50yr MITgcm/verification/global_with_CFC11
18    MITgcm/verification/global_with_CFC11/README
19    
20    
21    Notes and problems:
22    ===================
23    
24    there is problem generating ECCO_MaskAreaBathy.nc on columbia
25    works OK on nireas
26    
27    variable global_mean_conc in 0D output from mk_output.F is
28    screwed up
29    
30    
31    
32  ===============================================  ===============================================
# Line 13  salinity initial and boundary conditions Line 36  salinity initial and boundary conditions
36    
37  1 ===> get MITgcm code from cvs repository  1 ===> get MITgcm code from cvs repository
38    
39   CVSROOT=:pserver:cvsanon@mitgcm.org:/u/u0/gcmpack   cvs co -r checkpoint51n_branch MITgcm_code
40   cvs login ( CVS password: cvsanon )   cvs co -r checkpoint51n_branch MITgcm/verification/testreport
41   cvs co MITgcm   cvs co -r checkpoint51n_branch MITgcm/verification/global_with_exf
42    
43  2 ===> put MITgcm_contrib/ocean_inversion_project in MITgcm directory  2 ===> put MITgcm_contrib/ocean_inversion_project in MITgcm directory
44    
45   cd MITgcm   cd MITgcm
46   cvs co -d ocean_inversion_project MITgcm_contrib/ocean_inversion_project   cvs co -d ocean_inversion_project MITgcm_contrib/ocean_inversion_project
47    
48  3 ===> compile  3 ===> compile and link
49    
50     mkdir bin exe
51   cd bin   cd bin
52   cp ../verification/global_with_exf/code/* .   \cp ../verification/global_with_exf/code/* .
53   cp ../ocean_inversion_project/code/.genmakerc .   \cp ../ocean_inversion_project/code/* .
54   cp ../ocean_inversion_project/code/* .   \rm ptracers_*.F PTRACERS_OPTIONS.h
55   cp ../ocean_inversion_project/code/ptracers_forcing.F.test ptracers_forcing.F   ../tools/genmake2
56   cp ../ocean_inversion_project/code/ptracers_init.F.test ptracers_init.F     (on orion:    ../tools/genmake2 -of linux_ia64_efc+mpi       )
57   cp ../ocean_inversion_project/code/ptracers_read_mask.F.test ptracers_read_mask.F     (on columbia: ../tools/genmake2 -of linux_ia64_efc+mpi_altix )
  ../tools/genmake  
58   make depend   make depend
59   make   make -j 16
60    
61  4 ===> execute  4 ===> execute
62    
63   cd ../exe   cd ../exe
64   cp ../verification/global_with_exf/input/* .   \cp ../verification/global_with_exf/input/eedata .
65   cp ../ocean_inversion_project/input/* .   \cp ../verification/global_with_exf/input/data.* .
66   cp ../ocean_inversion_project/input/data.ptracers.test data.ptracers   \cp ../verification/global_with_exf/input/POLY3.COEFFS .
67   mitgcmuv > output .txt   \ln -sf ../verification/global_with_exf/input/*.bin .
68       \cp ../ocean_inversion_project/input/* .
69  5 ===> check that PTRACER output for tracer 1 and tracer 30   \cp data.test data
70    ===> is identical to salinity output   \cp data.ptracers.test data.ptracers
71     ./mitgcmuv >! output.txt
72    
73    5 ===> check that PTRACER output and salinity output are identical.
74    
75   diff PTRACER01.0000000020.001.001.data S.0000000020.001.001.data   diff PTRACER01.0000000020.001.001.data S.0000000020.001.001.data
76   diff PTRACER30.0000000020.001.001.data S.0000000020.001.001.data   diff PTRACER30.0000000020.001.001.data S.0000000020.001.001.data
77     diff PTRtave30.0000000020.001.001.data Stave.0000000020.001.001.data
78     diff PTRtave30.0000000020.001.001.data Stave.0000000020.001.001.data
79    
80    
81  ======================================================  ==========================================================
82  Second generate binary input files.  netcdf files are not OK  MPI instructions for carrying out a 3000-year quasi-stationary
83    integration using the global_ocean.90x40x15 configuration.
84    ==========================================================
85    
86     cd MITgcm/exe
87     rm *
88     cd ../bin
89     rm *
90     cp ../verification/global_with_exf/code/* .
91     cp ../ocean_inversion_project/code/* .
92     rm PTRACERS_OPTIONS.h
93     cp CPP_EEOPTIONS.h_mpi CPP_EEOPTIONS.h
94     cp SIZE.h_mpi SIZE.h
95     ../tools/genmake2
96       (on orion: ../tools/genmake2 -of linux_ia64_efc+mpi)
97     make depend
98     make
99     cd ../exe
100     cp ../verification/global_with_exf/input/eedata .
101     cp ../verification/global_with_exf/input/data.* .
102     cp ../verification/global_with_exf/input/POLY3.COEFFS .
103     ln -sf ../verification/global_with_exf/input/*.bin .
104     cp ../ocean_inversion_project/input/* .
105     ln -sf ../ocean_inversion_project/region_mask/30reg_regionmask.bin .
106     ln -sf ../ocean_inversion_project/takahashi/taka02_montlhy.bin .
107     cp data.stationary.1 data
108     mpirun -np 24 dplace -s1 mitgcmuv < /dev/null > & ! errlog &
109       (on orion: qsub job.orion)
110    
111    
112    ==========================================================
113    MPI instructions for carrying out time-dependent, 1765-2005,
114    anthropogenic carbon perturbation tracer experiments using
115    the global_ocean.90x40x15 configuration.
116    ==========================================================
117    
118     cd MITgcm/exe
119     rm *
120     cd ../bin
121     rm *
122     cp ../verification/global_with_exf/code/* .
123     cp ../ocean_inversion_project/code/* .
124     cp CPP_EEOPTIONS.h_mpi CPP_EEOPTIONS.h
125     cp SIZE.h_mpi SIZE.h
126     ../tools/genmake2
127       (on orion: ../tools/genmake2 -of linux_ia64_efc+mpi)
128     make depend
129     make
130     cd ../exe
131     cp ../verification/global_with_exf/input/eedata .
132     cp ../verification/global_with_exf/input/data.* .
133     cp ../verification/global_with_exf/input/POLY3.COEFFS .
134     ln -sf ../verification/global_with_exf/input/*.bin .
135     cp ../ocean_inversion_project/input/* .
136     cp data.1765-2005 data
137     ln -sf ../ocean_inversion_project/region_mask/30reg_regionmask.bin .
138     ln -sf ../ocean_inversion_project/takahashi/taka02_montlhy.bin .
139     ln -sf ../ocean_inversion_project/atm_co2/splco2_cis92a.dat .
140     mpirun -np 24 dplace -s1 mitgcmuv < /dev/null > & ! errlog &
141       (on orion: qsub job.orion.td)
142    
143    
144    ==========================================================
145    Instructions for carrying out time-dependent, 1765-2005,
146    anthropogenic carbon perturbation tracer experiments using
147    global_ocean.90x40x15 configuration and netcdf output.
148    This assumes that the appropriate libnetcdf.a exists
149    and that it be specified in the genmake2 option file.
150    ==========================================================
151    
152     cd MITgcm/exe
153     rm *
154     cd ../bin
155     rm *
156     cp ../verification/global_with_exf/code/* .
157     cp ../ocean_inversion_project/code/* .
158     cp PTRACERS_OPTIONS.h.netcdf PTRACERS_OPTIONS.h
159     cp ../ocean_inversion_project/write_netCDF/*  .
160     \rm mk_output.F
161    
162  ======================================================  ### need customized option file; example below is for nireas
163  ======================================================   ../tools/genmake2 -of linux_ia32_g77_netcdf
 ======================================================  
 ======================================================  
164    
  cd MITgcm/bin  
  cp ../verification/global_with_exf/code/* .  
  cp ../code/.genmakerc .  
  cp ../code/* .  
  cp ../code/ptracers_forcing.F.test ptracers_forcing.F  
  cp ../code/ptracers_init.F.test ptracers_init.F  
  cp ../code/ptracers_read_mask.F.test ptracers_read_mask.F  
  ../tools/genmake  
165   make depend   make depend
166   make   make
167   cd ../exe   cd ../exe
168   cp ../verification/global_with_exf/input/* .   cp ../verification/global_with_exf/input/eedata .
169   cp ../input/* .   cp ../verification/global_with_exf/input/data.* .
170   cp ../input/data.ptracers.test data.ptracers   cp ../verification/global_with_exf/input/POLY3.COEFFS .
171   mitgcmuv > output .txt   ln -sf ../verification/global_with_exf/input/*.bin .
172     cp ../ocean_inversion_project/input/* .
173  ===> examine interpolation output for 30-region mask   cp data.1765-2005.1 data
174     ln -sf ../ocean_inversion_project/region_mask/30reg_regionmask.bin .
175   matlab   ln -sf ../ocean_inversion_project/takahashi/taka02_montlhy.bin .
176   mask=zeros(94,44,30);   ln -sf ../ocean_inversion_project/atm_co2/splco2_cis92a.dat .
177   load fort.10   mitgcmuv > output .txt &
178   for i=1:length(fort)  
179    mask(fort(i,2)+2,fort(i,3)+2,fort(i,1))=fort(i,4);  
180   end  ==========================================================
181   for i=1:30  Instructions for carrying out time-dependent, 1765-2005,
182    mypcolor(mask(3:92,3:42,i)');  anthropogenic carbon perturbation tracer experiments using
183    colorbar,title(i),pause  the ecco1x1 configuration and netcdf output on columbia.
184   end  This assumes that the appropriate libnetcdf.a exists
185   mypcolor(sum(mask,3)'); colorbar  and that it be specified in the genmake2 option file.
186    It also assumes that surface forcing files are available
187    in MITgcm/../iter69
188    ==========================================================
189    
190     cd MITgcm/exe
191     \rm *
192     cd ../bin
193     \rm *
194     \cp ../ocean_inversion_project/code_ecco1x1/* .
195     \cp ../ocean_inversion_project/write_netCDF/*  .
196     \rm mk_output.F
197     \cp SIZE.h.96 SIZE.h
198     ../tools/genmake2 -of linux_ia64_efc+mpi_altix
199     make depend
200     make -j 16
201     cd ../exe
202     \cp ../ocean_inversion_project/input_ecco1x1/* .
203     ln -sf ../../iter69/* .
204     ln -sf ../ocean_inversion_project/region_mask/30reg_regionmask.bin .
205     ln -sf ../ocean_inversion_project/takahashi/taka02_montlhy.bin .
206     ln -sf ../ocean_inversion_project/atm_co2/splco2_cis92a.dat .
207     qsub job01
208    
209    
210    ==========================================================
211    Instructions for carrying out 3000-year quasi-stationary
212    integration using the ecco1x1 configuration and netcdf
213    output on columbia.
214    This assumes that the appropriate libnetcdf.a exists
215    and that it be specified in the genmake2 option file.
216    It also assumes that surface forcing files are available
217    in MITgcm/../iter69
218    ==========================================================
219    
220     cd MITgcm/exe
221     \rm *
222     cd ../bin
223     \rm *
224     \cp ../ocean_inversion_project/code_ecco1x1/* .
225     \cp ../ocean_inversion_project/write_netCDF/*  .
226     \rm mk_output.F
227     \cp SIZE.h.96 SIZE.h
228     \cp PTRACERS_OPTIONS.h.stationary PTRACERS_OPTIONS.h
229     ../tools/genmake2 -of linux_ia64_efc+mpi_altix
230     make depend
231     make -j 16
232     cd ../exe
233     \cp ../ocean_inversion_project/input_ecco1x1/* .
234     \ln -sf ../../iter69/* .
235     \ln -sf ../ocean_inversion_project/region_mask/30reg_regionmask.bin .
236     \ln -sf ../ocean_inversion_project/takahashi/taka02_montlhy.bin .
237     qsub job01s
238    
 =====================================  
239    
240    ==========================================================
241    Instructions for generating netcdf output files on columbia
242    ==========================================================
243    
244  Global ocean experiment with ptracers  cd ocean_inversion_project/write_netCDF
245  =====================================  setenv F_UFMTENDIAN big
246    
247  ===> set up and integrate 30-tracer computation  (check that defaults in  mk_output.F are appropriate)
248    
249   cd MITgcm/bin  ifort -assume byterecl -W0 -WB mk_output.F write_nc_phys.F nc_util.F \
250   cp ../verification/global_with_exf/code/* .       handle_errors.F write_nc_basisfnctns.F \
251   cp ../code/.genmakerc .       write_nc_diag_0D.F write_nc_diag_2D.F \
252   cp ../code/* .       -I/u/menemenl/software/netcdf-3.5.0/include \
253   ../tools/genmake       -L/u/menemenl/software/netcdf-3.5.0/lib -lnetcdf
254   make depend  ./a.out
255   make  
256   cd ../exe  
257   cp ../verification/global_with_exf/input/* .  ==========================================================
258   cp ../input/* .  Instructions for generating netcdf output files on orion
259   mitgcmuv > output .txt  ==========================================================
260    
261  ===> look at output  cd ocean_inversion_project/write_netCDF
262    setenv F_UFMTENDIAN big
263   matlab  
264   for i=1:30  (check that defaults in  mk_output.F are appropriate)
265    tr=readbin(['PTRACER' myint2str(i) ...  
266                '.0000000020.001.001.data'],[90 40 15],1);  efc -W0 -WB mk_output.F write_nc_phys.F nc_util.F \
267    mypcolor(tr(:,:,2)'), colorbar, pause(1)       handle_errors.F write_nc_basisfnctns.F \
268         write_nc_diag_0D.F write_nc_diag_2D.F \
269         -I/u2/dmenem/software/netcdf-3.5.0/include \
270         -L/u2/dmenem/software/netcdf-3.5.0/lib -lnetcdf
271    ./a.out
272    
273    
274    ======================================================
275    
276    % some matlab code for looking at fort.10 debug files
277    load fort.10
278    tak=zeros(90,40,12);
279    for n=1:length(fort)
280     m=fort(n,1); i=fort(n,2); j=fort(n,3);
281     if i>0&i<91&j>0&j<41, tak(i,j,m)=fort(n,4); end
282    end
283    lon=2:4:360; lat=-78:4:78;
284    clf, contourf(lon,lat,mean(tak(:,:,1),3)',-10:10)
285    caxis([-6 6]), colorbar, plotland
286    
287    % some matlab code for looking at PTRACER output files
288    salt=readbin('S.0000000020.001.001.data',[90 40 15],1);
289    tracer=zeros(90,40,15,30);
290    for i=1:30
291     fn=['PTRACER' myint2str(i) '.0000000020.001.001.data'];
292     tracer(:,:,:,i)=readbin(fn,[90 40 15],1);
293     clf, mypcolor(tracer(:,:,1,i)'); pause(1)
294    end
295    tmp=sum(tracer,4); clf, mypcolor(tmp(:,:,1)')
296    mypcolor(
297    
298    
299    % some matlab code for checking that one year's worth of
300    % tracer uptake is approximately 1e18 mols.
301    lon=2:4:360; lat=-78:4:78;
302    thk=[50 70 100 140 190 240 290 340 390 440 490 540 590 640 690];
303    mask=readbin('hFacC.001.001.data',[90 40 15],1);
304    tracer=zeros(90,40,15,30); sumtracer=zeros(30,1);
305    for i=1:30, mydisp(i)
306     fn=['PTRACER' myint2str(i) '.0000001800.001.001.data'];
307     tracer(:,:,:,i)=readbin(fn,[90 40 15],1);
308     for j=1:length(lat)
309      for k=1:length(thk)
310       sumtracer(i) = sumtracer(i) + sum(tracer(:,j,k,i).*mask(:,j,k)) * ...
311                      thk(k) * (4*1.113195e+05)^2 * cos(pi*lat(j)/180);
312      end
313   end   end
314    end
315    plot(1:30,0*sumtracer,1:30,sumtracer)
316    
317    
318    % check that tracer flux is 1e18 mols / year
319    nb_seconds_per_year=31556880;
320    lon=2:4:360; lat=-78:4:78;
321    mask=readbin('hFacC.data',[90 40 15],1);
322    tracer=zeros(90,40,30); sumtracer=zeros(30,1);
323    for i=1:30, mydisp(i)
324     fn=['PtrFlux' myint2str(i) '.0000000180.data'];
325     tracer(:,:,i)=readbin(fn,[90 40],1);
326     for j=1:length(lat)
327        sumtracer(i) = sumtracer(i) + sum(tracer(:,j,i).*mask(:,j,1)) * ...
328            nb_seconds_per_year* (4*1.113195e+05)^2 * cos(pi*lat(j)/180);
329      end
330    end
331    plot(1:30,0*sumtracer,1:30,sumtracer-mmean(sumtracer))

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.31

  ViewVC Help
Powered by ViewVC 1.1.22