Changeset 5197
- Timestamp:
- 08/12/10 12:25:18 (15 years ago)
- Location:
- issm/trunk/src/m/qmu/setupdesign
- Files:
-
- 11 deleted
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/m/qmu/setupdesign/QmuSetupDesign.m
r4994 r5197 1 1 function dvar=QmuSetupDesign(dvar,variables,params,varargin) 2 3 %recover model 4 for i=1:length(varargin) 5 if strcmp(class(varargin{i}),'model') 6 md=varargin{i}; 7 break; 8 end 9 end 10 2 11 3 12 %get descriptor 4 13 descriptor=variables.descriptor; 5 14 6 % loop on descriptor7 if strcmpi(descriptor,'RhoIce') 15 %decide whether this is a distributed variable, which will drive whether we expand it into npart values, 16 %or if we just carry it forward as is. 8 17 9 dvar=setuprhoice(dvar,variables,params,varargin{:}); 18 switch descriptor, 19 case {'RhoIce','RhoWater','HeatCapacity','ThermalConductivity','Gravity'}, 10 20 11 elseif strcmpi(descriptor,'RhoWater') 21 dvar(end+1)=variables; 12 22 13 dvar=setuprhowater(dvar,variables,params,varargin{:}); 23 case {'Thickness','Surface','Bed','DragCoefficient'}, 14 24 15 elseif strcmpi(descriptor,'HeatCapacity') 25 if length(variables.stddev)>md.npart, 26 error('QmuSetupDesign error message: stddev should be either a scalar or a ''npart'' length vector'); 27 end 16 28 17 dvar=setupheatcapacity(dvar,variables,params,varargin{:}); 29 %ok, dealing with semi-discrete distributed variable. Distribute according to how many 30 %partitions we want 18 31 19 elseif strcmpi(descriptor,'ThermalConductivity') 32 for j=1:md.npart 33 dvar(end+1) =variables; 34 dvar(end ).descriptor=sprintf('%s%d',variables.descriptor,j); 35 if length(variables.stddev)>1, 36 dvar(end ).stddev=variables.stddev(j); 37 end 38 end 20 39 21 dvar=setupthermalconductivity(dvar,variables,params,varargin{:}); 22 23 elseif strcmpi(descriptor,'Gravity') 24 25 dvar=setupgravity(dvar,variables,params,varargin{:}); 26 27 elseif strcmpi(descriptor,'Thickness') 28 29 dvar=setupthickness(dvar,variables,params,varargin{:}); 30 31 elseif strcmpi(descriptor,'Surface') 32 33 dvar=setupsurface(dvar,variables,params,varargin{:}); 34 35 elseif strcmpi(descriptor,'Bed') 36 37 dvar=setupbed(dvar,variables,params,varargin{:}); 38 39 elseif strcmpi(descriptor,'DragCoefficient') 40 41 dvar=setupdrag(dvar,variables,params,varargin{:}); 42 43 elseif strncmpi(descriptor,'DragCoefficientNode',9) 44 45 dvar=setupdrag_node(dvar,variables,params,varargin{:}); 46 47 elseif strncmpi(descriptor,'ThicknessNode',14) 48 49 dvar=setupthickness_node(dvar,variables,params,varargin{:}); 50 51 elseif strcmpi(descriptor,'RiftsFriction') 52 40 case {'RiftsFriction'}, 41 53 42 dvar=setupriftsfriction(dvar,variables,params,varargin{:}); 54 43 55 else44 otherwise 56 45 error(['QmuSetupDesign warning message: could not find ' descriptor ' setup design function']); 57 46 end 58 59 end
Note:
See TracChangeset
for help on using the changeset viewer.