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.
ooo_utils.F90 in branches/UKMO/dev_1d_bugfixes_tocommit/NEMOGCM/NEMO/OOO_SRC – NEMO

source: branches/UKMO/dev_1d_bugfixes_tocommit/NEMOGCM/NEMO/OOO_SRC/ooo_utils.F90 @ 13354

Last change on this file since 13354 was 6486, checked in by davestorkey, 8 years ago

Remove SVN keywords from UKMO/dev_r5518_GO6_package branch.

File size: 3.4 KB
Line 
1MODULE ooo_utils
2   !! =================================================================
3   !!                    *** MODULE ooo_utils ***
4   !! =================================================================
5   USE par_oce
6
7   IMPLICIT NONE
8
9   ! Define double precision obfillflt
10   REAL(kind=dp), PARAMETER :: obfilldbl=99999.
11
12   !! $Id$
13   CONTAINS
14
15   SUBROUTINE yyyymmdd_to_ref_date(indate, intime, outstring)
16      !----------------------------------------
17      ! Routine to create reference date string
18      !----------------------------------------
19      ! Routine arguments
20      CHARACTER(len=8),  INTENT(IN)  :: indate    ! yyyymmdd
21      CHARACTER(len=6),  INTENT(IN)  :: intime    ! hhmmss
22      CHARACTER(len=23), INTENT(OUT) :: outstring ! yyyy-mm-dd hh:mm:ss utc
23      ! Local variables
24      CHARACTER(len=4)  :: year      ! yyyy
25      CHARACTER(len=2)  :: month     ! mm
26      CHARACTER(len=2)  :: day       ! dd
27      CHARACTER(len=2)  :: hour      ! hh
28      CHARACTER(len=2)  :: minute    ! mm
29      CHARACTER(len=2)  :: second    ! ss
30
31      year   = indate(1:4)
32      month  = indate(5:6)
33      day    = indate(7:8)
34      hour   = intime(1:2)
35      minute = intime(3:4)
36      second = intime(5:6)
37
38      outstring = year//"-"//month//"-"//day//" "//hour//":"//minute//":"//second//" utc"
39     
40   END SUBROUTINE yyyymmdd_to_ref_date
41
42   SUBROUTINE date_format(date_str)
43      !---------------------------------------
44      ! Routine to create creation date string
45      !---------------------------------------
46
47      ! Routine arguments
48      CHARACTER(len=*), INTENT(OUT) :: date_str
49      ! Local variables
50      CHARACTER(8)  :: date
51      CHARACTER(10) :: time
52
53      CHARACTER(10)  :: date_part
54      CHARACTER(8)  :: time_part
55
56      CALL date_and_time(DATE=date)
57      CALL date_and_time(TIME=time)
58      date_part  = date(1:4)//'/'//date(5:6)//'/'//date(7:8)
59      time_part  = time(1:2)//':'//time(3:4)//':'//time(5:6)
60
61      date_str   = date_part//' '//time_part
62
63   END SUBROUTINE date_format
64
65   SUBROUTINE inst_converter(wmo_inst_list, nprofs, obs_names)
66      !---------------------------------------
67      ! Routine to convert WMO_INST_TYPE to
68      ! 'ARGO', 'TESAC', 'XBT', 'BUOYS'
69      !---------------------------------------
70
71      !! Routine arguments
72      INTEGER,                             INTENT(IN) :: nprofs
73      CHARACTER(len=*),DIMENSION(nprofs),  INTENT(IN) :: wmo_inst_list     
74      CHARACTER(len=128),DIMENSION(nprofs),INTENT(OUT):: obs_names
75
76      !! Local variables
77      INTEGER :: inam !: loop over name
78
79      !! Initialise obs_names
80      obs_names(:) = ''
81
82      !! Convert number to text
83      DO inam = 1,nprofs
84         IF (trim(adjustl(wmo_inst_list(inam))) .EQ. '820') THEN
85            obs_names(inam) = 'BUOYS'
86         ELSEIF (trim(adjustl(wmo_inst_list(inam))) .EQ. '401') THEN
87            obs_names(inam) = 'XBT'
88         ELSEIF (trim(adjustl(wmo_inst_list(inam))) .EQ. '741') THEN
89            obs_names(inam) = 'TESAC'
90         ELSEIF (trim(adjustl(wmo_inst_list(inam))) .EQ. '831') THEN
91            obs_names(inam) = 'ARGO'
92         ELSEIF (trim(adjustl(wmo_inst_list(inam))) .EQ. '22') THEN ! Special case for AATSR
93            obs_names(inam) = '22'
94         ELSEIF (trim(adjustl(wmo_inst_list(inam))) .EQ. '') THEN
95            obs_names(inam) = 'UNKNOWN'
96         ELSE
97            obs_names(inam) = adjustl(wmo_inst_list(inam)) ! For all other cases
98         ENDIF
99      ENDDO
100
101   END SUBROUTINE inst_converter
102
103END MODULE ooo_utils
Note: See TracBrowser for help on using the repository browser.