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

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

  ViewVC Help
Powered by ViewVC 1.1.22