Changeset 11929
- Timestamp:
- 2019-11-19T17:22:23+01:00 (5 years ago)
- Location:
- branches/UKMO/dev_r5518_obs_oper_update_sit/NEMOGCM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_obs_oper_update_sit/NEMOGCM/CONFIG/SHARED/namelist_ref
r11546 r11929 1198 1198 ln_sla = .false. ! Logical switch for SLA observations 1199 1199 ln_sst = .false. ! Logical switch for SST observations 1200 ln_sic = .false. ! Logical switch for Sea Ice observations 1200 ln_sic = .false. ! Logical switch for Sea Ice Concentration observations 1201 ln_sit = .false. ! Logical switch for Sea Ice Thickness observations 1201 1202 ln_vel3d = .false. ! Logical switch for velocity observations 1202 1203 ln_sss = .false. ! Logical swithc for SSS observations … … 1239 1240 ln_sss_fp_indegs = .true. 1240 1241 ln_sic_fp_indegs = .true. 1242 ln_sit_fp_indegs = .true. 1241 1243 ! All of the *files* variables below are arrays. Use namelist_cfg to add more files 1242 1244 cn_profbfiles = 'profiles_01.nc' ! Profile feedback input observation file names … … 1244 1246 cn_sstfbfiles = 'sst_01.nc' ! SST feedback input observation file names 1245 1247 cn_sicfbfiles = 'sic_01.nc' ! SIC feedback input observation file names 1248 cn_sitfbfiles = 'sit_01.nc' ! SIT feedback input observation file names 1246 1249 cn_velfbfiles = 'vel_01.nc' ! Velocity feedback input observation file names 1247 1250 cn_sssfbfiles = 'sss_01.nc' ! SSS feedback input observation file names … … 1284 1287 rn_sic_avglamscl = 0. ! E/W diameter of SIC observation footprint (metres/degrees) 1285 1288 rn_sic_avgphiscl = 0. ! N/S diameter of SIC observation footprint (metres/degrees) 1289 rn_sit_avglamscl = 0. ! E/W diameter of SIT observation footprint (metres/degrees) 1290 rn_sit_avgphiscl = 0. ! N/S diameter of SIT observation footprint (metres/degrees) 1286 1291 nn_1dint = 0 ! Type of vertical interpolation method 1287 1292 nn_2dint_default = 0 ! Default horizontal interpolation method … … 1290 1295 nn_2dint_sss = -1 ! Horizontal interpolation method for SSS 1291 1296 nn_2dint_sic = -1 ! Horizontal interpolation method for SIC 1297 nn_2dint_sit = -1 ! Horizontal interpolation method for SIT 1292 1298 nn_msshc = 0 ! MSSH correction scheme 1293 1299 rn_mdtcorr = 1.61 ! MDT correction -
branches/UKMO/dev_r5518_obs_oper_update_sit/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90
r11546 r11929 22 22 USE obs_read_surf ! Reading and allocation of surface obs 23 23 USE obs_readmdt ! Reading and allocation of MDT for SLA. 24 USE obs_readsnowdepth ! Get model snow depth for conversion of freeboard to ice thickness 24 25 USE obs_prep ! Preparation of obs. (grid search etc). 25 26 USE obs_oper ! Observation operators … … 53 54 LOGICAL :: ln_sst_fp_indegs !: T=> SST obs footprint size specified in degrees, F=> in metres 54 55 LOGICAL :: ln_sss_fp_indegs !: T=> SSS obs footprint size specified in degrees, F=> in metres 55 LOGICAL :: ln_sic_fp_indegs !: T=> sea-ice obs footprint size specified in degrees, F=> in metres 56 LOGICAL :: ln_sic_fp_indegs !: T=> SIC obs footprint size specified in degrees, F=> in metres 57 LOGICAL :: ln_sit_fp_indegs !: T=> SIT obs footprint size specified in degrees, F=> in metres 56 58 LOGICAL :: ln_output_clim !: Logical switch for interpolating and writing T/S climatology 57 59 … … 64 66 REAL(wp) :: rn_sss_avglamscl !: E/W diameter of SSS observation footprint 65 67 REAL(wp) :: rn_sss_avgphiscl !: N/S diameter of SSS observation footprint 66 REAL(wp) :: rn_sic_avglamscl !: E/W diameter of sea-ice observation footprint 67 REAL(wp) :: rn_sic_avgphiscl !: N/S diameter of sea-ice observation footprint 68 REAL(wp) :: rn_sic_avglamscl !: E/W diameter of SIC observation footprint 69 REAL(wp) :: rn_sic_avgphiscl !: N/S diameter of SIC observation footprint 70 REAL(wp) :: rn_sit_avglamscl !: E/W diameter of SIT observation footprint 71 REAL(wp) :: rn_sit_avgphiscl !: N/S diameter of SIT observation footprint 68 72 69 73 INTEGER :: nn_1dint !: Vertical interpolation method … … 72 76 INTEGER :: nn_2dint_sst !: SST horizontal interpolation method (-1 = default) 73 77 INTEGER :: nn_2dint_sss !: SSS horizontal interpolation method (-1 = default) 74 INTEGER :: nn_2dint_sic !: Seaice horizontal interpolation method (-1 = default) 78 INTEGER :: nn_2dint_sic !: SIC horizontal interpolation method (-1 = default) 79 INTEGER :: nn_2dint_sit !: SIT horizontal interpolation method (-1 = default) 75 80 76 81 INTEGER, DIMENSION(imaxavtypes) :: & … … 132 137 !! ! 15-02 (M. Martin) Simplification of namelist and code 133 138 !!---------------------------------------------------------------------- 139 #if defined key_cice 140 USE sbc_oce, ONLY : & ! CICE variables 141 & thick_s ! snow depth for freeboard conversion 142 #endif 134 143 135 144 IMPLICIT NONE … … 153 162 & cn_slafbfiles, & ! Sea level anomaly input filenames 154 163 & cn_sicfbfiles, & ! Seaice concentration input filenames 164 & cn_sitfbfiles, & ! Seaice thickness input filenames 155 165 & cn_velfbfiles, & ! Velocity profile input filenames 156 166 & cn_sssfbfiles, & ! Sea surface salinity input filenames … … 185 195 186 196 197 LOGICAL :: ln_seaicetypes = .FALSE. ! Logical switch inindicating data type is sea ice 187 198 LOGICAL :: ln_t3d ! Logical switch for temperature profiles 188 199 LOGICAL :: ln_s3d ! Logical switch for salinity profiles … … 190 201 LOGICAL :: ln_sst ! Logical switch for sea surface temperature 191 202 LOGICAL :: ln_sic ! Logical switch for sea ice concentration 203 LOGICAL :: ln_sit ! Logical switch for sea ice thickness 192 204 LOGICAL :: ln_sss ! Logical switch for sea surface salinity obs 193 205 LOGICAL :: ln_vel3d ! Logical switch for velocity (u,v) obs … … 248 260 249 261 NAMELIST/namobs/ln_diaobs, ln_t3d, ln_s3d, ln_sla, & 250 & ln_sst, ln_sic, ln_s ss, ln_vel3d, &262 & ln_sst, ln_sic, ln_sit, ln_sss, ln_vel3d, & 251 263 & ln_slchltot, ln_slchldia, ln_slchlnon, & 252 264 & ln_slchldin, ln_slchlmic, ln_slchlnan, & … … 265 277 & ln_sla_fp_indegs, ln_sst_fp_indegs, & 266 278 & ln_sss_fp_indegs, ln_sic_fp_indegs, & 279 & ln_sit_fp_indegs, & 267 280 & cn_profbfiles, cn_slafbfiles, & 268 281 & cn_sstfbfiles, cn_sicfbfiles, & 282 & cn_sitfbfiles, & 269 283 & cn_velfbfiles, cn_sssfbfiles, & 270 284 & cn_slchltotfbfiles, cn_slchldiafbfiles, & … … 288 302 & rn_sss_avglamscl, rn_sss_avgphiscl, & 289 303 & rn_sic_avglamscl, rn_sic_avgphiscl, & 304 & rn_sit_avglamscl, rn_sit_avgphiscl, & 290 305 & nn_1dint, nn_2dint_default, & 291 306 & nn_2dint_sla, nn_2dint_sst, & 292 & nn_2dint_sss, nn_2dint_sic, 307 & nn_2dint_sss, nn_2dint_sic, nn_2dint_sit, & 293 308 & nn_msshc, rn_mdtcorr, rn_mdtcutoff, & 294 309 & nn_profdavtypes … … 303 318 cn_sstfbfiles(:) = '' 304 319 cn_sicfbfiles(:) = '' 320 cn_sitfbfiles(:) = '' 305 321 cn_velfbfiles(:) = '' 306 322 cn_sssfbfiles(:) = '' … … 365 381 WRITE(numout,*) ' Logical switch for SLA observations ln_sla = ', ln_sla 366 382 WRITE(numout,*) ' Logical switch for SST observations ln_sst = ', ln_sst 367 WRITE(numout,*) ' Logical switch for Sea Ice observations ln_sic = ', ln_sic 383 WRITE(numout,*) ' Logical switch for SIC observations ln_sic = ', ln_sic 384 WRITE(numout,*) ' Logical switch for SIT observations ln_sit = ', ln_sit 368 385 WRITE(numout,*) ' Logical switch for velocity observations ln_vel3d = ', ln_vel3d 369 386 WRITE(numout,*) ' Logical switch for SSS observations ln_sss = ', ln_sss … … 404 421 WRITE(numout,*) ' Type of horizontal interpolation method for SSS nn_2dint_sss = ', nn_2dint_sss 405 422 WRITE(numout,*) ' Type of horizontal interpolation method for SIC nn_2dint_sic = ', nn_2dint_sic 423 WRITE(numout,*) ' Type of horizontal interpolation method for SIT nn_2dint_sit = ', nn_2dint_sit 406 424 WRITE(numout,*) ' Default E/W diameter of obs footprint rn_default_avglamscl = ', rn_default_avglamscl 407 425 WRITE(numout,*) ' Default N/S diameter of obs footprint rn_default_avgphiscl = ', rn_default_avgphiscl … … 416 434 WRITE(numout,*) ' SIC N/S diameter of obs footprint rn_sic_avgphiscl = ', rn_sic_avgphiscl 417 435 WRITE(numout,*) ' SIC obs footprint in deg [T] or m [F] ln_sic_fp_indegs = ', ln_sic_fp_indegs 436 WRITE(numout,*) ' SIT E/W diameter of obs footprint rn_sit_avglamscl = ', rn_sit_avglamscl 437 WRITE(numout,*) ' SIT N/S diameter of obs footprint rn_sit_avgphiscl = ', rn_sit_avgphiscl 438 WRITE(numout,*) ' SIT obs footprint in deg [T] or m [F] ln_sit_fp_indegs = ', ln_sit_fp_indegs 418 439 WRITE(numout,*) ' Rejection of observations near land switch ln_nea = ', ln_nea 419 440 WRITE(numout,*) ' Rejection of obs near open bdys ln_bound_reject = ', ln_bound_reject … … 436 457 & ln_pchltot, ln_pno3, ln_psi4, ln_ppo4, & 437 458 & ln_pdic, ln_palk, ln_pph, ln_po2 /) ) 438 nsurftypes = COUNT( (/ln_sla, ln_sst, ln_sic, ln_s ss,&459 nsurftypes = COUNT( (/ln_sla, ln_sst, ln_sic, ln_sit, ln_sss, & 439 460 & ln_slchltot, ln_slchldia, ln_slchlnon, ln_slchldin, & 440 461 & ln_slchlmic, ln_slchlnan, ln_slchlpic, ln_schltot, & … … 555 576 cobstypessurf(jtype) = 'sic' 556 577 clsurffiles(jtype,:) = cn_sicfbfiles 578 ENDIF 579 IF (ln_sit) THEN 580 jtype = jtype + 1 581 cobstypessurf(jtype) = 'sit' 582 clsurffiles(jtype,:) = cn_sitfbfiles 557 583 ENDIF 558 584 IF (ln_sss) THEN … … 670 696 ztype_avgphiscl = rn_sic_avgphiscl 671 697 ltype_fp_indegs = ln_sic_fp_indegs 698 ltype_night = .FALSE. 699 ELSE IF ( TRIM(cobstypessurf(jtype)) == 'sit' ) THEN 700 IF ( nn_2dint_sit == -1 ) THEN 701 n2dint_type = nn_2dint_default 702 ELSE 703 n2dint_type = nn_2dint_sit 704 ENDIF 705 ztype_avglamscl = rn_sit_avglamscl 706 ztype_avgphiscl = rn_sit_avgphiscl 707 ltype_fp_indegs = ln_sit_fp_indegs 672 708 ltype_night = .FALSE. 673 709 ELSE IF ( TRIM(cobstypessurf(jtype)) == 'sss' ) THEN … … 858 894 & ltype_clim = .TRUE. 859 895 860 IF ( TRIM(cobstypessurf(jtype)) == 'sla' ) THEN 896 IF ( (TRIM(cobstypessurf(jtype)) == 'sla') .OR. & 897 & (TRIM(cobstypessurf(jtype)) == 'sit') ) THEN 861 898 nvarssurf(jtype) = 1 862 899 nextrsurf(jtype) = 2 … … 915 952 & llnightav(jtype), ltype_clim, clvars ) 916 953 917 CALL obs_pre_surf( surfdata(jtype), surfdataqc(jtype), ln_nea, ln_bound_reject ) 954 IF ( TRIM(cobstypessurf(jtype)) == 'sit' ) THEN 955 ln_seaicetypes = .TRUE. 956 ELSE 957 ln_seaicetypes = .FALSE. 958 ENDIF 959 CALL obs_pre_surf( surfdata(jtype), surfdataqc(jtype), ln_nea, ln_bound_reject, ln_seaicetypes ) 918 960 919 961 IF ( TRIM(cobstypessurf(jtype)) == 'sla' ) THEN … … 922 964 & CALL obs_rea_altbias ( surfdataqc(jtype), n2dintsurf(jtype), cn_altbiasfile ) 923 965 ENDIF 966 967 IF ( TRIM(cobstypessurf(jtype)) == 'sit' ) THEN 968 CALL obs_rea_snowdepth( surfdataqc(jtype), n2dintsurf(jtype), thick_s(:,:) ) 969 ENDIF 924 970 925 971 IF ( TRIM(cobstypessurf(jtype)) == 'sst' .AND. ln_sstbias ) THEN … … 990 1036 #endif 991 1037 #if defined key_cice 992 USE sbc_oce, ONLY : fr_i ! ice fraction 1038 USE sbc_oce, ONLY : & ! CICE variables 1039 & fr_i, & ! ice fraction 1040 & thick_i ! ice thickness 993 1041 #endif 994 1042 #if defined key_top … … 1323 1371 & 'time-step but some obs are valid then.' ) 1324 1372 WRITE(numout,*)surfdataqc(jtype)%nsstpmpp(1), & 1325 & ' sea-ice obs will be missed'1373 & ' sea-ice concentration obs will be missed' 1326 1374 ENDIF 1327 surfdataqc(jtype)%nsurfup = surfdataqc(jtype)%nsurfup + &1328 & surfdataqc(jtype)%nsstp(1)1329 CYCLE1330 1375 ELSE 1331 1376 #if defined key_cice … … 1334 1379 zsurfvar(:,:) = 1._wp - frld(:,:) 1335 1380 #else 1336 CALL ctl_stop( ' Trying to run sea-ice observation operator', &1381 CALL ctl_stop( ' Trying to run sea-ice concentration observation operator', & 1337 1382 & ' but no sea-ice model appears to have been defined' ) 1338 1383 #endif 1339 1384 ENDIF 1385 1386 CASE('sit') 1387 IF ( kstp == 0 ) THEN 1388 IF ( lwp .AND. surfdataqc(jtype)%nsstpmpp(1) > 0 ) THEN 1389 CALL ctl_warn( 'Sea-ice not initialised on zeroth '// & 1390 & 'time-step but some obs are valid then.' ) 1391 WRITE(numout,*)surfdataqc(jtype)%nsstpmpp(1), & 1392 & ' sea-ice thickness obs will be missed and QC flag set to 4' 1393 ENDIF 1394 ELSE 1395 #if defined key_cice 1396 zsurfvar(:,:) = thick_i(:,:) 1397 #elif defined key_lim2 || defined key_lim3 1398 CALL ctl_stop( ' No sea-ice thickness observation operator defined for LIM model' ) 1399 #else 1400 CALL ctl_stop( ' Trying to run sea-ice thickness observation operator', & 1401 & ' but no sea-ice model appears to have been defined' ) 1402 #endif 1340 1403 1341 1404 CASE('slchltot') … … 1631 1694 & lfpindegs(jtype) ) 1632 1695 1696 1697 ! Change label of data from FBD ("freeboard") to SIT ("Sea Ice 1698 ! Thickness") 1699 IF ( TRIM(surfdataqc(jtype)%cvars(1)) == 'FBD' ) THEN 1700 surfdata(jtype)%cvars(1) = 'SIT' 1701 ENDIF 1702 1633 1703 END DO 1634 1704
Note: See TracChangeset
for help on using the changeset viewer.