| 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 (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 |