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 5682 for branches/2015/dev_r5072_UKMO2_OBS_simplification/NEMOGCM/NEMO/OPA_SRC/OBS/obs_prep.F90 – NEMO

Ignore:
Timestamp:
2015-08-12T17:46:45+02:00 (9 years ago)
Author:
mattmartin
Message:

OBS simplification changes committed to branch after running SETTE tests to make sure we get the same results as the trunk for ORCA2_LIM_OBS.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5072_UKMO2_OBS_simplification/NEMOGCM/NEMO/OPA_SRC/OBS/obs_prep.F90

    r5659 r5682  
    7171         & nproc 
    7272      !! * Arguments 
    73       TYPE(obs_surf), INTENT(INOUT) :: surfdata    ! Full set of SLA data 
    74       TYPE(obs_surf), INTENT(INOUT) :: surfdataqc   ! Subset of SLA data not failing screening 
     73      TYPE(obs_surf), INTENT(INOUT) :: surfdata    ! Full set of surface data 
     74      TYPE(obs_surf), INTENT(INOUT) :: surfdataqc   ! Subset of surface data not failing screening 
    7575      LOGICAL, INTENT(IN) :: ld_nea         ! Switch for rejecting observation near land 
    7676      !! * Local declarations 
     
    9999      INTEGER :: inrc         ! Time index variable 
    100100 
    101       IF(lwp) WRITE(numout,*)'obs_pre_sla : Preparing the SLA observations...' 
    102  
     101      IF(lwp) WRITE(numout,*)'obs_pre_surf : Preparing the surface observations...' 
     102      IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 
     103       
    103104      ! Initial date initialization (year, month, day, hour, minute) 
    104105      iyea0 =   ndate0 / 10000 
     
    185186      IF(lwp) THEN 
    186187         WRITE(numout,*) 
    187          WRITE(numout,*) 'obs_pre_surf :' 
    188          WRITE(numout,*) '~~~~~~~~~~~' 
    189          WRITE(numout,*) 
    190          WRITE(numout,*) ' Surface data outside time domain               = ', & 
     188         WRITE(numout,*) ' '//surfdataqc%cvars(1)//' data outside time domain                  = ', & 
    191189            &            iotdobsmpp 
    192          WRITE(numout,*) ' Remaining surface data that failed grid search    = ', & 
     190         WRITE(numout,*) ' Remaining '//surfdataqc%cvars(1)//' data that failed grid search    = ', & 
    193191            &            igrdobsmpp 
    194          WRITE(numout,*) ' Remaining surface data outside space domain       = ', & 
     192         WRITE(numout,*) ' Remaining '//surfdataqc%cvars(1)//' data outside space domain       = ', & 
    195193            &            iosdsobsmpp 
    196          WRITE(numout,*) ' Remaining surface data at land points             = ', & 
     194         WRITE(numout,*) ' Remaining '//surfdataqc%cvars(1)//' data at land points             = ', & 
    197195            &            ilansobsmpp 
    198196         IF (ld_nea) THEN 
    199             WRITE(numout,*) ' Remaining surface data near land points (removed) = ', & 
     197            WRITE(numout,*) ' Remaining '//surfdataqc%cvars(1)//' data near land points (removed) = ', & 
    200198               &            inlasobsmpp 
    201199         ELSE 
    202             WRITE(numout,*) ' Remaining surface data near land points (kept)    = ', & 
     200            WRITE(numout,*) ' Remaining '//surfdataqc%cvars(1)//' data near land points (kept)    = ', & 
    203201               &            inlasobsmpp 
    204202         ENDIF 
    205          WRITE(numout,*) ' surface data accepted                             = ', & 
     203         WRITE(numout,*) ' '//surfdataqc%cvars(1)//' data accepted                             = ', & 
    206204            &            surfdataqc%nsurfmpp 
    207205 
     
    209207         WRITE(numout,*) ' Number of observations per time step :' 
    210208         WRITE(numout,*) 
    211          WRITE(numout,1997) 
    212          WRITE(numout,1998) 
     209         WRITE(numout,'(10X,A,10X,A)')'Time step',surfdataqc%cvars(1) 
     210         WRITE(numout,'(10X,A,5X,A)')'---------','-----------------' 
     211         CALL FLUSH(numout) 
    213212      ENDIF 
    214213       
     
    225224            inrc = jstp - nit000 + 2 
    226225            WRITE(numout,1999) jstp, surfdataqc%nsstpmpp(inrc) 
     226            CALL FLUSH(numout) 
    227227         END DO 
    228228      ENDIF 
    229229 
    230 1997  FORMAT(10X,'Time step',5X,'Sea level anomaly') 
    231 1998  FORMAT(10X,'---------',5X,'-----------------') 
    2322301999  FORMAT(10X,I9,5X,I17) 
    233231 
     
    235233 
    236234 
    237    SUBROUTINE obs_pre_prof( profdata, prodatqc, ld_vel3d, ld_nea, ld_dailyav ) 
    238       !!---------------------------------------------------------------------- 
     235   SUBROUTINE obs_pre_prof( profdata, prodatqc, ld_var1, ld_var2, & 
     236      &                     zmask1, pglam1, pgphi1, zmask2, pglam2, pgphi2,  & 
     237      &                     ld_nea, kdailyavtypes ) 
     238 
     239!!---------------------------------------------------------------------- 
    239240      !!                    ***  ROUTINE obs_pre_prof  *** 
    240241      !! 
     
    246247      !!        !  2007-06  (K. Mogensen) original : T and S profile data 
    247248      !!        !  2008-09  (M. Valdivieso) : TAO velocity data 
    248       !!        !  2009-01  (K. Mogensen) : New feedback strictuer 
     249      !!        !  2009-01  (K. Mogensen) : New feedback stricture 
    249250      !!        !  2015-02  (M. Martin) : Combined profile routine. 
    250251      !! 
     
    254255      USE par_oce             ! Ocean parameters 
    255256      USE dom_oce, ONLY : &   ! Geographical information 
    256          & glamt, glamu, glamv,    & 
    257          & gphit, gphiu, gphiv,    & 
    258257         & gdept_1d,             & 
    259          & tmask, umask, vmask,  & 
    260258         & nproc 
     259 
    261260      !! * Arguments 
    262261      TYPE(obs_prof), INTENT(INOUT) :: profdata   ! Full set of profile data 
    263262      TYPE(obs_prof), INTENT(INOUT) :: prodatqc   ! Subset of profile data not failing screening 
    264       LOGICAL, INTENT(IN) :: ld_vel3d      ! Switch for zonal and meridional velocity components 
    265       LOGICAL, INTENT(IN) :: ld_nea        ! Switch for rejecting observation near land 
    266       LOGICAL, INTENT(IN) :: ld_dailyav    ! Switch for daily average data 
     263      LOGICAL, INTENT(IN) :: ld_var1              ! Observed variables switches 
     264      LOGICAL, INTENT(IN) :: ld_var2 
     265      LOGICAL, INTENT(IN) :: ld_nea               ! Switch for rejecting observation near land 
     266      INTEGER, DIMENSION(imaxavtypes), OPTIONAL :: & 
     267         & kdailyavtypes                          ! Types for daily averages 
     268      REAL(wp), INTENT(IN), DIMENSION(jpi,jpj,jpk) :: & 
     269         & zmask1, & 
     270         & zmask2 
     271      REAL(wp), INTENT(IN), DIMENSION(jpi,jpj) :: & 
     272         & pglam1, & 
     273         & pglam2, & 
     274         & pgphi1, & 
     275         & pgphi2 
     276 
    267277      !! * Local declarations 
    268278      INTEGER :: iyea0        ! Initial date 
     
    272282      INTEGER :: imin0 
    273283      INTEGER :: icycle       ! Current assimilation cycle 
    274                               ! Counters for observations that 
     284                              ! Counters for observations that are 
    275285      INTEGER :: iotdobs      !  - outside time domain 
    276       INTEGER :: iosduobs     !  - outside space domain (zonal velocity component) 
    277       INTEGER :: iosdvobs     !  - outside space domain (meridional velocity component) 
    278       INTEGER :: ilanuobs     !  - within a model land cell (zonal velocity component) 
    279       INTEGER :: ilanvobs     !  - within a model land cell (meridional velocity component) 
    280       INTEGER :: inlauobs     !  - close to land (zonal velocity component) 
    281       INTEGER :: inlavobs     !  - close to land (meridional velocity component) 
     286      INTEGER :: iosdv1obs    !  - outside space domain (variable 1) 
     287      INTEGER :: iosdv2obs    !  - outside space domain (variable 2) 
     288      INTEGER :: ilanv1obs    !  - within a model land cell (variable 1) 
     289      INTEGER :: ilanv2obs    !  - within a model land cell (variable 2) 
     290      INTEGER :: inlav1obs    !  - close to land (variable 1) 
     291      INTEGER :: inlav2obs    !  - close to land (variable 2) 
    282292      INTEGER :: igrdobs      !  - fail the grid search 
    283293      INTEGER :: iuvchku      !  - reject u if v rejected and vice versa 
    284294      INTEGER :: iuvchkv      ! 
    285                               ! Global counters for observations that 
     295                              ! Global counters for observations that are 
    286296      INTEGER :: iotdobsmpp   !  - outside time domain 
    287       INTEGER :: iosduobsmpp  !  - outside space domain (zonal velocity component) 
    288       INTEGER :: iosdvobsmpp  !  - outside space domain (meridional velocity component) 
    289       INTEGER :: ilanuobsmpp  !  - within a model land cell (zonal velocity component) 
    290       INTEGER :: ilanvobsmpp  !  - within a model land cell (meridional velocity component) 
    291       INTEGER :: inlauobsmpp  !  - close to land (zonal velocity component) 
    292       INTEGER :: inlavobsmpp  !  - close to land (meridional velocity component) 
     297      INTEGER :: iosdv1obsmpp !  - outside space domain (variable 1) 
     298      INTEGER :: iosdv2obsmpp !  - outside space domain (variable 2) 
     299      INTEGER :: ilanv1obsmpp !  - within a model land cell (variable 1) 
     300      INTEGER :: ilanv2obsmpp !  - within a model land cell (variable 2) 
     301      INTEGER :: inlav1obsmpp !  - close to land (variable 1) 
     302      INTEGER :: inlav2obsmpp !  - close to land (variable 2) 
    293303      INTEGER :: igrdobsmpp   !  - fail the grid search 
    294       INTEGER :: iuvchkumpp   !  - reject u if v rejected and vice versa 
     304      INTEGER :: iuvchkumpp   !  - reject var1 if var2 rejected and vice versa 
    295305      INTEGER :: iuvchkvmpp   ! 
    296306      TYPE(obs_prof_valid) ::  llvalid      ! Profile selection  
    297307      TYPE(obs_prof_valid), DIMENSION(profdata%nvar) :: & 
    298          & llvvalid           ! U,V selection  
     308         & llvvalid           ! var1,var2 selection  
    299309      INTEGER :: jvar         ! Variable loop variable 
    300310      INTEGER :: jobs         ! Obs. loop variable 
     
    302312      INTEGER :: inrc         ! Time index variable 
    303313 
    304       IF(lwp) WRITE(numout,*)'obs_pre_prof: Preparing the profile data' 
     314      IF(lwp) WRITE(numout,*)'obs_pre_prof: Preparing the profile data...' 
     315      IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 
    305316 
    306317      ! Initial date initialization (year, month, day, hour, minute) 
     
    317328      iotdobs  = 0 
    318329      igrdobs  = 0 
    319       iosduobs = 0 
    320       iosdvobs = 0 
    321       ilanuobs = 0 
    322       ilanvobs = 0 
    323       inlauobs = 0 
    324       inlavobs = 0 
     330      iosdv1obs = 0 
     331      iosdv2obs = 0 
     332      ilanv1obs = 0 
     333      ilanv2obs = 0 
     334      inlav1obs = 0 
     335      inlav2obs = 0 
    325336      iuvchku  = 0 
    326337      iuvchkv = 0 
     
    330341      ! ----------------------------------------------------------------------- 
    331342 
    332       CALL obs_coo_tim_prof( icycle, & 
    333          &              iyea0,   imon0,   iday0,   ihou0,   imin0,      & 
    334          &              profdata%nprof,   profdata%nyea, profdata%nmon, & 
    335          &              profdata%nday,    profdata%nhou, profdata%nmin, & 
    336          &              profdata%ntyp,    profdata%nqc,  profdata%mstp, & 
    337          &              iotdobs, ld_dailyav = ld_dailyav        ) 
    338      
     343      IF ( PRESENT(kdailyavtypes) ) THEN 
     344         CALL obs_coo_tim_prof( icycle, & 
     345            &              iyea0,   imon0,   iday0,   ihou0,   imin0,      & 
     346            &              profdata%nprof,   profdata%nyea, profdata%nmon, & 
     347            &              profdata%nday,    profdata%nhou, profdata%nmin, & 
     348            &              profdata%ntyp,    profdata%nqc,  profdata%mstp, & 
     349            &              iotdobs, kdailyavtypes = kdailyavtypes ) 
     350      ELSE 
     351         CALL obs_coo_tim_prof( icycle, & 
     352            &              iyea0,   imon0,   iday0,   ihou0,   imin0,      & 
     353            &              profdata%nprof,   profdata%nyea, profdata%nmon, & 
     354            &              profdata%nday,    profdata%nhou, profdata%nmin, & 
     355            &              profdata%ntyp,    profdata%nqc,  profdata%mstp, & 
     356            &              iotdobs ) 
     357      ENDIF 
     358 
    339359      CALL obs_mpp_sum_integer( iotdobs, iotdobsmpp ) 
    340360       
     
    343363      ! ----------------------------------------------------------------------- 
    344364 
    345       CALL obs_coo_grd( profdata%nprof,   profdata%mi(:,1), profdata%mj(:,1), & 
    346          &              profdata%nqc,     igrdobs                         ) 
    347       CALL obs_coo_grd( profdata%nprof,   profdata%mi(:,2), profdata%mj(:,2), & 
    348          &              profdata%nqc,     igrdobs                         ) 
     365      CALL obs_coo_grd( profdata%nprof,   profdata%mi, profdata%mj, & 
     366         &              profdata%nqc,     igrdobs                ) 
    349367 
    350368      CALL obs_mpp_sum_integer( igrdobs, igrdobsmpp ) 
     
    361379      ! ----------------------------------------------------------------------- 
    362380 
    363       ! Zonal Velocity Component 
    364  
     381      ! Variable 1 
    365382      CALL obs_coo_spc_3d( profdata%nprof,        profdata%nvprot(1),   & 
    366383         &                 profdata%npvsta(:,1),  profdata%npvend(:,1), & 
    367384         &                 jpi,                   jpj,                  & 
    368385         &                 jpk,                                         & 
    369          &                 profdata%mi,           profdata%mj,          &  
     386         &                 profdata%mi,           profdata%mj,          & 
    370387         &                 profdata%var(1)%mvk,                         & 
    371388         &                 profdata%rlam,         profdata%rphi,        & 
    372389         &                 profdata%var(1)%vdep,                        & 
    373          &                 glamu,                 gphiu,                & 
    374          &                 gdept_1d,              umask,                & 
     390         &                 pglam1,                pgphi1,               & 
     391         &                 gdept_1d,              zmask1,               & 
    375392         &                 profdata%nqc,          profdata%var(1)%nvqc, & 
    376          &                 iosduobs,              ilanuobs,             & 
    377          &                 inlauobs,              ld_nea                ) 
    378  
    379       CALL obs_mpp_sum_integer( iosduobs, iosduobsmpp ) 
    380       CALL obs_mpp_sum_integer( ilanuobs, ilanuobsmpp ) 
    381       CALL obs_mpp_sum_integer( inlauobs, inlauobsmpp ) 
    382  
    383       ! Meridional Velocity Component 
    384  
     393         &                 iosdv1obs,              ilanv1obs,           & 
     394         &                 inlav1obs,              ld_nea                ) 
     395 
     396      CALL obs_mpp_sum_integer( iosdv1obs, iosdv1obsmpp ) 
     397      CALL obs_mpp_sum_integer( ilanv1obs, ilanv1obsmpp ) 
     398      CALL obs_mpp_sum_integer( inlav1obs, inlav1obsmpp ) 
     399 
     400      ! Variable 2 
    385401      CALL obs_coo_spc_3d( profdata%nprof,        profdata%nvprot(2),   & 
    386402         &                 profdata%npvsta(:,2),  profdata%npvend(:,2), & 
     
    391407         &                 profdata%rlam,         profdata%rphi,        & 
    392408         &                 profdata%var(2)%vdep,                        & 
    393          &                 glamv,                 gphiv,                & 
    394          &                 gdept_1d,              vmask,                & 
     409         &                 pglam2,                pgphi2,               & 
     410         &                 gdept_1d,              zmask2,               & 
    395411         &                 profdata%nqc,          profdata%var(2)%nvqc, & 
    396          &                 iosdvobs,              ilanvobs,             & 
    397          &                 inlavobs,              ld_nea                ) 
    398  
    399       CALL obs_mpp_sum_integer( iosdvobs, iosdvobsmpp ) 
    400       CALL obs_mpp_sum_integer( ilanvobs, ilanvobsmpp ) 
    401       CALL obs_mpp_sum_integer( inlavobs, inlavobsmpp ) 
     412         &                 iosdv2obs,              ilanv2obs,           & 
     413         &                 inlav2obs,              ld_nea                ) 
     414 
     415      CALL obs_mpp_sum_integer( iosdv2obs, iosdv2obsmpp ) 
     416      CALL obs_mpp_sum_integer( ilanv2obs, ilanv2obsmpp ) 
     417      CALL obs_mpp_sum_integer( inlav2obs, inlav2obsmpp ) 
    402418 
    403419      ! ----------------------------------------------------------------------- 
     
    405421      ! ----------------------------------------------------------------------- 
    406422 
    407       CALL obs_uv_rej( profdata, iuvchku, iuvchkv ) 
    408       CALL obs_mpp_sum_integer( iuvchku, iuvchkumpp ) 
    409       CALL obs_mpp_sum_integer( iuvchkv, iuvchkvmpp ) 
     423      IF ( TRIM(profdata%cvars(1)) == 'UVEL' ) THEN 
     424         CALL obs_uv_rej( profdata, iuvchku, iuvchkv ) 
     425         CALL obs_mpp_sum_integer( iuvchku, iuvchkumpp ) 
     426         CALL obs_mpp_sum_integer( iuvchkv, iuvchkvmpp ) 
     427      ENDIF 
    410428 
    411429      ! ----------------------------------------------------------------------- 
     
    446464       
    447465      IF(lwp) THEN 
     466       
    448467         WRITE(numout,*) 
    449          WRITE(numout,*) 'obs_pre_vel :' 
    450          WRITE(numout,*) '~~~~~~~~~~~' 
    451          WRITE(numout,*) 
    452          WRITE(numout,*) ' Profiles outside time domain                = ', & 
     468         WRITE(numout,*) ' Profiles outside time domain                     = ', & 
    453469            &            iotdobsmpp 
    454          WRITE(numout,*) ' Remaining profiles that failed grid search  = ', & 
     470         WRITE(numout,*) ' Remaining profiles that failed grid search       = ', & 
    455471            &            igrdobsmpp 
    456          WRITE(numout,*) ' Remaining U data outside space domain       = ', & 
    457             &            iosduobsmpp 
    458          WRITE(numout,*) ' Remaining U data at land points             = ', & 
    459             &            ilanuobsmpp 
     472         WRITE(numout,*) ' Remaining '//prodatqc%cvars(1)//' data outside space domain       = ', & 
     473            &            iosdv1obsmpp 
     474         WRITE(numout,*) ' Remaining '//prodatqc%cvars(1)//' data at land points             = ', & 
     475            &            ilanv1obsmpp 
    460476         IF (ld_nea) THEN 
    461             WRITE(numout,*) ' Remaining U data near land points (removed) = ',& 
    462                &            inlauobsmpp 
     477            WRITE(numout,*) ' Remaining '//prodatqc%cvars(1)//' data near land points (removed) = ',& 
     478               &            inlav1obsmpp 
    463479         ELSE 
    464             WRITE(numout,*) ' Remaining U data near land points (kept)    = ',& 
    465                &            inlauobsmpp 
    466          ENDIF 
    467          WRITE(numout,*) ' U observation rejected since V rejected     = ', & 
    468             &            iuvchku      
    469          WRITE(numout,*) ' U data accepted                             = ', & 
     480            WRITE(numout,*) ' Remaining '//prodatqc%cvars(1)//' data near land points (kept)    = ',& 
     481               &            inlav1obsmpp 
     482         ENDIF 
     483         IF ( TRIM(profdata%cvars(1)) == 'UVEL' ) THEN 
     484            WRITE(numout,*) ' U observation rejected since V rejected     = ', & 
     485               &            iuvchku 
     486         ENDIF 
     487         WRITE(numout,*) ' '//prodatqc%cvars(1)//' data accepted                             = ', & 
    470488            &            prodatqc%nvprotmpp(1) 
    471          WRITE(numout,*) ' Remaining V data outside space domain       = ', & 
    472             &            iosdvobsmpp 
    473          WRITE(numout,*) ' Remaining V data at land points             = ', & 
    474             &            ilanvobsmpp 
     489         WRITE(numout,*) ' Remaining '//prodatqc%cvars(2)//' data outside space domain       = ', & 
     490            &            iosdv2obsmpp 
     491         WRITE(numout,*) ' Remaining '//prodatqc%cvars(2)//' data at land points             = ', & 
     492            &            ilanv2obsmpp 
    475493         IF (ld_nea) THEN 
    476             WRITE(numout,*) ' Remaining V data near land points (removed) = ',& 
    477                &            inlavobsmpp 
     494            WRITE(numout,*) ' Remaining '//prodatqc%cvars(2)//' data near land points (removed) = ',& 
     495               &            inlav2obsmpp 
    478496         ELSE 
    479             WRITE(numout,*) ' Remaining V data near land points (kept)    = ',& 
    480                &            inlavobsmpp 
    481          ENDIF 
    482          WRITE(numout,*) ' V observation rejected since U rejected     = ', & 
    483             &            iuvchkv      
    484          WRITE(numout,*) ' V data accepted                             = ', & 
     497            WRITE(numout,*) ' Remaining '//prodatqc%cvars(2)//' data near land points (kept)    = ',& 
     498               &            inlav2obsmpp 
     499         ENDIF 
     500         IF ( TRIM(profdata%cvars(1)) == 'UVEL' ) THEN 
     501            WRITE(numout,*) ' V observation rejected since U rejected     = ', & 
     502               &            iuvchkv 
     503         ENDIF 
     504         WRITE(numout,*) ' '//prodatqc%cvars(2)//' data accepted                             = ', & 
    485505            &            prodatqc%nvprotmpp(2) 
    486506 
     
    488508         WRITE(numout,*) ' Number of observations per time step :' 
    489509         WRITE(numout,*) 
    490          WRITE(numout,997) 
     510         WRITE(numout,'(10X,A,5X,A,5X,A,A)')'Time step','Profiles', & 
     511            &                               '     '//prodatqc%cvars(1)//'     ', & 
     512            &                               '     '//prodatqc%cvars(2)//'     ' 
    491513         WRITE(numout,998) 
    492514      ENDIF 
     
    522544      ENDIF 
    523545 
    524 997   FORMAT(10X,'Time step',5X,'Profiles',5X,'Zonal Comp.',5X,'Meridional Comp.') 
    525546998   FORMAT(10X,'---------',5X,'--------',5X,'-----------',5X,'----------------') 
    526547999   FORMAT(10X,I9,5X,I8,5X,I11,5X,I8) 
     
    728749      &                    kobsno,                                        & 
    729750      &                    kobsyea, kobsmon, kobsday, kobshou, kobsmin,   & 
    730       &                    ktyp,    kobsqc,  kobsstp, kotdobs, kdailyavtypes, & 
    731       &                    ld_dailyav ) 
     751      &                    ktyp,    kobsqc,  kobsstp, kotdobs, kdailyavtypes ) 
    732752      !!---------------------------------------------------------------------- 
    733753      !!                    ***  ROUTINE obs_coo_tim *** 
     
    773793      INTEGER, DIMENSION(imaxavtypes), OPTIONAL :: & 
    774794         & kdailyavtypes    ! Types for daily averages 
    775       LOGICAL, OPTIONAL :: ld_dailyav    ! All types are daily averages 
    776795      !! * Local declarations 
    777796      INTEGER :: jobs 
     
    807826      ENDIF 
    808827 
    809       !------------------------------------------------------------------------ 
    810       ! If ld_dailyav is set then all data assumed to be daily averaged 
    811       !------------------------------------------------------------------------ 
    812        
    813       IF ( PRESENT( ld_dailyav) ) THEN 
    814          IF (ld_dailyav) THEN 
    815             DO jobs = 1, kobsno 
    816                 
    817                IF ( kobsqc(jobs) <= 10 ) THEN 
    818                    
    819                   IF ( kobsstp(jobs) == (nit000 - 1) ) THEN 
    820                      kobsqc(jobs) = kobsqc(jobs) + 14 
    821                      kotdobs      = kotdobs + 1 
    822                      CYCLE 
    823                   ENDIF 
    824                    
    825                ENDIF 
    826             END DO 
    827          ENDIF 
    828       ENDIF 
    829828 
    830829   END SUBROUTINE obs_coo_tim_prof 
Note: See TracChangeset for help on using the changeset viewer.