0001 function make_model_nml_generic(inputConf,yy,mm)
0002
0003
0004
0005
0006 days2sec=24*60*60;
0007
0008
0009
0010
0011
0012
0013
0014
0015 inputConf.startDate= [yy mm 01 00 00 00 ];
0016 inputConf.endDate=[yy mm+1 01 00 00 00 ];
0017
0018
0019 inputConf.EXTSTEP_SECONDS =inputConf.timestep;
0020 inputConf.IRAMP = floor(inputConf.ramp*days2sec./(inputConf.EXTSTEP_SECONDS*inputConf.isplit));
0021 inputConf.START_DATE=datestr(inputConf.startDate,'yyyy-mm-dd HH:MM:SS');
0022 inputConf.END_DATE=datestr(inputConf.endDate,'yyyy-mm-dd HH:MM:SS');
0023 inputConf.RST_FIRST_OUT=inputConf.START_DATE;
0024
0025 inputConf.IREPORT = floor(inputConf.report*60./(inputConf.timestep*inputConf.isplit));
0026 inputConf.BOTTOM_ROUGHNESS_FILE = [inputConf.casename '_z0=',num2str(inputConf.bed_roughness), '.nc'];
0027 inputConf.INPUT_DIR= inputConf.fvcom_input_nml;
0028 inputConf.OUTPUT_DIR = inputConf.fvcom_output_nml;
0029
0030 inputConf.NC_FIRST_OUT=inputConf.START_DATE;
0031 inputConf.NCAV_FIRST_OUT=inputConf.START_DATE;
0032 inputConf.PROJECTION_REFERENCE=inputConf.projection;
0033
0034
0035
0036
0037
0038
0039
0040
0041 [fmt,nml]=make_default_nml(inputConf);
0042
0043 if isfield(inputConf,lower('OFFLINE_FABM_FILE'))
0044 else
0045 nml.NML_FABM = rmfield(nml.NML_FABM,'OFFLINE_FABM_FILE');
0046
0047 end
0048
0049
0050 nml_blocks=fieldnames(nml);
0051 nml_vars={};
0052 change_vars=fieldnames(inputConf);
0053 for nn=1:length(nml_blocks)
0054 nml_vars=fieldnames(nml.(nml_blocks{nn}));
0055 for vv=1:length(nml_vars)
0056 var_idx=strcmpi(nml_vars(vv),change_vars);
0057 if any(var_idx)
0058
0059 change_field=upper(change_vars{find(var_idx)});
0060 disp(['Changing variable ',nml_blocks{nn},'.',change_field])
0061 nml.(nml_blocks{nn}).(change_field)=inputConf.(change_vars{find(var_idx)});
0062 end
0063 end
0064 end
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079 res = write_model_nml(inputConf,nml,fmt);
0080 assert(res == 0, 'Error writting namelist file %s', ...
0081 fullfile(inputConf.fvcom_model, sprintf('%s.nml', inputConf.casename)))
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091