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

Ignore:
Timestamp:
2020-03-26T11:57:02+01:00 (4 years ago)
Author:
dcarneir
Message:

Inclusion of sea ice thickness in OBS branch

File:
1 edited

Legend:

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

    r12506 r12610  
    5454 
    5555   SUBROUTINE obs_pre_surf( surfdata, surfdataqc, ld_nea, ld_bound_reject, & 
    56                             kqc_cutoff ) 
     56                            ld_seaicetypes, kqc_cutoff ) 
    5757      !!---------------------------------------------------------------------- 
    5858      !!                    ***  ROUTINE obs_pre_sla  *** 
     
    8484      LOGICAL, INTENT(IN) :: ld_nea                ! Switch for rejecting observation near land 
    8585      LOGICAL, INTENT(IN) :: ld_bound_reject       ! Switch for rejecting obs near the boundary 
    86       INTEGER, INTENT(IN), OPTIONAL :: kqc_cutoff   ! cut off for QC value 
     86      LOGICAL, INTENT(IN) :: ld_seaicetypes        ! Switch to indicate sea ice data 
     87      INTEGER, INTENT(IN), OPTIONAL :: kqc_cutoff  ! cut off for QC value 
    8788      !! * Local declarations 
    8889      INTEGER :: iqc_cutoff = 255   ! cut off for QC value 
     
    141142      ! ----------------------------------------------------------------------- 
    142143 
    143       CALL obs_coo_tim( icycle, & 
    144          &              iyea0,   imon0,   iday0,   ihou0,   imin0,      & 
    145          &              surfdata%nsurf,   surfdata%nyea, surfdata%nmon, & 
    146          &              surfdata%nday,    surfdata%nhou, surfdata%nmin, & 
    147          &              surfdata%nqc,     surfdata%mstp, iotdobs        ) 
     144      IF ( ld_seaicetypes ) THEN 
     145         CALL obs_coo_tim( icycle, & 
     146            &              iyea0,   imon0,   iday0,   ihou0,   imin0,      & 
     147            &              surfdata%nsurf,   surfdata%nyea, surfdata%nmon, & 
     148            &              surfdata%nday,    surfdata%nhou, surfdata%nmin, & 
     149            &              surfdata%nqc,     surfdata%mstp, iotdobs,       & 
     150            &              ld_seaicetypes = ld_seaicetypes ) 
     151      ELSE 
     152         CALL obs_coo_tim( icycle, & 
     153            &              iyea0,   imon0,   iday0,   ihou0,   imin0,      & 
     154            &              surfdata%nsurf,   surfdata%nyea, surfdata%nmon, & 
     155            &              surfdata%nday,    surfdata%nhou, surfdata%nmin, & 
     156            &              surfdata%nqc,     surfdata%mstp, iotdobs        ) 
     157      ENDIF 
    148158 
    149159      CALL obs_mpp_sum_integer( iotdobs, iotdobsmpp ) 
     
    559569      &                    kobsno,                                        & 
    560570      &                    kobsyea, kobsmon, kobsday, kobshou, kobsmin,   & 
    561       &                    kobsqc,  kobsstp, kotdobs                      ) 
     571      &                    kobsqc,  kobsstp, kotdobs, ld_seaicetypes      ) 
    562572      !!---------------------------------------------------------------------- 
    563573      !!                    ***  ROUTINE obs_coo_tim *** 
     
    607617         & kobsstp          ! Number of time steps up to the  
    608618                            ! observation time 
     619      LOGICAL, OPTIONAL, INTENT(IN) :: ld_seaicetypes 
    609620 
    610621      !! * Local declarations 
     
    621632      INTEGER :: iskip 
    622633      INTEGER :: idaystp 
     634      INTEGER :: icecount 
    623635      REAL(KIND=wp) :: zminstp 
    624636      REAL(KIND=wp) :: zhoustp 
     
    715727            CYCLE 
    716728         ENDIF 
     729 
     730         ! Flag sea ice observations falling on initial timestep 
     731           IF ( PRESENT(ld_seaicetypes) ) THEN 
     732 
     733                IF ( ( kobsstp(jobs) == (nit000 - 1) ) ) THEN 
     734                   IF (lwp) WRITE(numout,*)( 'Sea-ice not initialised on zeroth '// & 
     735                             &    'time-step but SIT observation valid then, flagging '// & 
     736                                  'in time check subroutine obs_coo_tim.' ) 
     737                   kobsqc(jobs) = IBSET(kobsqc(jobs),13) 
     738                   kotdobs      = kotdobs + 1 
     739                   CYCLE 
     740                ENDIF 
     741           ENDIF                      
    717742 
    718743      END DO 
Note: See TracChangeset for help on using the changeset viewer.