[[PageOutline]] Last edited [[Timestamp]] [[BR]] '''Author''' : Matthew Martin '''ticket''' : #1468 '''Branch''' : [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5072_UKMO2_OBS_simplification dev_r5072_UKMO2_OBS_simplification ] ---- === Description === The OBS part of NEMO has been simplified to remove duplication of code and to remove some options for input file formats. The main changes implemented are: * removed options in code and namelist for reading formats other than fdbk format. * combined reading routines for profile types (T/S and velocity) and combined routines for surface types (SST, SLA, SIC). * combined routines for doing the obs operator on each time-step for all profile types, and similarly for all surface types * combined writing routines for profile types, and combined writing routines for surface types. * changed dia_obs_init to first set up the profile types which should be read in, then loop over profile types and call a generic reading routine and generic preparation routine. Similarly for surface types. * changed dia_obs to loop over profile types and call generic profile obs operator routines. Similarly for surface types. * made changes to namelist variables so that they comply with the NEMO coding standards * removed key_diaobs and replaced it with namelist logical ln_diaobs * changed namelist_ref and sette.sh so that the ORCA2_LIM_OBS tests of SETTE will work with the new code. The documentation in the NEMO book has been updated to reflect these changes. ---- === Testing === Runs of the ORCA2_LIM_OBS SETTE tests have been done with the trunk version, and with this branch, and the obs-minus-model statistics at the bottom of the ocean.output file are exactly the same in both. The output feedback files have also been plotted and look the same. Changes to the SETTE scripts have been made to add velocity and sea-ice concentration to the list of observations which are included in the ORCA2_LIM_OBS tests. New files will need to be added to the central 'FORCING' data-set. ||NVTK Tested||!'''YES!'''|| ||Other model configurations||!'''NO!'''|| ||Processor configurations tested||[ ORCA2_LIM_OBS with REPRO_4_4 and REPRO_2_8 ]|| ||If adding new functionality please confirm that the [[BR]]New code doesn't change results when it is switched off [[BR]]and !''works!'' when switched on||!'''YES!'''|| === Bit Comparability === ||Does this change preserve answers in your tested standard configurations (to the last bit) ?||!'''YES!'''|| ||Does this change bit compare across various processor configurations. (1xM, Nx1 and MxN are recommended)||!'''YES!'''|| ||Is this change expected to preserve answers in all possible model configurations?||!'''YES!'''|| ||Is this change expected to preserve all diagnostics? [[BR]]!,,!''Preserving answers in model runs does not necessarily imply preserved diagnostics. !''||!'''YES!'''|| If you answered !'''NO!''' to any of the above, please provide further details: * Which routine(s) are causing the difference? * Why the changes are not protected by a logical switch or new section-version * What is needed to achieve regression with the previous model release (e.g. a regression branch, hand-edits etc). If this is not possible, explain why not. * What do you expect to see occur in the test harness jobs? * Which diagnostics have you altered and why have they changed?Please add details here........ ---- === System Changes === ||Does your change alter namelists?||!'''YES!'''|| ||Does your change require a change in compiler options?||!'''NO !'''|| The namobs namelist has been changed and should now have the following structure: {{{ !----------------------------------------------------------------------- &namobs ! observation usage switch !----------------------------------------------------------------------- ln_diaobs = .false. ! Logical switch for the observation operator ln_t3d = .false. ! Logical switch for T profile observations ln_s3d = .false. ! Logical switch for S profile observations ln_sla = .false. ! Logical switch for SLA observations ln_sst = .false. ! Logical switch for SST observations ln_sic = .false. ! Logical switch for Sea Ice observations ln_vel3d = .false. ! Logical switch for velocity observations ln_altbias = .false. ! Logical switch for altimeter bias correction ln_nea = .false. ! Logical switch for rejection of observations near land ln_grid_global = .true. ! Logical switch for global distribution of observations ln_grid_search_lookup = .false. ! Logical switch for obs grid search w/lookup table ln_ignmis = .true. ! Logical switch for ignoring missing files ln_s_at_t = .false. ! Logical switch for computing model S at T obs if not there ln_sstnight = .false. ! Logical switch for calculating night-time average for SST obs ! All of the *files* variables below are arrays. Use namelist_cfg to add more files cn_profbfiles = 'profiles_01.nc' ! Profile feedback input observation file names cn_slafbfiles = 'sla_01.nc' ! SLA feedback input observation file names cn_sstfbfiles = 'sst_01.nc' ! SST feedback input observation file names cn_sicfbfiles = 'sic_01.nc' ! SIC feedback input observation file names cn_velfbfiles = 'vel_01.nc' ! Velocity feedback input observation file names cn_altbiasfile = 'altbias.nc' ! Altimeter bias input file name cn_gridsearchfile = 'gridsearch.nc' ! Grid search file name rn_gridsearchres = 0.5 ! Grid search resolution rn_dobsini = 00010101.000000 ! Initial date in window YYYYMMDD.HHMMSS rn_dobsend = 00010102.000000 ! Final date in window YYYYMMDD.HHMMSS nn_1dint = 0 ! Type of vertical interpolation method nn_2dint = 0 ! Type of horizontal interpolation method nn_msshc = 0 ! MSSH correction scheme rn_mdtcorr = 1.61 ! MDT correction rn_mdtcutoff = 65.0 ! MDT cutoff for computed correction nn_profdavtypes = -1 ! Profile daily average types - array / }}} ---- === Resources === Runtime and memory changes are minimal. ---- === IPR issues === ||Has the code been wholly (100%) produced by NEMO developers staff working exclusively on NEMO?||!'''YES !'''|| If No: * Identify the collaboration agreement details * Ensure the code routine header is in accordance with the agreement, (Copyright/Redistribution etc).Add further details here if required..........