New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 12820 for branches – NEMO

Changeset 12820 for branches


Ignore:
Timestamp:
2020-04-27T15:57:00+02:00 (4 years ago)
Author:
dcarneir
Message:

Adding fbd observations in obs_oper, distinguishing it from sit

Location:
branches/UKMO/dev_r5518_obs_oper_update_sit_SMOS/NEMOGCM
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_obs_oper_update_sit_SMOS/NEMOGCM/CONFIG/SHARED/namelist_ref

    r12610 r12820  
    12001200   ln_sic     = .false.             ! Logical switch for Sea Ice Concentration observations 
    12011201   ln_sit     = .false.             ! Logical switch for Sea Ice Thickness observations 
     1202   ln_fbd     = .false.             ! Logical switch for Sea Ice Freeboard observations 
    12021203   ln_vel3d   = .false.             ! Logical switch for velocity observations 
    12031204   ln_sss     = .false.             ! Logical swithc for SSS observations 
     
    12421243   ln_sic_fp_indegs = .true. 
    12431244   ln_sit_fp_indegs = .true. 
     1245   ln_fbd_fp_indegs = .true. 
    12441246! All of the *files* variables below are arrays. Use namelist_cfg to add more files 
    12451247   cn_profbfiles = 'profiles_01.nc'      ! Profile feedback input observation file names 
     
    12481250   cn_sicfbfiles = 'sic_01.nc'           ! SIC feedback input observation file names 
    12491251   cn_sitfbfiles = 'sit_01.nc'           ! SIT feedback input observation file names 
     1252   cn_fbdfbfiles = 'fbd_01.nc'           ! FBD feedback input observation file names 
    12501253   cn_velfbfiles = 'vel_01.nc'           ! Velocity feedback input observation file names 
    12511254   cn_sssfbfiles = 'sss_01.nc'           ! SSS feedback input observation file names 
     
    12901293   rn_sit_avglamscl = 0.                 ! E/W diameter of SIT observation footprint (metres/degrees) 
    12911294   rn_sit_avgphiscl = 0.                 ! N/S diameter of SIT observation footprint (metres/degrees) 
     1295   rn_fbd_avglamscl = 0.                 ! E/W diameter of FBD observation footprint (metres/degrees) 
     1296   rn_fbd_avgphiscl = 0.                 ! N/S diameter of FBD observation footprint (metres/degrees) 
    12921297   nn_1dint = 0                          ! Type of vertical interpolation method 
    12931298   nn_2dint_default = 0                  ! Default horizontal interpolation method 
     
    12971302   nn_2dint_sic = -1                     ! Horizontal interpolation method for SIC 
    12981303   nn_2dint_sit = -1                     ! Horizontal interpolation method for SIT 
     1304   nn_2dint_fbd = -1                     ! Horizontal interpolation method for FBD 
    12991305   nn_msshc = 0                          ! MSSH correction scheme 
    13001306   rn_mdtcorr = 1.61                     ! MDT  correction 
  • branches/UKMO/dev_r5518_obs_oper_update_sit_SMOS/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90

    r12610 r12820  
    5656   LOGICAL :: ln_sic_fp_indegs     !: T=> SIC obs footprint size specified in degrees, F=> in metres 
    5757   LOGICAL :: ln_sit_fp_indegs     !: T=> SIT obs footprint size specified in degrees, F=> in metres 
     58   LOGICAL :: ln_fbd_fp_indegs     !: T=> SIT obs footprint size specified in degrees, F=> in metres 
    5859   LOGICAL :: ln_output_clim       !: Logical switch for interpolating and writing T/S climatology 
    5960   LOGICAL :: ln_time_mean_sla_bkg !: Logical switch for applying time mean of SLA background to remove tidal signal 
     
    7172   REAL(wp) :: rn_sit_avglamscl     !: E/W diameter of SIT observation footprint 
    7273   REAL(wp) :: rn_sit_avgphiscl     !: N/S diameter of SIT observation footprint 
     74   REAL(wp) :: rn_fbd_avglamscl     !: E/W diameter of FBD observation footprint 
     75   REAL(wp) :: rn_fbd_avgphiscl     !: N/S diameter of FBD observation footprint 
    7376   REAL(wp), PUBLIC :: & 
    7477      &        MeanPeriodHours = 24. + (5./6.) !: Meaning period for surface data. 
     
    8285   INTEGER :: nn_2dint_sic     !: SIC horizontal interpolation method (-1 = default) 
    8386   INTEGER :: nn_2dint_sit     !: SIT horizontal interpolation method (-1 = default) 
     87   INTEGER :: nn_2dint_fbd     !: FBD horizontal interpolation method (-1 = default) 
    8488  
    8589   INTEGER, DIMENSION(imaxavtypes) :: & 
     
    167171         & cn_sicfbfiles,      & ! Seaice concentration input filenames 
    168172         & cn_sitfbfiles,      & ! Seaice thickness input filenames 
     173         & cn_fbdfbfiles,      & ! Seaice freeboard input filenames 
    169174         & cn_velfbfiles,      & ! Velocity profile input filenames 
    170175         & cn_sssfbfiles,      & ! Sea surface salinity input filenames 
     
    206211      LOGICAL :: ln_sic          ! Logical switch for sea ice concentration 
    207212      LOGICAL :: ln_sit          ! Logical switch for sea ice thickness 
     213      LOGICAL :: ln_fbd          ! Logical switch for sea ice freeboard 
    208214      LOGICAL :: ln_sss          ! Logical switch for sea surface salinity obs 
    209215      LOGICAL :: ln_vel3d        ! Logical switch for velocity (u,v) obs 
     
    264270 
    265271      NAMELIST/namobs/ln_diaobs, ln_t3d, ln_s3d, ln_sla,              & 
    266          &            ln_sst, ln_sic, ln_sit, ln_sss, ln_vel3d,               & 
     272         &            ln_sst, ln_sic, ln_sit, ln_fbd,                 & 
     273         &            ln_sss, ln_vel3d,                               & 
    267274         &            ln_slchltot, ln_slchldia, ln_slchlnon,          & 
    268275         &            ln_slchldin, ln_slchlmic, ln_slchlnan,          & 
     
    281288         &            ln_sla_fp_indegs, ln_sst_fp_indegs,             & 
    282289         &            ln_sss_fp_indegs, ln_sic_fp_indegs,             & 
    283          &            ln_sit_fp_indegs,                               & 
     290         &            ln_sit_fp_indegs, ln_fbd_fp_indegs,             & 
    284291         &            cn_profbfiles, cn_slafbfiles,                   & 
    285292         &            cn_sstfbfiles, cn_sicfbfiles,                   & 
    286          &            cn_sitfbfiles,                                  & 
     293         &            cn_sitfbfiles, cn_fbdfbfiles,                   & 
    287294         &            cn_velfbfiles, cn_sssfbfiles,                   & 
    288295         &            cn_slchltotfbfiles, cn_slchldiafbfiles,         & 
     
    307314         &            rn_sic_avglamscl, rn_sic_avgphiscl,             & 
    308315         &            rn_sit_avglamscl, rn_sit_avgphiscl,             & 
     316         &            rn_fbd_avglamscl, rn_fbd_avgphiscl,             & 
    309317         &            nn_1dint, nn_2dint_default,                     & 
    310318         &            nn_2dint_sla, nn_2dint_sst,                     & 
    311          &            nn_2dint_sss, nn_2dint_sic, nn_2dint_sit,       & 
     319         &            nn_2dint_sss, nn_2dint_sic,                     & 
     320         &            nn_2dint_sit, nn_2dint_fbd,                     & 
    312321         &            nn_msshc, rn_mdtcorr, rn_mdtcutoff,             & 
    313322         &            nn_profdavtypes 
     
    323332      cn_sicfbfiles(:)      = '' 
    324333      cn_sitfbfiles(:)      = '' 
     334      cn_fbdfbfiles(:)      = '' 
    325335      cn_velfbfiles(:)      = '' 
    326336      cn_sssfbfiles(:)      = '' 
     
    387397         WRITE(numout,*) '             Logical switch for SIC observations                      ln_sic = ', ln_sic 
    388398         WRITE(numout,*) '             Logical switch for SIT observations                      ln_sit = ', ln_sit 
     399         WRITE(numout,*) '             Logical switch for FBD observations                      ln_fbd = ', ln_fbd 
    389400         WRITE(numout,*) '             Logical switch for velocity observations               ln_vel3d = ', ln_vel3d 
    390401         WRITE(numout,*) '             Logical switch for SSS observations                      ln_sss = ', ln_sss 
     
    426437         WRITE(numout,*) '             Type of horizontal interpolation method for SIC    nn_2dint_sic = ', nn_2dint_sic 
    427438         WRITE(numout,*) '             Type of horizontal interpolation method for SIT    nn_2dint_sit = ', nn_2dint_sit 
     439         WRITE(numout,*) '             Type of horizontal interpolation method for FBD    nn_2dint_fbd = ', nn_2dint_fbd 
    428440         WRITE(numout,*) '             Default E/W diameter of obs footprint      rn_default_avglamscl = ', rn_default_avglamscl 
    429441         WRITE(numout,*) '             Default N/S diameter of obs footprint      rn_default_avgphiscl = ', rn_default_avgphiscl 
     
    441453         WRITE(numout,*) '             SIT N/S diameter of obs footprint              rn_sit_avgphiscl = ', rn_sit_avgphiscl 
    442454         WRITE(numout,*) '             SIT obs footprint in deg [T] or m [F]          ln_sit_fp_indegs = ', ln_sit_fp_indegs 
     455         WRITE(numout,*) '             FBD E/W diameter of obs footprint              rn_fbd_avglamscl = ', rn_fbd_avglamscl 
     456         WRITE(numout,*) '             FBD N/S diameter of obs footprint              rn_fbd_avgphiscl = ', rn_fbd_avgphiscl 
     457         WRITE(numout,*) '             FBD obs footprint in deg [T] or m [F]          ln_fbd_fp_indegs = ', ln_fbd_fp_indegs 
    443458         WRITE(numout,*) '             Rejection of observations near land switch               ln_nea = ', ln_nea 
    444459         WRITE(numout,*) '             Rejection of obs near open bdys                 ln_bound_reject = ', ln_bound_reject 
     
    462477         &                  ln_pchltot,  ln_pno3,     ln_psi4,     ln_ppo4,     & 
    463478         &                  ln_pdic,     ln_palk,     ln_pph,      ln_po2 /) ) 
    464       nsurftypes = COUNT( (/ln_sla, ln_sst, ln_sic, ln_sit, ln_sss,             & 
     479      nsurftypes = COUNT( (/ln_sla, ln_sst, ln_sic, ln_sit, ln_fbd, ln_sss,     & 
    465480         &                  ln_slchltot, ln_slchldia, ln_slchlnon, ln_slchldin, & 
    466481         &                  ln_slchlmic, ln_slchlnan, ln_slchlpic, ln_schltot,  & 
     
    586601            cobstypessurf(jtype) = 'sit' 
    587602            clsurffiles(jtype,:) = cn_sitfbfiles 
     603         ENDIF 
     604         IF (ln_fbd) THEN 
     605            jtype = jtype + 1 
     606            cobstypessurf(jtype) = 'fbd' 
     607            clsurffiles(jtype,:) = cn_fbdfbfiles 
    588608         ENDIF 
    589609         IF (ln_sss) THEN 
     
    711731               ztype_avgphiscl = rn_sit_avgphiscl 
    712732               ltype_fp_indegs = ln_sit_fp_indegs 
     733               ltype_night     = .FALSE. 
     734            ELSE IF ( TRIM(cobstypessurf(jtype)) == 'fbd' ) THEN 
     735               IF ( nn_2dint_fbd == -1 ) THEN 
     736                  n2dint_type  = nn_2dint_default 
     737               ELSE 
     738                  n2dint_type  = nn_2dint_fbd 
     739               ENDIF 
     740               ztype_avglamscl = rn_fbd_avglamscl 
     741               ztype_avgphiscl = rn_fbd_avgphiscl 
     742               ltype_fp_indegs = ln_fbd_fp_indegs 
    713743               ltype_night     = .FALSE. 
    714744            ELSE IF ( TRIM(cobstypessurf(jtype)) == 'sss' ) THEN 
     
    900930 
    901931            IF ( (TRIM(cobstypessurf(jtype)) == 'sla') .OR. & 
    902                & (TRIM(cobstypessurf(jtype)) == 'sit') ) THEN 
     932               & (TRIM(cobstypessurf(jtype)) == 'sit') .OR. & 
     933               & (TRIM(cobstypessurf(jtype)) == 'fbd') ) THEN 
    903934               nvarssurf(jtype) = 1 
    904935               nextrsurf(jtype) = 2 
     
    916947            ELSE IF ( TRIM(cobstypessurf(jtype)) == 'sic' ) THEN 
    917948               clvars(1) = 'ICECONC' 
     949            ELSE IF ( TRIM(cobstypessurf(jtype)) == 'fbd' ) THEN 
     950               clvars(1) = 'FBD' 
     951               ln_seaicetypes = .TRUE. 
    918952            ELSE IF ( TRIM(cobstypessurf(jtype)) == 'sit' ) THEN 
    919                clvars(1) = 'FBD' 
     953               clvars(1) = 'SIT' 
    920954               ln_seaicetypes = .TRUE. 
    921955            ELSE IF ( TRIM(cobstypessurf(jtype)) == 'sss' ) THEN 
     
    9691003 
    9701004#if defined key_cice 
    971             IF ( TRIM(cobstypessurf(jtype)) == 'sit' ) THEN 
     1005            IF ( TRIM(cobstypessurf(jtype)) == 'fbd' ) THEN 
    9721006               CALL obs_rea_snowdepth( surfdataqc(jtype), n2dintsurf(jtype), thick_s(:,:) ) 
    9731007            ENDIF  
     
    14091443               ENDIF 
    14101444 
     1445            CASE('fbd') 
     1446               IF ( kstp == 0 ) THEN 
     1447                  IF ( lwp .AND. surfdataqc(jtype)%nsstpmpp(1) > 0 ) THEN 
     1448                     CALL ctl_warn( 'Sea-ice not initialised on zeroth '// & 
     1449                        &           'time-step but some obs are valid then.' ) 
     1450                     WRITE(numout,*)surfdataqc(jtype)%nsstpmpp(1), & 
     1451                        &           ' sea-ice freeboard obs will be missed and QC flag set to 4' 
     1452                  ENDIF                                  
     1453               ELSE        
     1454#if defined key_cice 
     1455                  zsurfvar(:,:) = thick_i(:,:) 
     1456#elif defined key_lim2 || defined key_lim3 
     1457                  CALL ctl_stop( ' No sea-ice freeboard observation operator defined for LIM model' ) 
     1458#else 
     1459                  CALL ctl_stop( ' Trying to run sea-ice freeboard observation operator', & 
     1460                     &           ' but no sea-ice model appears to have been defined' ) 
     1461#endif 
     1462               ENDIF 
     1463 
    14111464            CASE('slchltot') 
    14121465#if defined key_hadocc 
     
    17151768            ENDIF 
    17161769 
    1717             ! Change label of data from FBD ("freeboard") to SIT ("Sea Ice 
    1718             ! Thickness") 
    1719             IF ( TRIM(surfdataqc(jtype)%cvars(1)) == 'FBD' ) THEN 
    1720                  surfdata(jtype)%cvars(1) = 'SIT' 
    1721             ENDIF 
    1722  
    17231770         END DO 
    17241771 
  • branches/UKMO/dev_r5518_obs_oper_update_sit_SMOS/NEMOGCM/NEMO/OPA_SRC/OBS/obs_write.F90

    r12610 r12820  
    537537 
    538538         clfiletype = 'sitfb' 
     539         cllongname = 'Sea ice thickness' 
     540         clunits    = 'm' 
     541         clgrid     = 'T' 
     542 
     543      CASE('FBD') 
     544 
     545         clfiletype = 'fbdfb' 
     546         ! Change label from FBD ("freeboard") to SIT ("Sea Ice Thickness") 
     547         surfdata%cvars(1) = 'SIT' 
    539548         cllongname = 'Sea ice thickness' 
    540549         clunits    = 'm' 
Note: See TracChangeset for help on using the changeset viewer.