| 1 |
adcroft |
1.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 |