0001 function [totalVolume] = do_volume_change(plotOPTS,FVCOM)
0002
0003
0004
0005
0006
0007 [nx,nz,ttot]=size(FVCOM.(plotOPTS.var_plot));
0008
0009
0010 dt=round((plotOPTS.Time_record(2)-plotOPTS.Time_record(1))*24*60*60);
0011
0012 if plotOPTS.change_type~=0 && dt/(60*60)>plotOPTS.change_type
0013 error('Output file sampling frequency is coarser than specified time sampling.')
0014 end
0015
0016
0017 sigThickness=roundn(abs(diff(FVCOM.siglev,1,2)),-5);
0018
0019 totalDepth=repmat(FVCOM.h,1,size(FVCOM.zeta,2))+FVCOM.zeta;
0020
0021 cellVolume=nan(nx,nz,ttot);
0022 for ii=1:nz
0023 for jj=1:ttot
0024 cellVolume(:,ii,jj)=totalDepth(:,jj).*sigThickness(:,ii).*FVCOM.art1.*dt;
0025 end
0026 end
0027
0028 if plotOPTS.change_type==0 || plotOPTS.change_type==dt/(60*60)
0029
0030 phChange=diff(FVCOM.DYE,1,3);
0031
0032
0033 idx=phChange<plotOPTS.threshold_change;
0034
0035
0036 totalVolume=sum(cellVolume(idx));
0037 else
0038
0039
0040
0041
0042 dtJump=(plotOPTS.change_type*60*60)/dt;
0043 if dtJump-round(dtJump)~=0
0044 error('Output sampling is not compatible with time period of change.')
0045 end
0046
0047 phChange=nan(nx,nz,ttot-dtJump);
0048 for tt=1:length(plotOPTS.Time_record)
0049 if tt<=length(plotOPTS.Time_record)-dtJump
0050 phChange(:,:,tt)=(FVCOM.DYE(:,:,tt+dtJump)-FVCOM.DYE(:,:,tt));
0051 end
0052 end
0053
0054
0055
0056
0057 totalVolume=0;
0058 for ii=1:nx
0059 for jj=1:nz
0060 totalVolumeCurrent=get_runs(plotOPTS,squeeze(phChange(ii,jj,:)),squeeze(cellVolume(ii,jj,:)),plotOPTS.change_type,plotOPTS.threshold_change);
0061 totalVolume=totalVolume+totalVolumeCurrent;
0062 end
0063 end
0064
0065 end
0066
0067
0068 end