/[MITgcm]/MITgcm/verification/global_ocean.90x40x15/diags_matlab/mit_getparm.m
ViewVC logotype

Contents of /MITgcm/verification/global_ocean.90x40x15/diags_matlab/mit_getparm.m

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download)
Tue Oct 22 13:30:40 2002 UTC (21 years, 7 months ago) by mlosch
Branch: MAIN
CVS Tags: checkpoint57t_post, checkpoint58l_post, checkpoint48f_post, checkpoint46k_post, checkpoint51k_post, checkpoint53f_post, checkpoint47j_post, checkpoint54a_pre, checkpoint55c_post, checkpoint53b_pre, checkpoint48d_pre, checkpoint51l_post, checkpoint51j_post, branch-exfmods-tag, checkpoint47e_post, checkpoint57m_post, checkpoint47i_post, checkpoint52l_pre, checkpoint48i_post, checkpoint52e_pre, checkpoint58e_post, checkpoint57v_post, checkpoint57g_pre, checkpoint52j_post, checkpoint47f_post, checkpoint48d_post, checkpoint51o_pre, checkpoint57f_post, checkpoint50e_post, checkpoint52e_post, checkpoint50c_post, checkpoint57s_post, checkpoint51n_pre, checkpoint47d_post, checkpoint57j_post, checkpoint58b_post, checkpoint58m_post, checkpoint47a_post, checkpoint57b_post, checkpoint46l_pre, checkpoint53c_post, checkpoint53d_post, checkpoint57f_pre, checkpoint48a_post, checkpoint55d_pre, checkpoint46n_post, checkpoint51f_pre, checkpoint57g_post, checkpoint48e_post, checkpoint57a_post, checkpoint48h_post, checkpoint55j_post, checkpoint56b_post, checkpoint50c_pre, checkpoint57h_pre, checkpoint57y_post, branchpoint-genmake2, checkpoint46l_post, checkpoint58g_post, checkpoint57x_post, checkpoint52j_pre, checkpoint54a_post, branch-netcdf, checkpoint50d_pre, checkpoint55h_post, checkpoint51r_post, checkpoint52b_pre, checkpoint52n_post, checkpoint54b_post, checkpoint58h_post, checkpoint51i_post, checkpoint57e_post, checkpoint54d_post, checkpoint47h_post, checkpoint48c_post, checkpoint56c_post, checkpoint54e_post, checkpoint58j_post, checkpoint55b_post, checkpoint51e_post, checkpoint51b_post, checkpoint57h_post, checkpoint51l_pre, checkpoint52m_post, checkpoint51c_post, checkpoint57y_pre, checkpoint55, checkpoint53a_post, checkpoint55a_post, checkpoint57c_pre, checkpoint48, checkpoint49, checkpoint47b_post, checkpoint53b_post, checkpoint57o_post, checkpoint55g_post, checkpoint57r_post, checkpoint51o_post, checkpoint48g_post, checkpoint57k_post, checkpoint57d_post, checkpoint55f_post, checkpoint57i_post, checkpoint51q_post, checkpoint52l_post, checkpoint52k_post, checkpoint58, checkpoint57a_pre, checkpoint54, checkpoint57, checkpoint56, checkpoint51, checkpoint50, checkpoint53, checkpoint52, checkpoint50d_post, checkpoint52d_post, checkpoint46m_post, checkpoint51b_pre, checkpoint52a_post, checkpoint57h_done, checkpoint47g_post, checkpoint58f_post, checkpoint52b_post, checkpoint53g_post, checkpoint52f_post, checkpoint57n_post, checkpoint52c_post, checkpoint58d_post, checkpoint57w_post, checkpoint57p_post, checkpint57u_post, checkpoint51h_pre, checkpoint58a_post, checkpoint50g_post, checkpoint58i_post, checkpoint57q_post, checkpoint51g_post, ecco_c52_e35, checkpoint57z_post, checkpoint54f_post, checkpoint51f_post, checkpoint48b_post, checkpoint50b_post, eckpoint57e_pre, checkpoint58c_post, checkpoint58k_post, checkpoint57c_post, checkpoint50f_post, checkpoint50a_post, checkpoint50f_pre, checkpoint52a_pre, checkpoint47d_pre, checkpoint51d_post, checkpoint48c_pre, checkpoint51m_post, checkpoint51t_post, checkpoint53d_pre, checkpoint47, checkpoint55e_post, checkpoint54c_post, checkpoint50h_post, checkpoint52i_post, checkpoint51a_post, checkpoint50e_pre, checkpoint50i_post, checkpoint51p_post, checkpoint51n_post, checkpoint55i_post, checkpoint51i_pre, checkpoint57l_post, checkpoint52i_pre, checkpoint51u_post, checkpoint52h_pre, checkpoint52f_pre, checkpoint50b_pre, checkpoint56a_post, checkpoint51s_post, checkpoint55d_post
Branch point for: netcdf-sm0, branch-genmake2, branch-nonh, tg2-branch, checkpoint51n_branch, release1, branch-exfmods-curt
 fixed the verification/global_ocean.90x40x15 experiment:
 - new bathymetry (the world according to A., JMC, and M.)
 - new initial fields and forcing fields (*.bin files)
 - new POLY3.COEFFS (for the next release one should switch to a full
   equation of state: JMD95P or MDJWF)
 - fixed several errors and redundancies in the data file
 - experiment uses looped cells
 - added matlab directory with diagnostic scripts for plotting of output

