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 4245 for branches/2013/dev_LOCEAN_CMCC_INGV_MERC_UKMO_2013/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90 – NEMO

Ignore:
Timestamp:
2013-11-19T12:19:21+01:00 (10 years ago)
Author:
cetlod
Message:

dev_locean_cmcc_ingv_ukmo_merc : merge in the MERC_UKMO dev branch with trunk rev 4119

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_LOCEAN_CMCC_INGV_MERC_UKMO_2013/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90

    r4205 r4245  
    479479   !!                   INTERFACE iom_get 
    480480   !!---------------------------------------------------------------------- 
    481    SUBROUTINE iom_g0d( kiomid, cdvar, pvar ) 
     481   SUBROUTINE iom_g0d( kiomid, cdvar, pvar, ktime ) 
    482482      INTEGER         , INTENT(in   )                 ::   kiomid    ! Identifier of the file 
    483483      CHARACTER(len=*), INTENT(in   )                 ::   cdvar     ! Name of the variable 
    484484      REAL(wp)        , INTENT(  out)                 ::   pvar      ! read field 
    485       ! 
    486       INTEGER               :: idvar   ! variable id 
     485      INTEGER         , INTENT(in   ),     OPTIONAL   ::   ktime     ! record number 
     486      ! 
     487      INTEGER                                         ::   idvar     ! variable id 
     488      INTEGER                                         ::   idmspc    ! number of spatial dimensions 
     489      INTEGER         , DIMENSION(1)                  ::   itime     ! record number 
     490      CHARACTER(LEN=100)                              ::   clinfo    ! info character 
     491      CHARACTER(LEN=100)                              ::   clname    ! file name 
     492      CHARACTER(LEN=1)                                ::   cldmspc   ! 
     493      ! 
     494      itime = 1 
     495      IF( PRESENT(ktime) ) itime = ktime 
     496      ! 
     497      clname = iom_file(kiomid)%name 
     498      clinfo = '          iom_g0d, file: '//trim(clname)//', var: '//trim(cdvar) 
    487499      ! 
    488500      IF( kiomid > 0 ) THEN 
    489501         idvar = iom_varid( kiomid, cdvar ) 
    490502         IF( iom_file(kiomid)%nfid > 0 .AND. idvar > 0 ) THEN 
     503            idmspc = iom_file ( kiomid )%ndims( idvar ) 
     504            IF( iom_file(kiomid)%luld(idvar) )  idmspc = idmspc - 1 
     505            WRITE(cldmspc , fmt='(i1)') idmspc 
     506            IF( idmspc > 0 )  CALL ctl_stop( TRIM(clinfo), 'When reading to a 0D array, we do not accept data', & 
     507                                 &                         'with 1 or more spatial dimensions: '//cldmspc//' were found.' , & 
     508                                 &                         'Use ncwa -a to suppress the unnecessary dimensions' ) 
    491509            SELECT CASE (iom_file(kiomid)%iolib) 
    492             CASE (jpioipsl )   ;   CALL iom_ioipsl_get(  kiomid, idvar, pvar ) 
    493             CASE (jpnf90   )   ;   CALL iom_nf90_get(    kiomid, idvar, pvar ) 
     510            CASE (jpioipsl )   ;   CALL iom_ioipsl_get(  kiomid, idvar, pvar, itime ) 
     511            CASE (jpnf90   )   ;   CALL iom_nf90_get(    kiomid, idvar, pvar, itime ) 
    494512            CASE (jprstdimg)   ;   CALL iom_rstdimg_get( kiomid, idvar, pvar ) 
    495513            CASE DEFAULT     
     
    656674               ELSE 
    657675                  CALL ctl_stop( TRIM(clinfo), 'To keep iom lisibility, when reading a '//clrankpv//'D array,'         ,   & 
    658                      &                         'we do not accept data with more than '//cldmspc//' spatial dimension',   & 
     676                     &                         'we do not accept data with '//cldmspc//' spatial dimensions',   & 
    659677                     &                         'Use ncwa -a to suppress the unnecessary dimensions' ) 
    660678               ENDIF 
     
    768786 
    769787         IF( istop == nstop ) THEN   ! no additional errors until this point... 
    770             IF(lwp) WRITE(numout,"(10x,' read ',a,' (rec: ',i4,') in ',a,' ok')") TRIM(cdvar), itime, TRIM(iom_file(kiomid)%name) 
     788            IF(lwp) WRITE(numout,"(10x,' read ',a,' (rec: ',i6,') in ',a,' ok')") TRIM(cdvar), itime, TRIM(iom_file(kiomid)%name) 
    771789           
    772790            !--- overlap areas and extra hallows (mpp) 
Note: See TracChangeset for help on using the changeset viewer.