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.
obs_level_search.h90 in NEMO/branches/UKMO/NEMO_4.0.4_FOAM_package/src/OCE/OBS – NEMO

source: NEMO/branches/UKMO/NEMO_4.0.4_FOAM_package/src/OCE/OBS/obs_level_search.h90 @ 15799

Last change on this file since 15799 was 15799, checked in by dford, 2 years ago

More generic interface and structure for OBS code. See Met Office utils tickets 471 and 530.

  • Property svn:mime-type set to text/x-fortran
File size: 2.3 KB
Line 
1   !!----------------------------------------------------------------------
2   !! NEMO/OCE 4.0 , NEMO Consortium (2018)
3   !! $Id$
4   !! Software governed by the CeCILL license (see ./LICENSE)
5   !!----------------------------------------------------------------------
6
7   SUBROUTINE obs_level_search( kgrd, pgrddep, kobs, pobsdep, kobsk )
8      !!----------------------------------------------------------------------
9      !!                    ***  ROUTINE obs_level_search ***
10      !!
11      !! ** Purpose : Search levels to find matching level to observed depth
12      !!
13      !! ** Method  : Straightforward search
14      !!
15      !! ** Action  : Will return level associated with T-point below the obs
16      !!              depth, except when observation is in the top box will
17      !!              return level 2. Also, if obs depth greater than depth
18      !!              of last wet T-point (kpk-1) will return level kpk.
19      !!
20      !! History :
21      !!        !  2001-11  (N. Daget, A. Weaver)
22      !!        !  2006-03  (A. Weaver) NEMOVAR migration.
23      !!        !  2006-05  (K. Mogensen) Moved to to separate routine.
24      !!        !  2006-10  (A. Weaver) Cleanup
25      !!        !  2008-10  (K. Mogensen) Remove assumptions on grid.
26      !!----------------------------------------------------------------------
27
28      !! * Arguments
29      INTEGER, INTENT(IN) :: kgrd     ! Number of gridpoints
30      REAL(KIND=wp), DIMENSION(kgrd), INTENT(INOUT) :: &
31         &   pgrddep  ! Depths of gridpoints
32      INTEGER, INTENT(IN) :: &
33         &   kobs     ! Number of observations
34      REAL(KIND=wp), DIMENSION(kobs), INTENT(INOUT) :: &
35         &   pobsdep  ! Depths of observations
36      INTEGER ,DIMENSION(kobs), INTENT(OUT) :: &
37         &   kobsk    ! Level indices of observations
38 
39      !! * Local declarations
40      INTEGER :: ji
41      INTEGER :: jk
42
43      !------------------------------------------------------------------------
44      ! Search levels for each observations to find matching level
45      !------------------------------------------------------------------------
46      DO ji = 1, kobs 
47         kobsk(ji) = 1
48         depk: DO jk = 2, kgrd-1
49            IF ( pgrddep(jk) >= pobsdep(ji) ) EXIT depk
50         END DO depk
51         kobsk(ji) = jk
52      END DO
53
54   END SUBROUTINE obs_level_search
Note: See TracBrowser for help on using the repository browser.