1 |
function [CONFIG] = loadconfig(varargin) |
2 |
%loadconfig() |
3 |
%loadconfig(DIRECTORY) |
4 |
% |
5 |
%Reads MITgcm parameter input files ("data") to create a CONFIG structure |
6 |
%If DIRECTORY is not specified the current working directory is used. |
7 |
% |
8 |
%e.g. |
9 |
% >> CONFIG=loadconfig; |
10 |
% >> CONFIG2=loadconfig('/scratch/john/run2/'); |
11 |
% |
12 |
%Written by adcroft@mit.edu, 2002 |
13 |
%$Header: |
14 |
|
15 |
if nargin==0 |
16 |
Dir='./'; |
17 |
elseif nargin==1 |
18 |
Dir=[varargin{1} '/']; |
19 |
else |
20 |
error('I don''t know what to do with the second argument'); |
21 |
end |
22 |
|
23 |
% Extract names of forcing files from "data" file |
24 |
datafile=[Dir 'data']; |
25 |
|
26 |
fid=fopen(datafile,'r'); |
27 |
if fid==-1 |
28 |
error(['Could not open file:' datafile ' for reading']); |
29 |
end |
30 |
|
31 |
CONFIG.tinitfile=grepparameter(datafile,'hydrogthetafile'); |
32 |
CONFIG.sinitfile=grepparameter(datafile,'hydrogsaltfile'); |
33 |
CONFIG.sstfile=grepparameter(datafile,'thetaclimfile'); |
34 |
CONFIG.sssfile=grepparameter(datafile,'saltclimfile'); |
35 |
CONFIG.tauxfile=grepparameter(datafile,'zonalwindfile'); |
36 |
CONFIG.tauyfile=grepparameter(datafile,'meridwindfile'); |
37 |
CONFIG.qfile=grepparameter(datafile,'surfqfile'); |
38 |
CONFIG.empmrfile=grepparameter(datafile,'empmrfile'); |
39 |
|
40 |
CONFIG.dt=grepparameter(datafile,'deltat'); |
41 |
CONFIG.tau_cd=grepparameter(datafile,'taucd'); |
42 |
CONFIG.tau_t=grepparameter(datafile,'tauthetaclimrelax'); |
43 |
CONFIG.tau_s=grepparameter(datafile,'tausaltclimrelax'); |
44 |
|
45 |
CONFIG.diffkh=grepparameter(datafile,'diffkh'); |
46 |
CONFIG.viscar=grepparameter(datafile,'visca[rz]'); |
47 |
CONFIG.viscah=grepparameter(datafile,'viscah'); |
48 |
CONFIG.visca4=grepparameter(datafile,'visca4'); |
49 |
CONFIG.diffkht=grepparameter(datafile,'diffkht'); |
50 |
CONFIG.diffk4t=grepparameter(datafile,'diffk4t'); |
51 |
CONFIG.diffkrt=grepparameter(datafile,'diffk[rz]t'); |
52 |
CONFIG.diffkhs=grepparameter(datafile,'diffkhs'); |
53 |
CONFIG.diffk4s=grepparameter(datafile,'diffk4s'); |
54 |
CONFIG.diffkrs=grepparameter(datafile,'diffk[rz]s'); |
55 |
|
56 |
CONFIG.rhonil=grepparameter(datafile,'rhonil'); |
57 |
if isempty(CONFIG.rhonil); CONFIG.rhonil=1000; end |
58 |
|
59 |
CONFIG.hfacmin=grepparameter(datafile,'hfacmin'); |
60 |
CONFIG.hfacmindr=grepparameter(datafile,'hfacmind[rz]'); |
61 |
|
62 |
CONFIG.usegmredi=grepparameter([datafile '.pkg'],'usegmredi'); |
63 |
CONFIG.useptracers=grepparameter([datafile '.pkg'],'useptracers'); |
64 |
CONFIG.usekpp=grepparameter([datafile '.pkg'],'usekpp'); |
65 |
|
66 |
if ( ~isempty(CONFIG.usegmredi) & CONFIG.usegmredi=='true') |
67 |
CONFIG.background_k=grepparameter([datafile '.gmredi'],'gm_background_k'); |
68 |
CONFIG.taper_scheme=grepparameter([datafile '.gmredi'],'gm_taper_scheme'); |
69 |
CONFIG.maxslope=grepparameter([datafile '.gmredi'],'gm_maxslope'); |
70 |
CONFIG.kmin_horiz=grepparameter([datafile '.gmredi'],'gm_kmin_horiz'); |
71 |
end |