| 1 | [[PageOutline]] |
| 2 | Last edited [[Timestamp]] |
| 3 | |
| 4 | [[BR]] |
| 5 | |
| 6 | '''Author''' : Matthew Martin |
| 7 | |
| 8 | '''ticket''' : #1468 |
| 9 | |
| 10 | '''Branch''' : [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5072_UKMO2_OBS_simplification dev_r5072_UKMO2_OBS_simplification ] |
| 11 | ---- |
| 12 | |
| 13 | === Description === |
| 14 | |
| 15 | 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: |
| 16 | |
| 17 | * removed options in code and namelist for reading formats other than fdbk format. |
| 18 | * combined reading routines for profile types (T/S and velocity) and combined routines for surface types (SST, SLA, SIC). |
| 19 | * combined routines for doing the obs operator on each time-step for all profile types, and similarly for all surface types |
| 20 | * combined writing routines for profile types, and combined writing routines for surface types. |
| 21 | * 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. |
| 22 | * changed dia_obs to loop over profile types and call generic profile obs operator routines. Similarly for surface types. |
| 23 | * made changes to namelist variables so that they comply with the NEMO coding standards |
| 24 | * removed key_diaobs and replaced it with namelist logical ln_diaobs |
| 25 | * changed namelist_ref and sette.sh so that the ORCA2_LIM_OBS tests of SETTE will work with the new code. |
| 26 | |
| 27 | The documentation in the NEMO book has been updated to reflect these changes. |
| 28 | |
| 29 | ---- |
| 30 | === Testing === |
| 31 | |
| 32 | 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. |
| 33 | |
| 34 | 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. |
| 35 | |
| 36 | |
| 37 | ||NVTK Tested||!'''YES!'''|| |
| 38 | ||Other model configurations||!'''NO!'''|| |
| 39 | ||Processor configurations tested||[ ORCA2_LIM_OBS with REPRO_4_4 and REPRO_2_8 ]|| |
| 40 | ||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!'''|| |
| 41 | |
| 42 | |
| 43 | === Bit Comparability === |
| 44 | ||Does this change preserve answers in your tested standard configurations (to the last bit) ?||!'''YES!'''|| |
| 45 | ||Does this change bit compare across various processor configurations. (1xM, Nx1 and MxN are recommended)||!'''YES!'''|| |
| 46 | ||Is this change expected to preserve answers in all possible model configurations?||!'''YES!'''|| |
| 47 | ||Is this change expected to preserve all diagnostics? [[BR]]!,,!''Preserving answers in model runs does not necessarily imply preserved diagnostics. !''||!'''YES!'''|| |
| 48 | |
| 49 | If you answered !'''NO!''' to any of the above, please provide further details: |
| 50 | |
| 51 | * Which routine(s) are causing the difference? |
| 52 | * Why the changes are not protected by a logical switch or new section-version |
| 53 | * 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. |
| 54 | * What do you expect to see occur in the test harness jobs? |
| 55 | * Which diagnostics have you altered and why have they changed?Please add details here........ |
| 56 | |
| 57 | ---- |
| 58 | === System Changes === |
| 59 | ||Does your change alter namelists?||!'''YES!'''|| |
| 60 | ||Does your change require a change in compiler options?||!'''NO !'''|| |
| 61 | |
| 62 | The namobs namelist has been changed and should now have the following structure: |
| 63 | {{{ |
| 64 | !----------------------------------------------------------------------- |
| 65 | &namobs ! observation usage switch |
| 66 | !----------------------------------------------------------------------- |
| 67 | ln_diaobs = .false. ! Logical switch for the observation operator |
| 68 | ln_t3d = .false. ! Logical switch for T profile observations |
| 69 | ln_s3d = .false. ! Logical switch for S profile observations |
| 70 | ln_sla = .false. ! Logical switch for SLA observations |
| 71 | ln_sst = .false. ! Logical switch for SST observations |
| 72 | ln_sic = .false. ! Logical switch for Sea Ice observations |
| 73 | ln_vel3d = .false. ! Logical switch for velocity observations |
| 74 | ln_altbias = .false. ! Logical switch for altimeter bias correction |
| 75 | ln_nea = .false. ! Logical switch for rejection of observations near land |
| 76 | ln_grid_global = .true. ! Logical switch for global distribution of observations |
| 77 | ln_grid_search_lookup = .false. ! Logical switch for obs grid search w/lookup table |
| 78 | ln_ignmis = .true. ! Logical switch for ignoring missing files |
| 79 | ln_s_at_t = .false. ! Logical switch for computing model S at T obs if not there |
| 80 | ln_sstnight = .false. ! Logical switch for calculating night-time average for SST obs |
| 81 | ! All of the *files* variables below are arrays. Use namelist_cfg to add more files |
| 82 | cn_profbfiles = 'profiles_01.nc' ! Profile feedback input observation file names |
| 83 | cn_slafbfiles = 'sla_01.nc' ! SLA feedback input observation file names |
| 84 | cn_sstfbfiles = 'sst_01.nc' ! SST feedback input observation file names |
| 85 | cn_sicfbfiles = 'sic_01.nc' ! SIC feedback input observation file names |
| 86 | cn_velfbfiles = 'vel_01.nc' ! Velocity feedback input observation file names |
| 87 | cn_altbiasfile = 'altbias.nc' ! Altimeter bias input file name |
| 88 | cn_gridsearchfile = 'gridsearch.nc' ! Grid search file name |
| 89 | rn_gridsearchres = 0.5 ! Grid search resolution |
| 90 | rn_dobsini = 00010101.000000 ! Initial date in window YYYYMMDD.HHMMSS |
| 91 | rn_dobsend = 00010102.000000 ! Final date in window YYYYMMDD.HHMMSS |
| 92 | nn_1dint = 0 ! Type of vertical interpolation method |
| 93 | nn_2dint = 0 ! Type of horizontal interpolation method |
| 94 | nn_msshc = 0 ! MSSH correction scheme |
| 95 | rn_mdtcorr = 1.61 ! MDT correction |
| 96 | rn_mdtcutoff = 65.0 ! MDT cutoff for computed correction |
| 97 | nn_profdavtypes = -1 ! Profile daily average types - array |
| 98 | / |
| 99 | }}} |
| 100 | |
| 101 | ---- |
| 102 | === Resources === |
| 103 | Runtime and memory changes are minimal. |
| 104 | |
| 105 | ---- |
| 106 | === IPR issues === |
| 107 | ||Has the code been wholly (100%) produced by NEMO developers staff working exclusively on NEMO?||!'''YES !'''|| |
| 108 | |
| 109 | If No: |
| 110 | |
| 111 | * Identify the collaboration agreement details |
| 112 | * Ensure the code routine header is in accordance with the agreement, (Copyright/Redistribution etc).Add further details here if required.......... |