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 10380 for NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/IOM/iom.F90 – NEMO

Ignore:
Timestamp:
2018-12-11T09:27:54+01:00 (5 years ago)
Author:
smasson
Message:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: iom cleaning: (1) get rid of jpnf90, jprstlib, jlibalt, iolib and (2) improve iom_getatt and iom_putatt, see #2133

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/IOM/iom.F90

    r10368 r10380  
    7575   END INTERFACE 
    7676   INTERFACE iom_getatt 
    77       MODULE PROCEDURE iom_g0d_iatt, iom_g0d_ratt, iom_g0d_catt 
     77      MODULE PROCEDURE iom_g0d_iatt, iom_g1d_iatt, iom_g0d_ratt, iom_g1d_ratt, iom_g0d_catt 
    7878   END INTERFACE 
    7979   INTERFACE iom_putatt 
    80       MODULE PROCEDURE iom_p0d_iatt, iom_p0d_ratt, iom_p0d_catt 
     80      MODULE PROCEDURE iom_p0d_iatt, iom_p1d_iatt, iom_p0d_ratt, iom_p1d_ratt, iom_p0d_catt 
    8181   END INTERFACE 
    8282   INTERFACE iom_rstput 
     
    634634 
    635635 
    636    SUBROUTINE iom_open( cdname, kiomid, ldwrt, kdom, kiolib, ldstop, ldiof, kdlev ) 
     636   SUBROUTINE iom_open( cdname, kiomid, ldwrt, kdom, ldstop, ldiof, kdlev ) 
    637637      !!--------------------------------------------------------------------- 
    638638      !!                   ***  SUBROUTINE  iom_open  *** 
     
    644644      LOGICAL         , INTENT(in   ), OPTIONAL ::   ldwrt    ! open in write modeb          (default = .FALSE.) 
    645645      INTEGER         , INTENT(in   ), OPTIONAL ::   kdom     ! Type of domain to be written (default = jpdom_local_noovlap) 
    646       INTEGER         , INTENT(in   ), OPTIONAL ::   kiolib   ! library used to open the file (default = jpnf90)  
    647646      LOGICAL         , INTENT(in   ), OPTIONAL ::   ldstop   ! stop if open to read a non-existing file (default = .TRUE.) 
    648647      LOGICAL         , INTENT(in   ), OPTIONAL ::   ldiof    ! Interp On the Fly, needed for AGRIF (default = .FALSE.) 
     
    659658      LOGICAL               ::   llstop    ! local definition of ldstop 
    660659      LOGICAL               ::   lliof     ! local definition of ldiof 
    661       INTEGER               ::   iolib     ! library do we use to open the file 
    662660      INTEGER               ::   icnt      ! counter for digits in clcpu (max = jpmax_digits) 
    663661      INTEGER               ::   iln, ils  ! lengths of character 
     
    692690      ELSE                         ;   llstop = .TRUE. 
    693691      ENDIF 
    694       ! what library do we use to open the file? 
    695       IF( PRESENT(kiolib) ) THEN   ;   iolib = kiolib 
    696       ELSE                         ;   iolib = jpnf90 
    697       ENDIF 
    698692      ! are we using interpolation on the fly? 
    699693      IF( PRESENT(ldiof) ) THEN   ;   lliof = ldiof 
     
    713707      ENDIF 
    714708      ! which suffix should we use? 
    715       SELECT CASE (iolib) 
    716       CASE (jpnf90   ) ;   clsuffix = '.nc' 
    717       CASE DEFAULT     ;   clsuffix = '' 
    718          CALL ctl_stop( TRIM(clinfo), 'accepted IO library is only jpnf90 (jpioipsl option has been removed) ' ) 
    719       END SELECT 
     709      clsuffix = '.nc' 
    720710      ! Add the suffix if needed 
    721711      iln = LEN_TRIM(clname) 
     
    802792      ENDIF 
    803793      IF( istop == nstop ) THEN   ! no error within this routine 
    804          SELECT CASE (iolib) 
    805          CASE (jpnf90   )   ;   CALL iom_nf90_open(    clname, kiomid, llwrt, llok, idompar, kdlev = kdlev ) 
    806          CASE DEFAULT 
    807             CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed) ' ) 
    808          END SELECT 
     794         CALL iom_nf90_open( clname, kiomid, llwrt, llok, idompar, kdlev = kdlev ) 
    809795      ENDIF 
    810796      ! 
     
    839825         DO jf = i_s, i_e 
    840826            IF( iom_file(jf)%nfid > 0 ) THEN 
    841                SELECT CASE (iom_file(jf)%iolib) 
    842                CASE (jpnf90   )   ;   CALL iom_nf90_close(    jf ) 
    843                CASE DEFAULT 
    844                   CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 
    845                END SELECT 
     827               CALL iom_nf90_close( jf ) 
    846828               iom_file(jf)%nfid       = 0          ! free the id  
    847829               IF( PRESENT(kiomid) )   kiomid = 0   ! return 0 as id to specify that the file was closed 
     
    896878               iiv = iiv + 1 
    897879               IF( iiv <= jpmax_vars ) THEN 
    898                   SELECT CASE (iom_file(kiomid)%iolib) 
    899                   CASE (jpnf90   )   ;   iom_varid = iom_nf90_varid  ( kiomid, cdvar, iiv, kdimsz, kndims ) 
    900                   CASE DEFAULT 
    901                      CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 
    902                   END SELECT 
     880                  iom_varid = iom_nf90_varid( kiomid, cdvar, iiv, kdimsz, kndims ) 
    903881               ELSE 
    904882                  CALL ctl_stop( trim(clinfo), 'Too many variables in the file '//iom_file(kiomid)%name,   & 
    905                         &                         'increase the parameter jpmax_vars') 
     883                        &                      'increase the parameter jpmax_vars') 
    906884               ENDIF 
    907885               IF( llstop .AND. iom_varid == -1 )   CALL ctl_stop( TRIM(clinfo)//' not found' )  
     
    962940                                    &                         'with 1 or more spatial dimensions: '//cldmspc//' were found.' , & 
    963941                                    &                         'Use ncwa -a to suppress the unnecessary dimensions' ) 
    964                SELECT CASE (iom_file(kiomid)%iolib) 
    965                CASE (jpnf90   )   ;   CALL iom_nf90_get(    kiomid, idvar, pvar, itime ) 
    966                CASE DEFAULT 
    967                   CALL ctl_stop( 'iom_g0d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 
    968                END SELECT 
     942               CALL iom_nf90_get( kiomid, idvar, pvar, itime ) 
    969943            ENDIF 
    970944         ENDIF 
     
    11221096            IF( lrowattr .AND. idom /= jpdom_data   ) CALL ctl_stop(trim(clinfo), 'lrowattr present and true needs kdom = jpdom_data') 
    11231097            IF( lrowattr .AND. idom == jpdom_data   ) luse_jattr = .true. 
    1124          ENDIF 
    1125          IF( luse_jattr ) THEN 
    1126             SELECT CASE (iom_file(kiomid)%iolib) 
    1127             CASE (jpnf90   )    
    1128                 ! Ok 
    1129             CASE DEFAULT     
    1130                CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 
    1131             END SELECT 
    11321098         ENDIF 
    11331099 
     
    13011267            ENDIF 
    13021268       
    1303             SELECT CASE (iom_file(kiomid)%iolib) 
    1304             CASE (jpnf90   )   ;   CALL iom_nf90_get(    kiomid, idvar, inbdim, istart, icnt, ix1, ix2, iy1, iy2,   & 
    1305                &                                         pv_r1d, pv_r2d, pv_r3d ) 
    1306             CASE DEFAULT 
    1307                CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 
    1308             END SELECT 
     1269            CALL iom_nf90_get( kiomid, idvar, inbdim, istart, icnt, ix1, ix2, iy1, iy2, pv_r1d, pv_r2d, pv_r3d ) 
    13091270 
    13101271            IF( istop == nstop ) THEN   ! no additional errors until this point... 
     
    14221383               IF( iom_file(kiomid)%luld(idvar) ) THEN 
    14231384                  IF( iom_file(kiomid)%dimsz(1,idvar) <= size(ptime) ) THEN 
    1424                      SELECT CASE (iom_file(kiomid)%iolib) 
    1425                      CASE (jpnf90   )   ;   CALL iom_nf90_gettime(   kiomid, idvar, ptime, cdunits, cdcalendar ) 
    1426                      CASE DEFAULT 
    1427                         CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 
    1428                      END SELECT 
     1385                     CALL iom_nf90_gettime(   kiomid, idvar, ptime, cdunits, cdcalendar ) 
    14291386                  ELSE 
    14301387                     WRITE(ctmp1,*) 'error with the size of ptime ',size(ptime),iom_file(kiomid)%dimsz(1,idvar) 
     
    14481405   !!                   INTERFACE iom_getatt 
    14491406   !!---------------------------------------------------------------------- 
    1450    SUBROUTINE iom_g0d_iatt( kiomid, cdatt, pvar, cdvar ) 
    1451       INTEGER         , INTENT(in   )                 ::   kiomid    ! Identifier of the file 
    1452       CHARACTER(len=*), INTENT(in   )                 ::   cdatt     ! Name of the attribute 
    1453       INTEGER         , INTENT(  out)                 ::   pvar      ! read field 
    1454       CHARACTER(len=*), INTENT(in   ), OPTIONAL      ::   cdvar     ! Name of the variable 
     1407   SUBROUTINE iom_g0d_iatt( kiomid, cdatt, katt0d, cdvar ) 
     1408      INTEGER               , INTENT(in   )           ::   kiomid    ! Identifier of the file 
     1409      CHARACTER(len=*)      , INTENT(in   )           ::   cdatt     ! Name of the attribute 
     1410      INTEGER               , INTENT(  out)           ::   katt0d    ! read field 
     1411      CHARACTER(len=*)      , INTENT(in   ), OPTIONAL ::   cdvar     ! Name of the variable 
    14551412      ! 
    14561413      IF( kiomid > 0 ) THEN 
    1457          IF( iom_file(kiomid)%nfid > 0 ) THEN 
    1458             SELECT CASE (iom_file(kiomid)%iolib) 
    1459             CASE (jpnf90   )   ;   IF( PRESENT(cdvar) ) THEN 
    1460                                       CALL iom_nf90_getatt( kiomid, cdatt, pvar, cdvar=cdvar ) 
    1461                                    ELSE 
    1462                                       CALL iom_nf90_getatt( kiomid, cdatt, pvar ) 
    1463                                    ENDIF 
    1464             CASE DEFAULT 
    1465                CALL ctl_stop( 'iom_g0d_iatt: accepted IO library is only jpnf90' ) 
    1466             END SELECT 
    1467          ENDIF 
     1414         IF( iom_file(kiomid)%nfid > 0 )   CALL iom_nf90_getatt( kiomid, cdatt,  katt0d =  katt0d, cdvar=cdvar ) 
    14681415      ENDIF 
    14691416   END SUBROUTINE iom_g0d_iatt 
    14701417 
    1471    SUBROUTINE iom_g0d_ratt( kiomid, cdatt, pvar, cdvar ) 
    1472       INTEGER         , INTENT(in   )                 ::   kiomid    ! Identifier of the file 
    1473       CHARACTER(len=*), INTENT(in   )                 ::   cdatt     ! Name of the attribute 
    1474       REAL(wp)        , INTENT(  out)                 ::   pvar      ! written field 
    1475       CHARACTER(len=*), INTENT(in   ), OPTIONAL      ::   cdvar     ! Name of the variable 
     1418   SUBROUTINE iom_g1d_iatt( kiomid, cdatt, katt1d, cdvar ) 
     1419      INTEGER               , INTENT(in   )           ::   kiomid    ! Identifier of the file 
     1420      CHARACTER(len=*)      , INTENT(in   )           ::   cdatt     ! Name of the attribute 
     1421      INTEGER, DIMENSION(:) , INTENT(  out)           ::   katt1d    ! read field 
     1422      CHARACTER(len=*)      , INTENT(in   ), OPTIONAL ::   cdvar     ! Name of the variable 
    14761423      ! 
    14771424      IF( kiomid > 0 ) THEN 
    1478          IF( iom_file(kiomid)%nfid > 0 ) THEN 
    1479             SELECT CASE (iom_file(kiomid)%iolib) 
    1480             CASE (jpnf90   )   ;   IF( PRESENT(cdvar) ) THEN 
    1481                                       CALL iom_nf90_getatt( kiomid, cdatt, pvar, cdvar=cdvar ) 
    1482                                    ELSE 
    1483                                       CALL iom_nf90_getatt( kiomid, cdatt, pvar ) 
    1484                                    ENDIF 
    1485             CASE DEFAULT     
    1486                CALL ctl_stop( 'iom_g0d_ratt: accepted IO library is only jpnf90' ) 
    1487             END SELECT 
    1488          ENDIF 
     1425         IF( iom_file(kiomid)%nfid > 0 )   CALL iom_nf90_getatt( kiomid, cdatt,  katt1d =  katt1d, cdvar=cdvar ) 
     1426      ENDIF 
     1427   END SUBROUTINE iom_g1d_iatt 
     1428 
     1429   SUBROUTINE iom_g0d_ratt( kiomid, cdatt, patt0d, cdvar ) 
     1430      INTEGER               , INTENT(in   )           ::   kiomid    ! Identifier of the file 
     1431      CHARACTER(len=*)      , INTENT(in   )           ::   cdatt     ! Name of the attribute 
     1432      REAL(wp)              , INTENT(  out)           ::   patt0d    ! read field 
     1433      CHARACTER(len=*)      , INTENT(in   ), OPTIONAL ::   cdvar     ! Name of the variable 
     1434      ! 
     1435      IF( kiomid > 0 ) THEN 
     1436         IF( iom_file(kiomid)%nfid > 0 )   CALL iom_nf90_getatt( kiomid, cdatt,  patt0d =  patt0d, cdvar=cdvar ) 
    14891437      ENDIF 
    14901438   END SUBROUTINE iom_g0d_ratt 
    14911439 
    1492    SUBROUTINE iom_g0d_catt( kiomid, cdatt, pvar, cdvar ) 
    1493       INTEGER         , INTENT(in   )                 ::   kiomid    ! Identifier of the file 
    1494       CHARACTER(len=*), INTENT(in   )                 ::   cdatt     ! Name of the attribute 
    1495       CHARACTER(len=*), INTENT(  out)                 ::   pvar      ! written field 
    1496       CHARACTER(len=*), INTENT(in   ), OPTIONAL      ::   cdvar     ! Name of the variable 
     1440   SUBROUTINE iom_g1d_ratt( kiomid, cdatt, patt1d, cdvar ) 
     1441      INTEGER               , INTENT(in   )           ::   kiomid    ! Identifier of the file 
     1442      CHARACTER(len=*)      , INTENT(in   )           ::   cdatt     ! Name of the attribute 
     1443      REAL(wp), DIMENSION(:), INTENT(  out)           ::   patt1d    ! read field 
     1444      CHARACTER(len=*)      , INTENT(in   ), OPTIONAL ::   cdvar     ! Name of the variable 
    14971445      ! 
    14981446      IF( kiomid > 0 ) THEN 
    1499          IF( iom_file(kiomid)%nfid > 0 ) THEN 
    1500             SELECT CASE (iom_file(kiomid)%iolib) 
    1501             CASE (jpnf90   )   ;   IF( PRESENT(cdvar) ) THEN 
    1502                                       CALL iom_nf90_getatt( kiomid, cdatt, pvar, cdvar=cdvar ) 
    1503                                    ELSE 
    1504                                       CALL iom_nf90_getatt( kiomid, cdatt, pvar ) 
    1505                                    ENDIF 
    1506             CASE DEFAULT 
    1507                CALL ctl_stop( 'iom_g0d_ratt: accepted IO library is only jpnf90' ) 
    1508             END SELECT 
    1509          ENDIF 
     1447         IF( iom_file(kiomid)%nfid > 0 )   CALL iom_nf90_getatt( kiomid, cdatt,  patt1d =  patt1d, cdvar=cdvar ) 
     1448      ENDIF 
     1449   END SUBROUTINE iom_g1d_ratt 
     1450    
     1451   SUBROUTINE iom_g0d_catt( kiomid, cdatt, cdatt0d, cdvar ) 
     1452      INTEGER               , INTENT(in   )           ::   kiomid    ! Identifier of the file 
     1453      CHARACTER(len=*)      , INTENT(in   )           ::   cdatt     ! Name of the attribute 
     1454      CHARACTER(len=*)      , INTENT(  out)           ::   cdatt0d   ! read field 
     1455      CHARACTER(len=*)      , INTENT(in   ), OPTIONAL ::   cdvar     ! Name of the variable 
     1456      ! 
     1457      IF( kiomid > 0 ) THEN 
     1458         IF( iom_file(kiomid)%nfid > 0 )   CALL iom_nf90_getatt( kiomid, cdatt, cdatt0d = cdatt0d, cdvar=cdvar ) 
    15101459      ENDIF 
    15111460   END SUBROUTINE iom_g0d_catt 
     1461 
    15121462 
    15131463   !!---------------------------------------------------------------------- 
    15141464   !!                   INTERFACE iom_putatt 
    15151465   !!---------------------------------------------------------------------- 
    1516    SUBROUTINE iom_p0d_iatt( kiomid, cdatt, pvar, cdvar ) 
    1517       INTEGER         , INTENT(in   )                 ::   kiomid    ! Identifier of the file 
    1518       CHARACTER(len=*), INTENT(in   )                 ::   cdatt     ! Name of the attribute 
    1519       INTEGER         , INTENT(in   )                 ::   pvar      ! write field 
    1520       CHARACTER(len=*), INTENT(in   ), OPTIONAL      ::   cdvar     ! Name of the variable 
     1466   SUBROUTINE iom_p0d_iatt( kiomid, cdatt, katt0d, cdvar ) 
     1467      INTEGER               , INTENT(in   )           ::   kiomid    ! Identifier of the file 
     1468      CHARACTER(len=*)      , INTENT(in   )           ::   cdatt     ! Name of the attribute 
     1469      INTEGER               , INTENT(in   )           ::   katt0d    ! written field 
     1470      CHARACTER(len=*)      , INTENT(in   ), OPTIONAL ::   cdvar     ! Name of the variable 
    15211471      ! 
    15221472      IF( kiomid > 0 ) THEN 
    1523          IF( iom_file(kiomid)%nfid > 0 ) THEN 
    1524             SELECT CASE (iom_file(kiomid)%iolib) 
    1525             CASE (jpnf90   )   ;   IF( PRESENT(cdvar) ) THEN 
    1526                                       CALL iom_nf90_putatt( kiomid, cdatt, pvar, cdvar=cdvar ) 
    1527                                    ELSE 
    1528                                       CALL iom_nf90_putatt( kiomid, cdatt, pvar ) 
    1529                                    ENDIF 
    1530             CASE DEFAULT 
    1531                CALL ctl_stop( 'iom_p0d_iatt: accepted IO library is only jpnf90' ) 
    1532             END SELECT 
    1533          ENDIF 
     1473         IF( iom_file(kiomid)%nfid > 0 )   CALL iom_nf90_putatt( kiomid, cdatt,  katt0d =  katt0d, cdvar=cdvar ) 
    15341474      ENDIF 
    15351475   END SUBROUTINE iom_p0d_iatt 
    15361476 
    1537    SUBROUTINE iom_p0d_ratt( kiomid, cdatt, pvar, cdvar ) 
    1538       INTEGER         , INTENT(in   )                 ::   kiomid    ! Identifier of the file 
    1539       CHARACTER(len=*), INTENT(in   )                 ::   cdatt     ! Name of the attribute 
    1540       REAL(wp)        , INTENT(in   )                 ::   pvar      ! write field 
    1541       CHARACTER(len=*), INTENT(in   ), OPTIONAL      ::   cdvar     ! Name of the variable 
     1477   SUBROUTINE iom_p1d_iatt( kiomid, cdatt, katt1d, cdvar ) 
     1478      INTEGER               , INTENT(in   )           ::   kiomid    ! Identifier of the file 
     1479      CHARACTER(len=*)      , INTENT(in   )           ::   cdatt     ! Name of the attribute 
     1480      INTEGER, DIMENSION(:) , INTENT(in   )           ::   katt1d    ! written field 
     1481      CHARACTER(len=*)      , INTENT(in   ), OPTIONAL ::   cdvar     ! Name of the variable 
    15421482      ! 
    15431483      IF( kiomid > 0 ) THEN 
    1544          IF( iom_file(kiomid)%nfid > 0 ) THEN 
    1545             SELECT CASE (iom_file(kiomid)%iolib) 
    1546             CASE (jpnf90   )   ;   IF( PRESENT(cdvar) ) THEN 
    1547                                       CALL iom_nf90_putatt( kiomid, cdatt, pvar, cdvar=cdvar ) 
    1548                                    ELSE 
    1549                                       CALL iom_nf90_putatt( kiomid, cdatt, pvar ) 
    1550                                    ENDIF 
    1551             CASE DEFAULT     
    1552                CALL ctl_stop( 'iom_p0d_ratt: accepted IO library is only jpnf90' ) 
    1553             END SELECT 
    1554          ENDIF 
     1484         IF( iom_file(kiomid)%nfid > 0 )   CALL iom_nf90_putatt( kiomid, cdatt,  katt1d =  katt1d, cdvar=cdvar ) 
     1485      ENDIF 
     1486   END SUBROUTINE iom_p1d_iatt 
     1487 
     1488   SUBROUTINE iom_p0d_ratt( kiomid, cdatt, patt0d, cdvar ) 
     1489      INTEGER               , INTENT(in   )           ::   kiomid    ! Identifier of the file 
     1490      CHARACTER(len=*)      , INTENT(in   )           ::   cdatt     ! Name of the attribute 
     1491      REAL(wp)              , INTENT(in   )           ::   patt0d    ! written field 
     1492      CHARACTER(len=*)      , INTENT(in   ), OPTIONAL ::   cdvar     ! Name of the variable 
     1493      ! 
     1494      IF( kiomid > 0 ) THEN 
     1495         IF( iom_file(kiomid)%nfid > 0 )   CALL iom_nf90_putatt( kiomid, cdatt,  patt0d =  patt0d, cdvar=cdvar ) 
    15551496      ENDIF 
    15561497   END SUBROUTINE iom_p0d_ratt 
    15571498 
    1558    SUBROUTINE iom_p0d_catt( kiomid, cdatt, pvar, cdvar ) 
    1559       INTEGER         , INTENT(in   )                 ::   kiomid    ! Identifier of the file 
    1560       CHARACTER(len=*), INTENT(in   )                 ::   cdatt     ! Name of the attribute 
    1561       CHARACTER(len=*), INTENT(in   )                 ::   pvar      ! write field 
    1562       CHARACTER(len=*), INTENT(in   ), OPTIONAL      ::   cdvar     ! Name of the variable 
     1499   SUBROUTINE iom_p1d_ratt( kiomid, cdatt, patt1d, cdvar ) 
     1500      INTEGER               , INTENT(in   )           ::   kiomid    ! Identifier of the file 
     1501      CHARACTER(len=*)      , INTENT(in   )           ::   cdatt     ! Name of the attribute 
     1502      REAL(wp), DIMENSION(:), INTENT(in   )           ::   patt1d    ! written field 
     1503      CHARACTER(len=*)      , INTENT(in   ), OPTIONAL ::   cdvar     ! Name of the variable 
    15631504      ! 
    15641505      IF( kiomid > 0 ) THEN 
    1565          IF( iom_file(kiomid)%nfid > 0 ) THEN 
    1566             SELECT CASE (iom_file(kiomid)%iolib) 
    1567             CASE (jpnf90   )   ;   IF( PRESENT(cdvar) ) THEN 
    1568                                       CALL iom_nf90_putatt( kiomid, cdatt, pvar, cdvar=cdvar ) 
    1569                                    ELSE 
    1570                                       CALL iom_nf90_putatt( kiomid, cdatt, pvar ) 
    1571                                    ENDIF 
    1572             CASE DEFAULT 
    1573                CALL ctl_stop( 'iom_p0d_ratt: accepted IO library is only jpnf90' ) 
    1574             END SELECT 
    1575          ENDIF 
     1506         IF( iom_file(kiomid)%nfid > 0 )   CALL iom_nf90_putatt( kiomid, cdatt,  patt1d =  patt1d, cdvar=cdvar ) 
     1507      ENDIF 
     1508   END SUBROUTINE iom_p1d_ratt 
     1509    
     1510   SUBROUTINE iom_p0d_catt( kiomid, cdatt, cdatt0d, cdvar ) 
     1511      INTEGER               , INTENT(in   )           ::   kiomid    ! Identifier of the file 
     1512      CHARACTER(len=*)      , INTENT(in   )           ::   cdatt     ! Name of the attribute 
     1513      CHARACTER(len=*)      , INTENT(in   )           ::   cdatt0d   ! written field 
     1514      CHARACTER(len=*)      , INTENT(in   ), OPTIONAL ::   cdvar     ! Name of the variable 
     1515      ! 
     1516      IF( kiomid > 0 ) THEN 
     1517         IF( iom_file(kiomid)%nfid > 0 )   CALL iom_nf90_putatt( kiomid, cdatt, cdatt0d = cdatt0d, cdvar=cdvar ) 
    15761518      ENDIF 
    15771519   END SUBROUTINE iom_p0d_catt 
     1520 
    15781521 
    15791522   !!---------------------------------------------------------------------- 
     
    16041547            IF( iom_file(kiomid)%nfid > 0 ) THEN 
    16051548               ivid = iom_varid( kiomid, cdvar, ldstop = .FALSE. ) 
    1606                SELECT CASE (iom_file(kiomid)%iolib) 
    1607                CASE (jpnf90   )   ;   CALL iom_nf90_rstput(   kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r0d = pvar ) 
    1608                CASE DEFAULT      
    1609                   CALL ctl_stop( 'iom_rp0d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 
    1610                END SELECT 
     1549               CALL iom_nf90_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r0d = pvar ) 
    16111550            ENDIF 
    16121551         ENDIF 
     
    16381577            IF( iom_file(kiomid)%nfid > 0 ) THEN 
    16391578               ivid = iom_varid( kiomid, cdvar, ldstop = .FALSE. ) 
    1640                SELECT CASE (iom_file(kiomid)%iolib) 
    1641                CASE (jpnf90   )   ;   CALL iom_nf90_rstput(   kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r1d = pvar ) 
    1642                CASE DEFAULT      
    1643                   CALL ctl_stop( 'iom_rp1d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 
    1644                END SELECT 
     1579               CALL iom_nf90_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r1d = pvar ) 
    16451580            ENDIF 
    16461581         ENDIF 
     
    16721607            IF( iom_file(kiomid)%nfid > 0 ) THEN 
    16731608               ivid = iom_varid( kiomid, cdvar, ldstop = .FALSE. ) 
    1674                SELECT CASE (iom_file(kiomid)%iolib) 
    1675                CASE (jpnf90   )   ;   CALL iom_nf90_rstput(   kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r2d = pvar ) 
    1676                CASE DEFAULT      
    1677                   CALL ctl_stop( 'iom_rp2d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 
    1678                END SELECT 
     1609               CALL iom_nf90_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r2d = pvar ) 
    16791610            ENDIF 
    16801611         ENDIF 
     
    17061637            IF( iom_file(kiomid)%nfid > 0 ) THEN 
    17071638               ivid = iom_varid( kiomid, cdvar, ldstop = .FALSE. ) 
    1708                SELECT CASE (iom_file(kiomid)%iolib) 
    1709                CASE (jpnf90   )   ;   CALL iom_nf90_rstput(   kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r3d = pvar ) 
    1710                CASE DEFAULT      
    1711                   CALL ctl_stop( 'iom_rp3d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 
    1712                END SELECT 
     1639               CALL iom_nf90_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r3d = pvar ) 
    17131640            ENDIF 
    17141641         ENDIF 
Note: See TracChangeset for help on using the changeset viewer.