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 911 for trunk/NEMO/OPA_SRC/IOM/iom.F90 – NEMO

Ignore:
Timestamp:
2008-04-28T11:31:32+02:00 (16 years ago)
Author:
ctlod
Message:

Implementation of the BDY package, see ticket: #126

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/IOM/iom.F90

    r752 r911  
    66   !! History :  9.0  ! 05 12  (J. Belier) Original code 
    77   !!            9.0  ! 06 02  (S. Masson) Adaptation to NEMO 
     8   !!             "   ! 07 07  (D. Storkey) Changes to iom_gettime 
    89   !!-------------------------------------------------------------------- 
    910   !!gm  caution add !DIR nec: improved performance to be checked as well as no result changes 
     
    646647 
    647648 
    648    SUBROUTINE iom_gettime( kiomid, cdvar, ptime ) 
     649   SUBROUTINE iom_gettime( kiomid, ptime, cdvar, kntime, cdunits, cdcalendar ) 
    649650      !!-------------------------------------------------------------------- 
    650651      !!                   ***  SUBROUTINE iom_gettime  *** 
     
    652653      !! ** Purpose : read the time axis cdvar in the file  
    653654      !!-------------------------------------------------------------------- 
    654       INTEGER               , INTENT(in   ) ::   kiomid   ! file Identifier 
    655       CHARACTER(len=*)      , INTENT(in   ) ::   cdvar    ! time axis name 
    656       REAL(wp), DIMENSION(:), INTENT(  out) ::   ptime    ! the time axis 
    657       ! 
     655      INTEGER                    , INTENT(in   ) ::   kiomid     ! file Identifier 
     656      REAL(wp), DIMENSION(:)     , INTENT(  out) ::   ptime      ! the time axis 
     657      CHARACTER(len=*), OPTIONAL , INTENT(in   ) ::   cdvar      ! time axis name 
     658      INTEGER         , OPTIONAL , INTENT(  out) ::   kntime     ! number of times in file 
     659      CHARACTER(len=*), OPTIONAL , INTENT(  out) ::   cdunits    ! units attribute of time coordinate 
     660      CHARACTER(len=*), OPTIONAL , INTENT(  out) ::   cdcalendar ! calendar attribute of  
     661      ! 
     662      INTEGER, DIMENSION(1) :: kdimsz 
    658663      INTEGER            ::   idvar    ! id of the variable 
     664      CHARACTER(LEN=32)  ::   tname    ! local name of time coordinate 
    659665      CHARACTER(LEN=100) ::   clinfo   ! info character 
    660666      !--------------------------------------------------------------------- 
    661667      ! 
    662       IF( kiomid > 0 ) THEN 
    663          clinfo = 'iom_gettime, file: '//trim(iom_file(kiomid)%name)//', var: '//trim(cdvar) 
    664          idvar = iom_varid( kiomid, cdvar ) 
     668      IF ( PRESENT(cdvar) ) THEN 
     669         tname = cdvar 
     670      ELSE 
     671         tname = iom_file(kiomid)%uldname 
     672      ENDIF 
     673      IF( kiomid > 0 ) THEN 
     674         clinfo = 'iom_gettime, file: '//trim(iom_file(kiomid)%name)//', var: '//trim(tname) 
     675         IF ( PRESENT(kntime) ) THEN 
     676            idvar  = iom_varid( kiomid, tname, kdimsz = kdimsz ) 
     677            kntime = kdimsz(1) 
     678         ELSE 
     679            idvar = iom_varid( kiomid, tname ) 
     680         ENDIF 
    665681         ! 
    666682         ptime(:) = 0. ! default definition 
     
    670686                  IF( iom_file(kiomid)%dimsz(1,idvar) == size(ptime) ) THEN 
    671687                     SELECT CASE (iom_file(kiomid)%iolib) 
    672                      CASE (jpioipsl )   ;   CALL iom_ioipsl_gettime( kiomid, idvar, ptime ) 
    673                      CASE (jpnf90   )   ;   CALL iom_nf90_gettime(   kiomid, idvar, ptime ) 
     688                     CASE (jpioipsl )   ;   CALL iom_ioipsl_gettime( kiomid, idvar, ptime, cdunits, cdcalendar ) 
     689                     CASE (jpnf90   )   ;   CALL iom_nf90_gettime(   kiomid, idvar, ptime, cdunits, cdcalendar ) 
    674690                     CASE (jprstdimg)   ;   CALL ctl_stop( TRIM(clinfo)//' case IO library == jprstdimg not coded...' ) 
    675691                     CASE DEFAULT     
Note: See TracChangeset for help on using the changeset viewer.