Merge pull request #22 from wirc-sjsu/develop-w21
[WRF-Fire-merge.git] / standalone / make_moisture_input.m
blob79e474b2a82a29ae1a078d7aa1503c80137c59d3
1 function [d,hours]=make_moisture_input(times,t2,psfc,q2,rainc)
2 % usage: ncload moisture100.nc; 
3 % make_moisture_input(times,t2,psfc,q2,rainc)
5 % input: arrays from reading WRF nc files
6 % times: (:,k)  character string for tiime at step k
7 % t2            surface temperature (K)
8 % psfc          surface pressure (Pa)
9 % q2            surface air moisture contents (kg/kg)
10 % rainc         accumulated rain (mm)
11 % i1,i2         indices of a point to take the values from, defaut 1,1
13 % output:
14 % d             list of time steps to omit
15 % hours         time from beginning of sim
17 if ~exist('i2','var'),i2=1;end
18 if ~exist('i1','var'),i1=1;end
20 steps=size(times,2);
22 % convert times
24 ctimes=char(times');
25 hours=zeros(steps,1);
26 for i=1:steps
27     hours(i)=24*datenum(ctimes(i,:));
28 end
29 hours=hours-hours(1);
31 % make sure time increases and delete extra steps if not
33 fmt='step %i %s from start %i hours\n';
34 m=-1;
35 d=false(steps,1);
36 for i=2:steps
37     m=max(m,hours(i-1));
38     if m>=hours(i),
39         if(m==hours(i-1)),
40             fprintf(fmt,i-1,ctimes(i-1,:),hours(i-1))
41         end
42         fprintf(fmt,i,ctimes(i,:),hours(i))
43         warning(['Time does not increase, deleting step ',num2str(i)])
44         d(i)=true;
45     elseif i<steps-1 && hours(i)-hours(i-1) ~= hours(i+1)-hours(i),
46         fprintf(fmt,i,ctimes(i,:),hours(i))
47         fprintf(fmt,i+1,ctimes(i+1,:),hours(i+1))
48         fprintf(fmt,i+2,ctimes(i+2,:),hours(i+2))
49         warning('Time step is not uniform')
50     end
51 end
52 if(any(d)),
53     hours(d)=[];
54     ctimes(d,:)=[];
55     t2(d)=[];
56     q2(d)=[];
57     rainc(d)=[];
58     psfc(d)=[];
59 end
61 % create the input file for moisture_test.exe
63 mm=[hours,t2,psfc,q2,rainc];
64 save('moisture_input.txt','mm','-ascii')
66 end