1 function y = mit_getparm(fname,pname);
2 %function y = mit_getparm(fname,pname);
3
4 y = [];
5 [fp, msg] = fopen(fname,'r');
6 if fp > 0
7 str{1} = [];
8 notfound = 0;
9 while isempty(mystrfind(str{1},pname))
10 str{1} = fgetl(fp);
11 if ~ischar(str{1}); % this catches the end of file (not very clean)
12 notfound = 1;
13 break;
14 end
15 % clear again if commented
16 if ~isempty(mystrfind(str{1},'#'))
17 str{1} = [];
18 end
19 end
20 if notfound
21 disp(['Warning: ' pname ' not found in ' fname])
22 y=[];
23 % disp([' setting ' pname ' to zero'])
24 % y = 0;
25 else
26 teststr = [];
27 % find the termination of parameter pname
28 % (next line with an '=' sign
29 % or with a namelist termination character '&' or '/')
30 n = 1;
31 while ( isempty(mystrfind(teststr,'=')) & ...
32 isempty(mystrfind(teststr,'&')) & ...
33 isempty(mystrfind(teststr,'/')) )
34 n = n + 1;
35 teststr = fgetl(fp);
36 str{n} = teststr;
37 if ~ischar(teststr); break; end
38 end
39 eqind = findstr(str{1},'=');
40 y = str{1}(eqind+1:end-1);
41 % check whether it is a string in quotes or something else
42 quotes = findstr(y,'''');
43 if ~isempty(quotes)
44 y(quotes(2):end) = [];
45 y(1:quotes(1)) = [];
46 else
47 if ~( strcmpi(y,'.TRUE.') | strcmpi(y,'.FALSE.') )
48 y = convert_str2num(str{1}(eqind+1:end-1));
49 for k=2:n-1
50 y = [y; convert_str2num(str{k}(eqind+1:end-1))];
51 end
52 % $$$ y = str2num(str{1}(eqind+1:end-1))';
53 % $$$ for k=2:n-1
54 % $$$ y = [y; str2num(str{k}(eqind+1:end-1))'];
55 % $$$ end
56 end
57 end
58 end
59 fclose(fp);
60 else
61 error([fname ' could not be opened: ' msg])
62 end
63
64 return
65
66 function y = convert_str2num(str)
67
68 % take care of the n*value format
69 stars = findstr(str,'*');
70 if isempty(stars)
71 y = str2num(str)';
72 else
73 if length(stars)==1
74 y=repmat(str2num(str(stars+1:end)),[str2num(str(1:stars-1)) 1]);
75 else
76 warning('The format n*x1,m*x2, ... cannot be handled')
77 % $$$ for k=1:length(stars)
78 % $$$ % find the beginnin and termination of the set
79 % $$$ end
80 end
81 end
82
83 return
84
85 function [ind] = mystrfind(str,pattern)
86
87 if length(pattern) > length(str)
88 ind = [];
89 return
90 else
91 ind = findstr(str,pattern);
92 end

  ViewVC Help
Powered by ViewVC 1.1.22