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 15225 for NEMO/branches/UKMO/NEMO_4.0.4_generic_obs/src/OCE/OBS/obs_read_prof.F90 – NEMO

Ignore:
Timestamp:
2021-09-02T17:52:53+02:00 (3 years ago)
Author:
dford
Message:

Improve handling of velocities, including adding surface currents.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/UKMO/NEMO_4.0.4_generic_obs/src/OCE/OBS/obs_read_prof.F90

    r15224 r15225  
    2727   USE lib_mpp                  ! For ctl_warn/stop 
    2828   USE obs_fbm                  ! Feedback routines 
     29   USE obs_field, ONLY : &      ! Velocity variable names 
     30      & cobsname_uvel,   & 
     31      & cobsname_vvel 
    2932 
    3033   IMPLICIT NONE 
     
    104107      INTEGER :: jk 
    105108      INTEGER :: ij 
     109      INTEGER :: jind 
    106110      INTEGER :: jext 
    107111      INTEGER :: jvar 
     
    450454            END DO 
    451455 
     456            ! Do grid search 
    452457            ! Assume anything other than velocity is on T grid 
    453             IF ( TRIM( inpfiles(jj)%cname(1) ) == 'UVEL' ) THEN 
    454                CALL obs_grid_search( inowin, zlam, zphi, iobsi(:,1), iobsj(:,1), & 
    455                   &                  iproc(:,1), 'U' ) 
    456                CALL obs_grid_search( inowin, zlam, zphi, iobsi(:,2), iobsj(:,2), & 
    457                   &                  iproc(:,2), 'V' ) 
    458             ELSE 
    459                CALL obs_grid_search( inowin, zlam, zphi, iobsi(:,1), iobsj(:,1), & 
    460                   &                  iproc(:,1), 'T' ) 
    461                IF ( kvars > 1 ) THEN 
    462                   DO jvar = 2, kvars 
    463                      iobsi(:,jvar) = iobsi(:,1) 
    464                      iobsj(:,jvar) = iobsj(:,1) 
    465                      iproc(:,jvar) = iproc(:,1) 
    466                   END DO 
    467                ENDIF 
    468             ENDIF 
     458            ! Save resource by not repeating for the same grid 
     459            jind = 0 
     460            DO jvar = 1, kvars 
     461               IF ( TRIM(inpfiles(jj)%cname(jvar)) == cobsname_uvel ) THEN 
     462                  CALL obs_grid_search( inowin, zlam, zphi, iobsi(:,jvar), iobsj(:,jvar), & 
     463                     &                  iproc(:,jvar), 'U' ) 
     464               ELSE IF ( TRIM(inpfiles(jj)%cname(jvar)) == cobsname_vvel ) THEN 
     465                  CALL obs_grid_search( inowin, zlam, zphi, iobsi(:,jvar), iobsj(:,jvar), & 
     466                     &                  iproc(:,jvar), 'V' ) 
     467               ELSE 
     468                  IF ( jind > 0 ) THEN 
     469                     iobsi(:,jvar) = iobsi(:,jind) 
     470                     iobsj(:,jvar) = iobsj(:,jind) 
     471                     iproc(:,jvar) = iproc(:,jind) 
     472                  ELSE 
     473                     jind = jvar 
     474                     CALL obs_grid_search( inowin, zlam, zphi, iobsi(:,jvar), iobsj(:,jvar), & 
     475                        &                  iproc(:,jvar), 'T' ) 
     476                  ENDIF 
     477               ENDIF 
     478            END DO 
    469479 
    470480            inowin = 0 
Note: See TracChangeset for help on using the changeset viewer.