Ignore:
Timestamp:
2019-02-21T16:44:54+01:00 (20 months ago)
Author:
emmafiedler
Message:

Correct flagging of ice data at zeroth timestep, QC for sea ice thickness

File:
1 edited

Legend:

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

    r9306 r10712  
    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        ) 
    147  
     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 
     157       
    148158      CALL obs_mpp_sum_integer( iotdobs, iotdobsmpp ) 
    149159       
     
    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 
     619       
    608620 
    609621      !! * Local declarations 
     
    620632      INTEGER :: iskip 
    621633      INTEGER :: idaystp 
     634      INTEGER :: icecount 
    622635      REAL(KIND=wp) :: zminstp 
    623636      REAL(KIND=wp) :: zhoustp 
     
    715728         ENDIF 
    716729 
    717       END DO 
     730 
     731      !------------------------------------------------------------------------ 
     732      ! Flag sea ice observations falling on initial timestep 
     733      !------------------------------------------------------------------------  
     734    
     735      IF ( PRESENT(ld_seaicetypes) ) THEN 
     736       
     737           IF ( ( kobsstp(jobs) == (nit000 - 1) ) ) THEN 
     738              WRITE(numout,*)( 'Sea-ice not initialised on zeroth '// & 
     739                        &    'time-step but observation valid then, flagging '// & 
     740                             'in time check subroutine obs_coo_tim.' )                   
     741              kobsqc(jobs) = IBSET(kobsqc(jobs),13) 
     742              kotdobs      = kotdobs + 1 
     743              CYCLE 
     744           ENDIF 
     745                
     746      ENDIF                       
     747    
     748   END DO 
    718749 
    719750   END SUBROUTINE obs_coo_tim 
Note: See TracChangeset for help on using the changeset viewer.