/[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.1 by dimitri, Wed Sep 17 21:45:51 2003 UTC revision 1.21 by dimitri, Thu Sep 30 23:45:07 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    
 To run a pkg/ptracers test case using salt initial and boundary conditions:  
15    
16    ===============================================
17    First check that pkg/ptracers works OK by using
18   cd MITgcm/bin  salinity initial and boundary conditions
19    ===============================================
20    
21    1 ===> get MITgcm code from cvs repository
22    
23     CVSROOT=:pserver:cvsanon@mitgcm.org:/u/gcmpack
24     cvs login ( CVS password: cvsanon )
25     cvs co -r checkpoint51n_branch MITgcm_code
26     cvs co -r checkpoint51n_branch MITgcm/verification/testreport
27     cvs co -r checkpoint51n_branch MITgcm/verification/global_with_exf
28    
29    2 ===> put MITgcm_contrib/ocean_inversion_project in MITgcm directory
30    
31     cd MITgcm
32     cvs co -d ocean_inversion_project MITgcm_contrib/ocean_inversion_project
33    
34    3 ===> compile and link
35    
36     mkdir bin exe
37     cd bin
38   cp ../verification/global_with_exf/code/* .   cp ../verification/global_with_exf/code/* .
39   cp ../code/.genmakerc .   cp ../ocean_inversion_project/code/* .
40   cp ../code/* .   rm ptracers_*.F PTRACERS_OPTIONS.h
41   cp ../code/ptracers_forcing.F.test ptracers_forcing.F   ../tools/genmake2
42   cp ../code/ptracers_init.F.test ptracers_init.F     (on orion: ../tools/genmake2 -of linux_ia64_efc+mpi)
  cp ../code/ptracers_read_mask.F.test ptracers_read_mask.F  
  ../tools/genmake  
43   make depend   make depend
44   make   make
  cd ../exe  
  cp ../verification/global_with_exf/input/* .  
  cp ../input/* .  
  cp ../input/data.ptracers.test data.ptracers  
  mitgcmuv > output .txt  
   
 ===> check that PTRACER output is identical to salinity output  
   
  diff PTRACER30.0000000020.001.001.data PTRACER01.0000000020.001.001.data  
  diff PTRACER30.0000000020.001.001.data S.0000000020.001.001.data  
45    
46  ===> examine interpolation output for 30-region mask  4 ===> execute
47    
48   matlab   cd ../exe
49   mask=zeros(94,44,30);   cp ../verification/global_with_exf/input/eedata .
50   load fort.10   cp ../verification/global_with_exf/input/data.* .
51   for i=1:length(fort)   cp ../verification/global_with_exf/input/POLY3.COEFFS .
52    mask(fort(i,2)+2,fort(i,3)+2,fort(i,1))=fort(i,4);   ln -sf ../verification/global_with_exf/input/*.bin .
53   end   cp ../ocean_inversion_project/input/* .
54   for i=1:30   cp data.test data
55    mypcolor(mask(3:92,3:42,i)');   cp data.ptracers.test data.ptracers
56    colorbar,title(i),pause   mitgcmuv > output.txt
57   end    
58   mypcolor(sum(mask,3)'); colorbar  5 ===> check that PTRACER output and salinity output are identical.
59    
60  =====================================   diff PTRACER01.0000000020.001.001.data S.0000000020.001.001.data
61     diff PTRACER30.0000000020.001.001.data S.0000000020.001.001.data
62     diff PTRtave30.0000000020.001.001.data Stave.0000000020.001.001.data
63     diff PTRtave30.0000000020.001.001.data Stave.0000000020.001.001.data
64    
65    
66  Global ocean experiment with ptracers  ==========================================================
67  =====================================  MPI instructions for carrying out a 3000-year quasi-stationary
68    integration using the global_ocean.90x40x15 configuration.
69    ==========================================================
70    
71     cd MITgcm/exe
72     rm *
73     cd ../bin
74     rm *
75     cp ../verification/global_with_exf/code/* .
76     cp ../ocean_inversion_project/code/* .
77     rm PTRACERS_OPTIONS.h
78     cp CPP_EEOPTIONS.h_mpi CPP_EEOPTIONS.h
79     cp SIZE.h_mpi SIZE.h
80     ../tools/genmake2
81       (on orion: ../tools/genmake2 -of linux_ia64_efc+mpi)
82     make depend
83     make
84     cd ../exe
85     cp ../verification/global_with_exf/input/eedata .
86     cp ../verification/global_with_exf/input/data.* .
87     cp ../verification/global_with_exf/input/POLY3.COEFFS .
88     ln -sf ../verification/global_with_exf/input/*.bin .
89     cp ../ocean_inversion_project/input/* .
90     ln -sf ../ocean_inversion_project/region_mask/30reg_regionmask.bin .
91     ln -sf ../ocean_inversion_project/takahashi/taka02_montlhy.bin .
92     cp data.stationary.1 data
93     mpirun -np 24 dplace -s1 mitgcmuv < /dev/null > & ! errlog &
94       (on orion: qsub job.orion)
95    
96    ==========================================================
97    MPI instructions for carrying out time-dependent, 1765-2005,
98    anthropogenic carbon perturbation tracer experiments using
99    the global_ocean.90x40x15 configuration.
100    ==========================================================
101    
102     cd MITgcm/exe
103     rm *
104     cd ../bin
105     rm *
106     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    
166    ==========================================================
167    Instructions for generating netcdf output files on orion
168    ==========================================================
169    
170    cd ocean_inversion_project/write_netCDF
171    setenv F_UFMTENDIAN big
172    
173    (check that defaults in  mk_output.F are appropriate)
174    
175    efc -W0 -WB mk_output.F write_nc_phys.F nc_util.F \
176         handle_errors.F write_nc_basisfnctns.F \
177         write_nc_diag_0D.F write_nc_diag_2D.F \
178         -I/u2/dmenem/software/netcdf-3.5.0/include \
179         -L/u2/dmenem/software/netcdf-3.5.0/lib -lnetcdf
180    a.out
181    
182    
183    ======================================================
184    
185    % some matlab code for looking at fort.10 debug files
186    load fort.10
187    tak=zeros(90,40,12);
188    for n=1:length(fort)
189     m=fort(n,1); i=fort(n,2); j=fort(n,3);
190     if i>0&i<91&j>0&j<41, tak(i,j,m)=fort(n,4); end
191    end
192    lon=2:4:360; lat=-78:4:78;
193    clf, contourf(lon,lat,mean(tak(:,:,1),3)',-10:10)
194    caxis([-6 6]), colorbar, plotland
195    
196    % some matlab code for looking at PTRACER output files
197    salt=readbin('S.0000000020.001.001.data',[90 40 15],1);
198    tracer=zeros(90,40,15,30);
199    for i=1:30
200     fn=['PTRACER' myint2str(i) '.0000000020.001.001.data'];
201     tracer(:,:,:,i)=readbin(fn,[90 40 15],1);
202     clf, mypcolor(tracer(:,:,1,i)'); pause(1)
203    end
204    tmp=sum(tracer,4); clf, mypcolor(tmp(:,:,1)')
205    mypcolor(
206    
207    
208    % some matlab code for checking that one year's worth of
209    % tracer uptake is approximately 1e18 mols.
210    lon=2:4:360; lat=-78:4:78;
211    thk=[50 70 100 140 190 240 290 340 390 440 490 540 590 640 690];
212    mask=readbin('hFacC.001.001.data',[90 40 15],1);
213    tracer=zeros(90,40,15,30); sumtracer=zeros(30,1);
214    for i=1:30, mydisp(i)
215     fn=['PTRACER' myint2str(i) '.0000001800.001.001.data'];
216     tracer(:,:,:,i)=readbin(fn,[90 40 15],1);
217     for j=1:length(lat)
218      for k=1:length(thk)
219       sumtracer(i) = sumtracer(i) + sum(tracer(:,j,k,i).*mask(:,j,k)) * ...
220                      thk(k) * (4*1.113195e+05)^2 * cos(pi*lat(j)/180);
221      end
222   end   end
223    end
224    plot(1:30,0*sumtracer,1:30,sumtracer)
225    
226    
227    % check that tracer flux is 1e18 mols / year
228    nb_seconds_per_year=31556880;
229    lon=2:4:360; lat=-78:4:78;
230    mask=readbin('hFacC.data',[90 40 15],1);
231    tracer=zeros(90,40,30); sumtracer=zeros(30,1);
232    for i=1:30, mydisp(i)
233     fn=['PtrFlux' myint2str(i) '.0000000180.data'];
234     tracer(:,:,i)=readbin(fn,[90 40],1);
235     for j=1:length(lat)
236        sumtracer(i) = sumtracer(i) + sum(tracer(:,j,i).*mask(:,j,1)) * ...
237            nb_seconds_per_year* (4*1.113195e+05)^2 * cos(pi*lat(j)/180);
238      end
239    end
240    plot(1:30,0*sumtracer,1:30,sumtracer-mmean(sumtracer))

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.21

  ViewVC Help
Powered by ViewVC 1.1.22