| 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 | adcroft | 1.2 | if ( ~isempty(CONFIG.usegmredi) & CONFIG.usegmredi=='true') | 
| 67 | adcroft | 1.1 | 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 |