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 11932 for branches/UKMO/dev_r5518_obs_oper_update_sit/NEMOGCM/NEMO/OPA_SRC/OBS/obs_prep.F90 – NEMO

Ignore:
Timestamp:
2019-11-19T18:45:16+01:00 (4 years ago)
Author:
dcarneir
Message:

Changes in OBS and SBC routines for sea ice thickness data assimilation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_obs_oper_update_sit/NEMOGCM/NEMO/OPA_SRC/OBS/obs_prep.F90

    r11461 r11932  
    5353 
    5454   SUBROUTINE obs_pre_surf( surfdata, surfdataqc, ld_nea, ld_bound_reject, & 
    55                             kqc_cutoff ) 
     55                            ld_seaicetypes, kqc_cutoff ) 
    5656      !!---------------------------------------------------------------------- 
    5757      !!                    ***  ROUTINE obs_pre_sla  *** 
     
    8383      LOGICAL, INTENT(IN) :: ld_nea                ! Switch for rejecting observation near land 
    8484      LOGICAL, INTENT(IN) :: ld_bound_reject       ! Switch for rejecting obs near the boundary 
    85       INTEGER, INTENT(IN), OPTIONAL :: kqc_cutoff   ! cut off for QC value 
     85      LOGICAL, INTENT(IN) :: ld_seaicetypes        ! Switch to indicate sea ice data 
     86      INTEGER, INTENT(IN), OPTIONAL :: kqc_cutoff  ! cut off for QC value 
    8687      !! * Local declarations 
    8788      INTEGER :: iqc_cutoff = 255   ! cut off for QC value 
     
    140141      ! ----------------------------------------------------------------------- 
    141142 
    142       CALL obs_coo_tim( icycle, & 
    143          &              iyea0,   imon0,   iday0,   ihou0,   imin0,      & 
    144          &              surfdata%nsurf,   surfdata%nyea, surfdata%nmon, & 
    145          &              surfdata%nday,    surfdata%nhou, surfdata%nmin, & 
    146          &              surfdata%nqc,     surfdata%mstp, iotdobs        ) 
     143      IF ( ld_seaicetypes ) THEN 
     144         CALL obs_coo_tim( icycle, & 
     145            &              iyea0,   imon0,   iday0,   ihou0,   imin0,      & 
     146            &              surfdata%nsurf,   surfdata%nyea, surfdata%nmon, & 
     147            &              surfdata%nday,    surfdata%nhou, surfdata%nmin, & 
     148            &              surfdata%nqc,     surfdata%mstp, iotdobs,       & 
     149            &              ld_seaicetypes = ld_seaicetypes ) 
     150      ELSE 
     151         CALL obs_coo_tim( icycle, & 
     152            &              iyea0,   imon0,   iday0,   ihou0,   imin0,      & 
     153            &              surfdata%nsurf,   surfdata%nyea, surfdata%nmon, & 
     154            &              surfdata%nday,    surfdata%nhou, surfdata%nmin, & 
     155            &              surfdata%nqc,     surfdata%mstp, iotdobs        ) 
     156      ENDIF 
    147157 
    148158      CALL obs_mpp_sum_integer( iotdobs, iotdobsmpp ) 
     
    558568      &                    kobsno,                                        & 
    559569      &                    kobsyea, kobsmon, kobsday, kobshou, kobsmin,   & 
    560       &                    kobsqc,  kobsstp, kotdobs                      ) 
     570      &                    kobsqc,  kobsstp, kotdobs, ld_seaicetypes      ) 
    561571      !!---------------------------------------------------------------------- 
    562572      !!                    ***  ROUTINE obs_coo_tim *** 
     
    606616         & kobsstp          ! Number of time steps up to the  
    607617                            ! observation time 
     618      LOGICAL, OPTIONAL, INTENT(IN) :: ld_seaicetypes 
    608619 
    609620      !! * Local declarations 
     
    620631      INTEGER :: iskip 
    621632      INTEGER :: idaystp 
     633      INTEGER :: icecount 
    622634      REAL(KIND=wp) :: zminstp 
    623635      REAL(KIND=wp) :: zhoustp 
     
    714726            CYCLE 
    715727         ENDIF 
     728 
     729         ! Flag sea ice observations falling on initial timestep 
     730           IF ( PRESENT(ld_seaicetypes) ) THEN 
     731 
     732                IF ( ( kobsstp(jobs) == (nit000 - 1) ) ) THEN 
     733                   IF (lwp) WRITE(numout,*)( 'Sea-ice not initialised on zeroth '// & 
     734                             &    'time-step but SIT observation valid then, flagging '// & 
     735                                  'in time check subroutine obs_coo_tim.' ) 
     736                   kobsqc(jobs) = IBSET(kobsqc(jobs),13) 
     737                   kotdobs      = kotdobs + 1 
     738                   CYCLE 
     739                ENDIF 
     740           ENDIF                      
    716741 
    717742      END DO 
Note: See TracChangeset for help on using the changeset viewer.