| 1 | function [nit,tt,ke,et,tm,sm,um,vm,wm,cfl,zm,sct] = readnc_MON(rac_nam,list_on,nrec) | 
| 2 | % [nit,tt,ke,et,tm,sm,um,vm,wm,cfl,zm,sct] = readnc_MON(rac_nam,list_on,[nrec]) | 
| 3 | %----------------------------------------------------------------- | 
| 4 | % read MONITOR output var from single NetCDF output files ; | 
| 5 | % read var that are "on" (=1) the list "list_on" (0 => not read) ; | 
| 6 | % NB: time(=tt) not in list_on and Always read ; | 
| 7 | % e.g.: list_on=[1 1 0 0 0 0 0 1] => read tt(time), et, ke & cfl | 
| 8 | %----------------------------------------------------------------- | 
| 9 |  | 
| 10 | % $Header: $ | 
| 11 | % $Name: $ | 
| 12 |  | 
| 13 | namfil=strcat(rac_nam) ; D=dir(namfil); | 
| 14 | if size(D,1) == 1, | 
| 15 | %fprintf(['read ',namfil]); ncload(namfil,'time_secondsf'); var=time_secondsf; | 
| 16 | fprintf(['read ',namfil]); f = netcdf(namfil,'nowrite'); var=f{'time_secondsf'}(:); | 
| 17 | else fprintf(['file: ',namfil,' not found => EXIT \n']); return; end | 
| 18 | nit=size(var,1); | 
| 19 | if (nargin < 3), nrec=nit ; end | 
| 20 | tt=zeros(nrec,1); tt(1:nit)=var; msgA=' '; | 
| 21 | %----- | 
| 22 |  | 
| 23 | ke=zeros(nrec,4); | 
| 24 | et=zeros(nrec,4); | 
| 25 | tm=zeros(nrec,4); | 
| 26 | sm=zeros(nrec,4); | 
| 27 | um=zeros(nrec,4); | 
| 28 | vm=zeros(nrec,4); | 
| 29 | wm=zeros(nrec,4); | 
| 30 | zm=zeros(nrec,4); | 
| 31 | cfl=zeros(nrec,4); | 
| 32 | sct=zeros(nrec,4); | 
| 33 |  | 
| 34 | %return | 
| 35 |  | 
| 36 | if list_on(1) == 1 | 
| 37 | nam0(1,:)='ke_max   '; fprintf(' keX'); | 
| 38 | nam0(2,:)='ke_mean  '; fprintf(',A'); | 
| 39 | nam0(3,:)='ke_vol   '; fprintf(',V'); | 
| 40 | nam0(4,:)='pe_b_mean'; fprintf(',PE'); | 
| 41 | for i=1:4, | 
| 42 | ke(1:nit,i)=f{strcat(nam0(i,:))}(:) ; | 
| 43 | end | 
| 44 | %ncload(namfil,'ke_max','ke_mean','ke_vol','pe_b_mean'); | 
| 45 | %ke(1:nit,1)=ke_max  ;  fprintf(' keX'); | 
| 46 | %ke(1:nit,2)=ke_mean ;  fprintf(',A'); | 
| 47 | %ke(1:nit,3)=ke_vol  ; | 
| 48 | %ke(1:nit,4)=pe_b_mean; fprintf(',PE'); | 
| 49 | end | 
| 50 | %fprintf('\n nrec,nit, %i , %i \n', nrec,nit); | 
| 51 | %fprintf('tt:  %i %i \n',size(tt)); | 
| 52 | %fprintf('ke:  %i %i \n',size(ke)); | 
| 53 |  | 
| 54 | nam1='dynstat_' ; | 
| 55 | namS(1,:)='_min ' ; | 
| 56 | namS(2,:)='_max ' ; | 
| 57 | namS(3,:)='_mean' ; | 
| 58 | namS(4,:)='_sd  ' ; | 
| 59 | namS(5,:)='_del2' ; | 
| 60 |  | 
| 61 | if list_on(2) == 1, | 
| 62 | nam2='eta'; | 
| 63 | for i=1:4, | 
| 64 | %  fprintf([' >',strcat(nam1,nam2,namS(i,:)),'< \n']); | 
| 65 | et(1:nit,i)=f{strcat(nam1,nam2,namS(i,:))}(:) ; | 
| 66 | end | 
| 67 | fprintf([' ',nam2,' ']); | 
| 68 | end | 
| 69 |  | 
| 70 | if list_on(3) == 1, | 
| 71 | nam2='theta'; | 
| 72 | for i=1:4, | 
| 73 | tm(1:nit,i)=f{strcat(nam1,nam2,namS(i,:))}(:) ; | 
| 74 | end | 
| 75 | fprintf([' ',nam2,' ']); | 
| 76 | end | 
| 77 |  | 
| 78 | if list_on(4) == 1, | 
| 79 | nam2='salt'; | 
| 80 | for i=1:4, | 
| 81 | sm(1:nit,i)=f{strcat(nam1,nam2,namS(i,:))}(:) ; | 
| 82 | end | 
| 83 | fprintf([' ',nam2,' ']); | 
| 84 | end | 
| 85 |  | 
| 86 | if list_on(5) == 1, | 
| 87 | nam2='uvel'; | 
| 88 | for i=1:4, | 
| 89 | um(1:nit,i)=f{strcat(nam1,nam2,namS(i,:))}(:) ; | 
| 90 | end | 
| 91 | fprintf([' ',nam2,' ']); | 
| 92 | end | 
| 93 |  | 
| 94 | if list_on(6) == 1, | 
| 95 | nam2='vvel'; | 
| 96 | for i=1:4, | 
| 97 | vm(1:nit,i)=f{strcat(nam1,nam2,namS(i,:))}(:) ; | 
| 98 | end | 
| 99 | fprintf([' ',nam2,' ']); | 
| 100 | end | 
| 101 |  | 
| 102 | if list_on(7) == 1, | 
| 103 | nam2='wvel'; | 
| 104 | for i=1:4, | 
| 105 | wm(1:nit,i)=f{strcat(nam1,nam2,namS(i,:))}(:) ; | 
| 106 | end | 
| 107 | fprintf([' ',nam2,' ']); | 
| 108 | end | 
| 109 |  | 
| 110 | if list_on(8) == 1, | 
| 111 | nam2='advcfl' ; namX='_max'; clear namA ; | 
| 112 | namA(1,:)='uvel'; | 
| 113 | namA(2,:)='vvel'; | 
| 114 | namA(3,:)='wvel'; | 
| 115 | namA(4,:)='W_hf'; | 
| 116 | for i=1:4, | 
| 117 | cfl(1:nit,i)=f{strcat(nam2,'_',namA(i,:),namX)}(:) ; | 
| 118 | end | 
| 119 | fprintf([' ',nam2,' ']); | 
| 120 | end | 
| 121 |  | 
| 122 | %-------- | 
| 123 | if list_on(9) == 1, | 
| 124 | nam2='vort' ; namX='_max'; clear namA ; | 
| 125 | namA(1,:)='r_min '; | 
| 126 | namA(2,:)='r_max '; | 
| 127 | %namA(3,:)='a_mean'; | 
| 128 | namA(3,:)='a_sd  '; | 
| 129 | namA(4,:)='p_sd  '; | 
| 130 | for i=1:4, | 
| 131 | zm(1:nit,i)=f{strcat(nam2,'_',namA(i,:))}(:) ; | 
| 132 | end | 
| 133 | fprintf([' ',nam2,' ']); | 
| 134 | end | 
| 135 |  | 
| 136 | %-------- | 
| 137 | if list_on(10) == 1, | 
| 138 | nam2='surfExpan' ; namX='_mean'; clear namA ; | 
| 139 | namA(1,:)='theta'; | 
| 140 | namA(2,:)='salt '; | 
| 141 | for i=1:2, | 
| 142 | fprintf([' >',strcat(nam2,'_',namA(i,:),namX),'< \n']); | 
| 143 | sct(1:nit,i)=f{strcat(nam2,'_',namA(i,:),namX)}(:) ; | 
| 144 | end | 
| 145 | fprintf([' ',nam2,' ']); | 
| 146 | end | 
| 147 |  | 
| 148 | close(f); | 
| 149 |  | 
| 150 | fprintf(' <= end \n'); | 
| 151 |  | 
| 152 | return |