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 5609 for trunk/NEMOGCM/TOOLS/SIREN/src/variable.f90 – NEMO

Ignore:
Timestamp:
2015-07-17T17:42:15+02:00 (9 years ago)
Author:
jpaul
Message:

commit changes/bugfix/... for SIREN; see ticket #1580

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/TOOLS/SIREN/src/variable.f90

    r5037 r5609  
    281281!> @date November, 2014  
    282282!> - Fix memory leaks bug 
     283!> @date June, 2015 
     284!> - change way to get variable information in namelist 
     285!> @date July, 2015  
     286!> - add subroutine var_chg_unit to change unit of output variable 
    283287! 
    284288!> @note Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     
    293297   USE att                             ! attribute manager 
    294298   USE dim                             ! dimension manager 
     299   USE math                            ! mathematical function 
    295300   IMPLICIT NONE 
    296301   ! NOTE_avoid_public_variables_if_possible 
     
    318323   PUBLIC :: var_concat        !< concatenate two variables 
    319324   PUBLIC :: var_limit_value   !< forced min and max value 
     325   PUBLIC :: var_chg_unit      !< change variable unit and value 
    320326   PUBLIC :: var_max_dim       !< get array of maximum dimension use 
    321327   PUBLIC :: var_reorder       !< reorder table of value in variable structure 
     
    382388   PRIVATE :: var__get_max       ! get maximum value from namelist  
    383389   PRIVATE :: var__get_min       ! get minimum value from namelist 
     390   PRIVATE :: var__get_unf       ! get scale factor value from namelist 
     391   PRIVATE :: var__get_unt       ! get unit from namelist 
    384392   PRIVATE :: var__get_interp    ! get interpolation method from namelist 
    385393   PRIVATE :: var__get_extrap    ! get extrapolation method from namelist 
     
    401409      TYPE(TATT), DIMENSION(:), POINTER :: t_att => NULL() !< variable attributes 
    402410      TYPE(TDIM), DIMENSION(ip_maxdim)  :: t_dim           !< variable dimension 
    403        
     411  
    404412      LOGICAL           :: l_file = .FALSE.  !< variable read in a file 
    405413 
     
    414422      REAL(dp)          :: d_min = dp_fill      !< minimum value  
    415423      REAL(dp)          :: d_max = dp_fill      !< maximum value  
    416        
     424  
     425      CHARACTER(LEN=lc) :: c_unt = ''           !< new variables units (linked to units factor) 
     426      REAL(dp)          :: d_unf = 1._dp        !< units factor 
     427 
    417428      !!! netcdf4 
    418429      LOGICAL           :: l_contiguous = .FALSE. !< use contiguous storage or not 
     
    549560      var__copy_unit%d_max      = td_var%d_max 
    550561 
     562      var__copy_unit%c_unt      = TRIM(td_var%c_unt) 
     563      var__copy_unit%d_unf      = td_var%d_unf 
     564 
    551565      var__copy_unit%i_type     = td_var%i_type 
    552566      var__copy_unit%i_natt     = td_var%i_natt 
     
    577591      var__copy_unit%c_units    = TRIM(td_var%c_units) 
    578592      var__copy_unit%c_axis     = TRIM(td_var%c_axis) 
     593      var__copy_unit%d_unf      = td_var%d_unf 
    579594      var__copy_unit%d_scf      = td_var%d_scf 
    580595      var__copy_unit%d_ofs      = td_var%d_ofs 
     
    788803   !>   - id_id : variable id (read from a file). 
    789804   !>   - id_ew : number of point composing east west wrap band. 
     805   !>   - dd_unf : real(8) value for units factor attribute. 
    790806   !>   - dd_scf : real(8) value for scale factor attribute. 
    791807   !>   - dd_ofs : real(8) value for add offset attribute. 
     
    801817   !>   - cd_extrap  : a array of character defining extrapolation method. 
    802818   !>   - cd_filter  : a array of character defining filtering method. 
     819   !>   - cd_unt : a string character to define output unit 
     820   !>   - dd_unf : real(8) factor applied to change unit 
    803821   !> 
    804822   !>  @note most of these optionals arguments will be inform automatically, 
     
    807825   !> @author J.Paul 
    808826   !> - November, 2013- Initial Version 
     827   !> @date February, 2015 - Bug fix: conversion of the FillValue type (float case) 
     828   !> @date June, 2015 - add unit factor (to change unit) 
    809829   !> 
    810830   !> @param[in] cd_name         variable name 
     
    833853   !> @param[in] cd_extrap       extrapolation method 
    834854   !> @param[in] cd_filter       filter method 
     855   !> @param[in] cd_unt          new units (linked to units factor) 
     856   !> @param[in] dd_unf          units factor 
    835857   !> @return variable structure 
    836858   !------------------------------------------------------------------- 
     
    843865   &                              ld_contiguous, ld_shuffle,& 
    844866   &                              ld_fletcher32, id_deflvl, id_chunksz, & 
    845    &                              cd_interp, cd_extrap, cd_filter ) 
     867   &                              cd_interp, cd_extrap, cd_filter, & 
     868   &                              cd_unt, dd_unf ) 
    846869      IMPLICIT NONE 
    847870      ! Argument 
     
    871894      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
    872895      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     896      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     897      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
    873898 
    874899 
     
    933958               tl_att=att_init('_FillValue', INT(dd_fill,i4) ) 
    934959            CASE(NF90_FLOAT) 
    935                tl_att=att_init('_FillValue', INT(dd_fill,sp) ) 
     960               tl_att=att_init('_FillValue', REAL(dd_fill,sp) ) 
    936961            CASE DEFAULT ! NF90_DOUBLE 
    937                      tl_att=att_init('_FillValue', dd_fill ) 
     962               tl_att=att_init('_FillValue', dd_fill ) 
    938963         END SELECT 
    939964         CALL var_move_att(var__init, tl_att) 
     
    10381063      ENDIF 
    10391064 
     1065      ! units factor 
     1066      IF( PRESENT(dd_unf) )THEN 
     1067         tl_att=att_init('units_factor',dd_unf) 
     1068         CALL var_move_att(var__init, tl_att) 
     1069      ENDIF 
     1070 
     1071      ! new units (linked to units factor) 
     1072      IF( PRESENT(cd_unt) )THEN 
     1073         tl_att=att_init('new_units',cd_units) 
     1074         CALL var_move_att(var__init, tl_att) 
     1075      ENDIF 
     1076 
    10401077      ! add extra information 
    10411078      CALL var__get_extra(var__init) 
     
    10471084      CALL var_del_att(var__init, 'filter') 
    10481085      CALL var_del_att(var__init, 'src_file') 
     1086      CALL var_del_att(var__init, 'src_i_indices') 
     1087      CALL var_del_att(var__init, 'src_j_indices') 
    10491088      CALL var_del_att(var__init, 'valid_min') 
    10501089      CALL var_del_att(var__init, 'valid_max') 
     
    10731112   !> @author J.Paul 
    10741113   !> - November, 2013- Initial Version 
    1075    ! 
     1114   !> @date June, 2015 
     1115   !> - add interp, extrap, and filter argument 
     1116   !> @date July, 2015 
     1117   !> - add unit factor (to change unit) 
     1118   !> 
    10761119   !> @param[in] cd_name         variable name 
    10771120   !> @param[in] dd_value        1D array of real(8) value 
     
    11001143   !> @param[in] id_deflvl       deflate level from 0 to 9, 0 indicates no deflation is in use 
    11011144   !> @param[in] id_chunksz      chunk size 
     1145   !> @param[in] cd_interp       interpolation method 
     1146   !> @param[in] cd_extrap       extrapolation method 
     1147   !> @param[in] cd_filter       filter method 
     1148   !> @param[in] cd_unt          new units (linked to units factor) 
     1149   !> @param[in] dd_unf          units factor 
    11021150   !> @return variable structure 
    11031151   !------------------------------------------------------------------- 
     
    11101158   &                                    dd_min, dd_max,           & 
    11111159   &                                    ld_contiguous, ld_shuffle,& 
    1112    &                                    ld_fletcher32, id_deflvl, id_chunksz) 
     1160   &                                    ld_fletcher32, id_deflvl, id_chunksz, & 
     1161   &                                    cd_interp, cd_extrap, cd_filter, & 
     1162   &                                    cd_unt, dd_unf) 
    11131163      IMPLICIT NONE 
    11141164      ! Argument 
     
    11381188      INTEGER(i4)     ,                       INTENT(IN), OPTIONAL :: id_deflvl 
    11391189      INTEGER(i4)     , DIMENSION(ip_maxdim), INTENT(IN), OPTIONAL :: id_chunksz 
     1190      CHARACTER(LEN=*), DIMENSION(2)        , INTENT(IN), OPTIONAL :: cd_interp 
     1191      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
     1192      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     1193      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     1194      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
    11401195 
    11411196      ! local variable 
     
    11931248      &                          ld_fletcher32=ld_fletcher32,        & 
    11941249      &                          id_deflvl=id_deflvl,                & 
    1195       &                          id_chunksz=id_chunksz(:)) 
     1250      &                          id_chunksz=id_chunksz(:),           & 
     1251      &                          cd_interp=cd_interp(:),             & 
     1252      &                          cd_extrap=cd_extrap(:),             & 
     1253      &                          cd_filter=cd_filter(:),             & 
     1254      &                          cd_unt=cd_unt, dd_unf=dd_unf ) 
    11961255    
    11971256      ! add value 
     
    12401299   !> @author J.Paul 
    12411300   !> - November, 2013- Initial Version 
     1301   !> @date February, 2015 - bug fix: array initialise with dimension 
     1302   !> array not only one value 
     1303   !> @date June, 2015 
     1304   !> - add interp, extrap, and filter argument 
     1305   !> - Bux fix: dimension array initialise not only one value 
     1306   !> @date July, 2015 
     1307   !> - add unit factor (to change unit) 
    12421308   ! 
    12431309   !> @param[in] cd_name         variable name 
     
    12691335   !> no deflation is in use 
    12701336   !> @param[in] id_chunksz      chunk size 
     1337   !> @param[in] cd_interp       interpolation method 
     1338   !> @param[in] cd_extrap       extrapolation method 
     1339   !> @param[in] cd_filter       filter method 
     1340   !> @param[in] cd_unt          new units (linked to units factor) 
     1341   !> @param[in] dd_unf          units factor 
    12711342   !> @return variable structure 
    12721343   !------------------------------------------------------------------- 
     
    12791350   &                                    dd_min, dd_max,           & 
    12801351   &                                    ld_contiguous, ld_shuffle,& 
    1281    &                                    ld_fletcher32, id_deflvl, id_chunksz) 
     1352   &                                    ld_fletcher32, id_deflvl, id_chunksz, & 
     1353   &                                    cd_interp, cd_extrap, cd_filter, & 
     1354   &                                    cd_unt, dd_unf) 
    12821355      IMPLICIT NONE 
    12831356      ! Argument 
     
    13071380      INTEGER(i4)     ,                       INTENT(IN), OPTIONAL :: id_deflvl 
    13081381      INTEGER(i4)     , DIMENSION(ip_maxdim), INTENT(IN), OPTIONAL :: id_chunksz 
     1382      CHARACTER(LEN=*), DIMENSION(2)        , INTENT(IN), OPTIONAL :: cd_interp 
     1383      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
     1384      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     1385      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     1386      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
    13091387 
    13101388      ! local variable 
     
    13501428      ENDIF 
    13511429 
    1352       il_count(:)=tl_dim(1)%i_len 
     1430      il_count(:)=tl_dim(:)%i_len 
    13531431      IF( PRESENT(id_count) )THEN 
    13541432         IF( SIZE(id_count(:)) /= 2 )THEN 
     
    13811459      &                          ld_fletcher32=ld_fletcher32,        & 
    13821460      &                          id_deflvl=id_deflvl,                & 
    1383       &                          id_chunksz=id_chunksz(:)) 
     1461      &                          id_chunksz=id_chunksz(:),           & 
     1462      &                          cd_interp=cd_interp(:),             & 
     1463      &                          cd_extrap=cd_extrap(:),             & 
     1464      &                          cd_filter=cd_filter(:),             & 
     1465      &                          cd_unt=cd_unt, dd_unf=dd_unf ) 
    13841466    
    13851467      ! add value 
     
    14321514   !> @author J.Paul 
    14331515   !> - November, 2013- Initial Version 
    1434    ! 
     1516   !> @date June, 2015 
     1517   !> - add interp, extrap, and filter argument 
     1518   !> @date July, 2015 
     1519   !> - add unit factor (to change unit) 
     1520   !> 
    14351521   !> @param[in] cd_name         variable name 
    14361522   !> @param[in] dd_value        1D array of real(8) value 
     
    14611547   !> deflation is in use 
    14621548   !> @param[in] id_chunksz      chunk size 
     1549   !> @param[in] cd_interp       interpolation method 
     1550   !> @param[in] cd_extrap       extrapolation method 
     1551   !> @param[in] cd_filter       filter method 
     1552   !> @param[in] cd_unt          new units (linked to units factor) 
     1553   !> @param[in] dd_unf          units factor 
    14631554   !> @return variable structure 
    14641555   !------------------------------------------------------------------- 
     
    14711562   &                                    dd_min, dd_max,           & 
    14721563   &                                    ld_contiguous, ld_shuffle,& 
    1473    &                                    ld_fletcher32, id_deflvl, id_chunksz) 
     1564   &                                    ld_fletcher32, id_deflvl, id_chunksz, & 
     1565   &                                    cd_interp, cd_extrap, cd_filter, & 
     1566   &                                    cd_unt, dd_unf) 
    14741567      IMPLICIT NONE 
    14751568      ! Argument 
     
    14991592      INTEGER(i4)     ,                       INTENT(IN), OPTIONAL :: id_deflvl 
    15001593      INTEGER(i4)     , DIMENSION(ip_maxdim), INTENT(IN), OPTIONAL :: id_chunksz 
     1594      CHARACTER(LEN=*), DIMENSION(2)        , INTENT(IN), OPTIONAL :: cd_interp 
     1595      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
     1596      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     1597      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     1598      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
    15011599 
    15021600      ! local variable 
     
    15771675      &                          ld_fletcher32=ld_fletcher32,        & 
    15781676      &                          id_deflvl=id_deflvl,                & 
    1579       &                          id_chunksz=id_chunksz(:)) 
     1677      &                          id_chunksz=id_chunksz(:),           & 
     1678      &                          cd_interp=cd_interp(:),             & 
     1679      &                          cd_extrap=cd_extrap(:),             & 
     1680      &                          cd_filter=cd_filter(:),             & 
     1681      &                          cd_unt=cd_unt, dd_unf=dd_unf ) 
    15801682    
    15811683      ! add value 
     
    16241726   !> @author J.Paul 
    16251727   !> - November, 2013- Initial Version 
    1626    ! 
     1728   !> @date June, 2015 
     1729   !> - add interp, extrap, and filter argument 
     1730   !> @date July, 2015 
     1731   !> - add unit factor (to change unit) 
     1732   !> 
    16271733   !> @param[in] cd_name         variable name 
    16281734   !> @param[in] dd_value        4D array of real(8) value 
     
    16531759   !> deflation is in use 
    16541760   !> @param[in] id_chunksz      chunk size 
     1761   !> @param[in] cd_interp       interpolation method 
     1762   !> @param[in] cd_extrap       extrapolation method 
     1763   !> @param[in] cd_filter       filter method 
     1764   !> @param[in] cd_unt          new units (linked to units factor) 
     1765   !> @param[in] dd_unf          units factor 
    16551766   !> @return variable structure 
    16561767   !------------------------------------------------------------------- 
     
    16631774   &                                 dd_min, dd_max,           & 
    16641775   &                                 ld_contiguous, ld_shuffle,& 
    1665    &                                 ld_fletcher32, id_deflvl, id_chunksz) 
     1776   &                                 ld_fletcher32, id_deflvl, id_chunksz, & 
     1777   &                                 cd_interp, cd_extrap, cd_filter, & 
     1778   &                                 cd_unt, dd_unf ) 
    16661779      IMPLICIT NONE 
    16671780      ! Argument 
     
    16911804      INTEGER(i4)     ,                       INTENT(IN), OPTIONAL :: id_deflvl 
    16921805      INTEGER(i4)     , DIMENSION(ip_maxdim), INTENT(IN), OPTIONAL :: id_chunksz 
     1806      CHARACTER(LEN=*), DIMENSION(2)        , INTENT(IN), OPTIONAL :: cd_interp 
     1807      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
     1808      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     1809      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     1810      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
    16931811 
    16941812      ! local variable 
     
    17231841      &                       ld_fletcher32=ld_fletcher32,        & 
    17241842      &                       id_deflvl=id_deflvl,                & 
    1725       &                       id_chunksz=id_chunksz(:)) 
     1843      &                       id_chunksz=id_chunksz(:),           & 
     1844      &                       cd_interp=cd_interp(:),             & 
     1845      &                       cd_extrap=cd_extrap(:),             & 
     1846      &                       cd_filter=cd_filter(:),             & 
     1847      &                       cd_unt=cd_unt, dd_unf=dd_unf ) 
    17261848  
    17271849      ! add value 
     
    17591881   !> @author J.Paul 
    17601882   !> - November, 2013- Initial Version 
     1883   !> @date June, 2015 
     1884   !> - add interp, extrap, and filter argument 
     1885   !> @date July, 2015 
     1886   !> - add unit factor (to change unit) 
    17611887   ! 
    17621888   !> @param[in] cd_name         variable name 
     
    17881914   !> deflation is in use 
    17891915   !> @param[in] id_chunksz      chunk size 
     1916   !> @param[in] cd_interp       interpolation method 
     1917   !> @param[in] cd_extrap       extrapolation method 
     1918   !> @param[in] cd_filter       filter method 
     1919   !> @param[in] cd_unt          new units (linked to units factor) 
     1920   !> @param[in] dd_unf          units factor 
    17901921   !> @return variable structure 
    17911922   !------------------------------------------------------------------- 
     
    17981929   &                                    dd_min, dd_max,           & 
    17991930   &                                    ld_contiguous, ld_shuffle,& 
    1800    &                                    ld_fletcher32, id_deflvl, id_chunksz) 
     1931   &                                    ld_fletcher32, id_deflvl, id_chunksz, & 
     1932   &                                    cd_interp, cd_extrap, cd_filter, & 
     1933   &                                    cd_unt, dd_unf) 
    18011934 
    18021935      IMPLICIT NONE 
     
    18271960      INTEGER(i4)     ,                       INTENT(IN), OPTIONAL :: id_deflvl 
    18281961      INTEGER(i4)     , DIMENSION(ip_maxdim), INTENT(IN), OPTIONAL :: id_chunksz 
     1962      CHARACTER(LEN=*), DIMENSION(2)        , INTENT(IN), OPTIONAL :: cd_interp 
     1963      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
     1964      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     1965      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     1966      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
     1967 
    18291968 
    18301969      ! local variable 
     
    18702009      &                         ld_fletcher32=ld_fletcher32,        & 
    18712010      &                         id_deflvl=id_deflvl,                & 
    1872       &                         id_chunksz=id_chunksz(:)) 
     2011      &                         id_chunksz=id_chunksz(:),           & 
     2012      &                         cd_interp=cd_interp(:),             & 
     2013      &                         cd_extrap=cd_extrap(:),             & 
     2014      &                         cd_filter=cd_filter(:),             & 
     2015      &                         cd_unt=cd_unt, dd_unf=dd_unf ) 
    18732016  
    18742017      DEALLOCATE( dl_value ) 
     
    18932036   !> @author J.Paul 
    18942037   !> - November, 2013- Initial Version 
     2038   !> @date June, 2015 
     2039   !> - add interp, extrap, and filter argument 
     2040   !> @date July, 2015 
     2041   !> - add unit factor (to change unit) 
    18952042   ! 
    18962043   !> @param[in] cd_name         : variable name 
     
    19222069   !> deflation is in use 
    19232070   !> @param[in] id_chunksz      : chunk size 
     2071   !> @param[in] cd_interp       interpolation method 
     2072   !> @param[in] cd_extrap       extrapolation method 
     2073   !> @param[in] cd_filter       filter method 
     2074   !> @param[in] cd_unt          new units (linked to units factor) 
     2075   !> @param[in] dd_unf          units factor 
    19242076   !> @return variable structure 
    19252077   !------------------------------------------------------------------- 
     
    19322084   &                                    dd_min, dd_max,           & 
    19332085   &                                    ld_contiguous, ld_shuffle,& 
    1934    &                                    ld_fletcher32, id_deflvl, id_chunksz) 
     2086   &                                    ld_fletcher32, id_deflvl, id_chunksz, & 
     2087   &                                    cd_interp, cd_extrap, cd_filter, & 
     2088   &                                    cd_unt, dd_unf) 
    19352089 
    19362090      IMPLICIT NONE 
     
    19612115      INTEGER(i4)     ,                       INTENT(IN), OPTIONAL :: id_deflvl 
    19622116      INTEGER(i4)     , DIMENSION(ip_maxdim), INTENT(IN), OPTIONAL :: id_chunksz 
     2117      CHARACTER(LEN=*), DIMENSION(2)        , INTENT(IN), OPTIONAL :: cd_interp 
     2118      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
     2119      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     2120      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     2121      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
    19632122 
    19642123      ! local variable 
     
    20062165      &                         ld_fletcher32=ld_fletcher32,        & 
    20072166      &                         id_deflvl=id_deflvl,                & 
    2008       &                         id_chunksz=id_chunksz(:)) 
     2167      &                         id_chunksz=id_chunksz(:),           & 
     2168      &                         cd_interp=cd_interp(:),             & 
     2169      &                         cd_extrap=cd_extrap(:),             & 
     2170      &                         cd_filter=cd_filter(:),             & 
     2171      &                         cd_unt=cd_unt, dd_unf=dd_unf ) 
    20092172       
    20102173      DEALLOCATE( dl_value ) 
     
    20292192   !> @author J.Paul 
    20302193   !> - November, 2013- Initial Version 
     2194   !> @date June, 2015 
     2195   !> - add interp, extrap, and filter argument 
     2196   !> @date July, 2015 
     2197   !> - add unit factor (to change unit) 
    20312198   ! 
    20322199   !> @param[in] cd_name         : variable name 
     
    20582225   !> deflation is in use 
    20592226   !> @param[in] id_chunksz      : chunk size 
     2227   !> @param[in] cd_interp       interpolation method 
     2228   !> @param[in] cd_extrap       extrapolation method 
     2229   !> @param[in] cd_filter       filter method 
     2230   !> @param[in] cd_unt          new units (linked to units factor) 
     2231   !> @param[in] dd_unf          units factor 
    20602232   !> @return variable structure 
    20612233   !------------------------------------------------------------------- 
     
    20682240   &                                    dd_min, dd_max,           & 
    20692241   &                                    ld_contiguous, ld_shuffle,& 
    2070    &                                    ld_fletcher32, id_deflvl, id_chunksz) 
     2242   &                                    ld_fletcher32, id_deflvl, id_chunksz, & 
     2243   &                                    cd_interp, cd_extrap, cd_filter, & 
     2244   &                                    cd_unt, dd_unf) 
    20712245 
    20722246      IMPLICIT NONE 
     
    20972271      INTEGER(i4)     ,                       INTENT(IN), OPTIONAL :: id_deflvl 
    20982272      INTEGER(i4)     , DIMENSION(ip_maxdim), INTENT(IN), OPTIONAL :: id_chunksz 
     2273      CHARACTER(LEN=*), DIMENSION(2)        , INTENT(IN), OPTIONAL :: cd_interp 
     2274      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
     2275      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     2276      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     2277      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
    20992278 
    21002279      ! local variable 
     
    21432322      &                         ld_fletcher32=ld_fletcher32,        & 
    21442323      &                         id_deflvl=id_deflvl,                & 
    2145       &                         id_chunksz=id_chunksz(:)) 
     2324      &                         id_chunksz=id_chunksz(:),           & 
     2325      &                         cd_interp=cd_interp(:),             & 
     2326      &                         cd_extrap=cd_extrap(:),             & 
     2327      &                         cd_filter=cd_filter(:),             & 
     2328      &                         cd_unt=cd_unt, dd_unf=dd_unf) 
    21462329       
    21472330      DEALLOCATE( dl_value ) 
     
    21662349   !> @author J.Paul 
    21672350   !> - November, 2013- Initial Version 
     2351   !> @date June, 2015 
     2352   !> - add interp, extrap, and filter argument 
     2353   !> @date July, 2015 
     2354   !> - add unit factor (to change unit) 
    21682355   ! 
    21692356   !> @param[in] cd_name         variable name 
     
    21952382   !> deflation is in use 
    21962383   !> @param[in] id_chunksz      chunk size 
     2384   !> @param[in] cd_interp       interpolation method 
     2385   !> @param[in] cd_extrap       extrapolation method 
     2386   !> @param[in] cd_filter       filter method 
     2387   !> @param[in] cd_unt          new units (linked to units factor) 
     2388   !> @param[in] dd_unf          units factor 
    21972389   !> @return variable structure 
    21982390   !------------------------------------------------------------------- 
     
    22052397   &                                 dd_min, dd_max,           & 
    22062398   &                                 ld_contiguous, ld_shuffle,& 
    2207    &                                 ld_fletcher32, id_deflvl, id_chunksz) 
     2399   &                                 ld_fletcher32, id_deflvl, id_chunksz, & 
     2400   &                                 cd_interp, cd_extrap, cd_filter, & 
     2401   &                                 cd_unt, dd_unf) 
    22082402 
    22092403      IMPLICIT NONE 
     
    22342428      INTEGER(i4)     ,                       INTENT(IN), OPTIONAL :: id_deflvl 
    22352429      INTEGER(i4)     , DIMENSION(ip_maxdim), INTENT(IN), OPTIONAL :: id_chunksz 
     2430      CHARACTER(LEN=*), DIMENSION(2)        , INTENT(IN), OPTIONAL :: cd_interp 
     2431      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
     2432      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     2433      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     2434      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
    22362435 
    22372436      ! local variable 
     
    22812480      &                      ld_fletcher32=ld_fletcher32,        & 
    22822481      &                      id_deflvl=id_deflvl,                & 
    2283       &                      id_chunksz=id_chunksz(:)) 
     2482      &                      id_chunksz=id_chunksz(:),           & 
     2483      &                      cd_interp=cd_interp(:),             & 
     2484      &                      cd_extrap=cd_extrap(:),             & 
     2485      &                      cd_filter=cd_filter(:),             & 
     2486      &                      cd_unt=cd_unt, dd_unf=dd_unf) 
    22842487       
    22852488      DEALLOCATE( dl_value ) 
     
    23042507   !> @author J.Paul 
    23052508   !> - November, 2013- Initial Version 
     2509   !> @date June, 2015 
     2510   !> - add interp, extrap, and filter argument 
     2511   !> @date July, 2015 
     2512   !> - add unit factor (to change unit) 
    23062513   ! 
    23072514   !> @param[in] cd_name         : variable name 
     
    23332540   !> deflation is in use 
    23342541   !> @param[in] id_chunksz      : chunk size 
     2542   !> @param[in] cd_interp       interpolation method 
     2543   !> @param[in] cd_extrap       extrapolation method 
     2544   !> @param[in] cd_filter       filter method 
     2545   !> @param[in] cd_unt          new units (linked to units factor) 
     2546   !> @param[in] dd_unf          units factor 
    23352547   !> @return variable structure 
    23362548   !------------------------------------------------------------------- 
     
    23432555   &                                    dd_min, dd_max,           & 
    23442556   &                                    ld_contiguous, ld_shuffle,& 
    2345    &                                    ld_fletcher32, id_deflvl, id_chunksz) 
     2557   &                                    ld_fletcher32, id_deflvl, id_chunksz, & 
     2558   &                                    cd_interp, cd_extrap, cd_filter, & 
     2559   &                                    cd_unt, dd_unf) 
    23462560 
    23472561      IMPLICIT NONE 
     
    23722586      INTEGER(i4)     ,                       INTENT(IN), OPTIONAL :: id_deflvl 
    23732587      INTEGER(i4)     , DIMENSION(ip_maxdim), INTENT(IN), OPTIONAL :: id_chunksz 
     2588      CHARACTER(LEN=*), DIMENSION(2)        , INTENT(IN), OPTIONAL :: cd_interp 
     2589      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
     2590      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     2591      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     2592      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
    23742593 
    23752594      ! local variable 
     
    24152634      &                         ld_fletcher32=ld_fletcher32,        & 
    24162635      &                         id_deflvl=id_deflvl,                & 
    2417       &                         id_chunksz=id_chunksz(:)) 
     2636      &                         id_chunksz=id_chunksz(:),           & 
     2637      &                         cd_interp=cd_interp(:),             & 
     2638      &                         cd_extrap=cd_extrap(:),             & 
     2639      &                         cd_filter=cd_filter(:),             & 
     2640      &                         cd_unt=cd_unt, dd_unf=dd_unf) 
    24182641  
    24192642      DEALLOCATE( dl_value ) 
     
    24382661   !> @author J.Paul 
    24392662   !> - November, 2013- Initial Version 
     2663   !> @date June, 2015 
     2664   !> - add interp, extrap, and filter argument 
     2665   !> @date July, 2015 
     2666   !> - add unit factor (to change unit) 
    24402667   ! 
    24412668   !> @param[in] cd_name         variable name 
     
    24652692   !> @param[in] id_deflvl       deflate level from 0 to 9, 0 indicates no deflation is in use 
    24662693   !> @param[in] id_chunksz      chunk size 
     2694   !> @param[in] cd_interp       interpolation method 
     2695   !> @param[in] cd_extrap       extrapolation method 
     2696   !> @param[in] cd_filter       filter method 
     2697   !> @param[in] cd_unt          new units (linked to units factor) 
     2698   !> @param[in] dd_unf          units factor 
    24672699   !> @return variable structure 
    24682700   !------------------------------------------------------------------- 
     
    24752707   &                                    dd_min, dd_max,           & 
    24762708   &                                    ld_contiguous, ld_shuffle,& 
    2477    &                                    ld_fletcher32, id_deflvl, id_chunksz) 
     2709   &                                    ld_fletcher32, id_deflvl, id_chunksz, & 
     2710   &                                    cd_interp, cd_extrap, cd_filter, & 
     2711   &                                    cd_unt, dd_unf) 
    24782712 
    24792713      IMPLICIT NONE 
     
    25042738      INTEGER(i4)     ,                       INTENT(IN), OPTIONAL :: id_deflvl 
    25052739      INTEGER(i4)     , DIMENSION(ip_maxdim), INTENT(IN), OPTIONAL :: id_chunksz 
     2740      CHARACTER(LEN=*), DIMENSION(2)        , INTENT(IN), OPTIONAL :: cd_interp 
     2741      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
     2742      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     2743      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     2744      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
    25062745 
    25072746      ! local variable 
     
    25492788      &                         ld_fletcher32=ld_fletcher32,        & 
    25502789      &                         id_deflvl=id_deflvl,                & 
    2551       &                         id_chunksz=id_chunksz(:)) 
     2790      &                         id_chunksz=id_chunksz(:),           & 
     2791      &                         cd_interp=cd_interp(:),             & 
     2792      &                         cd_extrap=cd_extrap(:),             & 
     2793      &                         cd_filter=cd_filter(:),             & 
     2794      &                         cd_unt=cd_unt, dd_unf=dd_unf) 
    25522795       
    25532796      DEALLOCATE( dl_value ) 
     
    25722815   !> @author J.Paul 
    25732816   !> - November, 2013- Initial Version 
     2817   !> @date June, 2015 
     2818   !> - add interp, extrap, and filter argument 
     2819   !> @date July, 2015 
     2820   !> - add unit factor (to change unit) 
    25742821   ! 
    25752822   !> @param[in] cd_name         variable name 
     
    26012848   !> deflation is in use 
    26022849   !> @param[in] id_chunksz      chunk size 
     2850   !> @param[in] cd_interp       interpolation method 
     2851   !> @param[in] cd_extrap       extrapolation method 
     2852   !> @param[in] cd_filter       filter method 
     2853   !> @param[in] cd_unt          new units (linked to units factor) 
     2854   !> @param[in] dd_unf          units factor 
    26032855   !> @return variable structure 
    26042856   !------------------------------------------------------------------- 
     
    26112863   &                                    dd_min, dd_max,           & 
    26122864   &                                    ld_contiguous, ld_shuffle,& 
    2613    &                                    ld_fletcher32, id_deflvl, id_chunksz) 
     2865   &                                    ld_fletcher32, id_deflvl, id_chunksz, & 
     2866   &                                    cd_interp, cd_extrap, cd_filter, & 
     2867   &                                    cd_unt, dd_unf) 
    26142868 
    26152869      IMPLICIT NONE 
     
    26402894      INTEGER(i4)     ,                       INTENT(IN), OPTIONAL :: id_deflvl 
    26412895      INTEGER(i4)     , DIMENSION(ip_maxdim), INTENT(IN), OPTIONAL :: id_chunksz 
     2896      CHARACTER(LEN=*), DIMENSION(2)        , INTENT(IN), OPTIONAL :: cd_interp 
     2897      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
     2898      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     2899      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     2900      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
    26422901 
    26432902      ! local variable 
     
    26862945      &                         ld_fletcher32=ld_fletcher32,        & 
    26872946      &                         id_deflvl=id_deflvl,                & 
    2688       &                         id_chunksz=id_chunksz(:)) 
     2947      &                         id_chunksz=id_chunksz(:),           & 
     2948      &                         cd_interp=cd_interp(:),             & 
     2949      &                         cd_extrap=cd_extrap(:),             & 
     2950      &                         cd_filter=cd_filter(:),             & 
     2951      &                         cd_unt=cd_unt, dd_unf=dd_unf) 
    26892952       
    26902953      DEALLOCATE( dl_value ) 
     
    27092972   !> @author J.Paul 
    27102973   !> - November, 2013- Initial Version 
     2974   !> @date June, 2015 
     2975   !> - add interp, extrap, and filter argument 
     2976   !> @date July, 2015 
     2977   !> - add unit factor (to change unit) 
    27112978   ! 
    27122979   !> @param[in] cd_name         variable name 
     
    27383005   !> deflation is in use 
    27393006   !> @param[in] id_chunksz      chunk size 
     3007   !> @param[in] cd_interp       interpolation method 
     3008   !> @param[in] cd_extrap       extrapolation method 
     3009   !> @param[in] cd_filter       filter method 
     3010   !> @param[in] cd_unt          new units (linked to units factor) 
     3011   !> @param[in] dd_unf          units factor 
    27403012   !> @return variable structure 
    27413013   !------------------------------------------------------------------- 
     
    27483020   &                                 dd_min, dd_max,           & 
    27493021   &                                 ld_contiguous, ld_shuffle,& 
    2750    &                                 ld_fletcher32, id_deflvl, id_chunksz) 
     3022   &                                 ld_fletcher32, id_deflvl, id_chunksz, & 
     3023   &                                 cd_interp, cd_extrap, cd_filter, & 
     3024   &                                 cd_unt, dd_unf) 
    27513025 
    27523026      IMPLICIT NONE 
     
    27773051      INTEGER(i4)     ,                       INTENT(IN), OPTIONAL :: id_deflvl 
    27783052      INTEGER(i4)     , DIMENSION(ip_maxdim), INTENT(IN), OPTIONAL :: id_chunksz 
     3053      CHARACTER(LEN=*), DIMENSION(2)        , INTENT(IN), OPTIONAL :: cd_interp 
     3054      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
     3055      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     3056      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     3057      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
     3058 
    27793059 
    27803060      ! local variable 
     
    28243104      &                      ld_fletcher32=ld_fletcher32,        & 
    28253105      &                      id_deflvl=id_deflvl,                & 
    2826       &                      id_chunksz=id_chunksz(:)) 
     3106      &                      id_chunksz=id_chunksz(:),           & 
     3107      &                      cd_interp=cd_interp(:),             & 
     3108      &                      cd_extrap=cd_extrap(:),             & 
     3109      &                      cd_filter=cd_filter(:),             & 
     3110      &                      cd_unt=cd_unt, dd_unf=dd_unf) 
    28273111       
    28283112      DEALLOCATE( dl_value ) 
     
    28473131   !> @author J.Paul 
    28483132   !> - November, 2013- Initial Version 
     3133   !> @date June, 2015 
     3134   !> - add interp, extrap, and filter argument 
     3135   !> @date July, 2015 
     3136   !> - add unit factor (to change unit) 
    28493137   ! 
    28503138   !> @param[in] cd_name         variable name 
     
    28763164   !> deflation is in use 
    28773165   !> @param[in] id_chunksz      chunk size 
     3166   !> @param[in] cd_interp       interpolation method 
     3167   !> @param[in] cd_extrap       extrapolation method 
     3168   !> @param[in] cd_filter       filter method 
     3169   !> @param[in] cd_unt          new units (linked to units factor) 
     3170   !> @param[in] dd_unf          units factor 
    28783171   !> @return variable structure 
    28793172   !------------------------------------------------------------------- 
     
    28863179   &                                    dd_min, dd_max,           & 
    28873180   &                                    ld_contiguous, ld_shuffle,& 
    2888    &                                    ld_fletcher32, id_deflvl, id_chunksz) 
     3181   &                                    ld_fletcher32, id_deflvl, id_chunksz, & 
     3182   &                                    cd_interp, cd_extrap, cd_filter, & 
     3183   &                                    cd_unt, dd_unf) 
    28893184 
    28903185      IMPLICIT NONE 
     
    29153210      INTEGER(i4)     ,                       INTENT(IN), OPTIONAL :: id_deflvl 
    29163211      INTEGER(i4)     , DIMENSION(ip_maxdim), INTENT(IN), OPTIONAL :: id_chunksz 
     3212      CHARACTER(LEN=*), DIMENSION(2)        , INTENT(IN), OPTIONAL :: cd_interp 
     3213      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
     3214      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     3215      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     3216      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
    29173217 
    29183218      ! local variable 
     
    29583258      &                         ld_fletcher32=ld_fletcher32,        & 
    29593259      &                         id_deflvl=id_deflvl,                & 
    2960       &                         id_chunksz=id_chunksz(:)) 
     3260      &                         id_chunksz=id_chunksz(:),           & 
     3261      &                         cd_interp=cd_interp(:),             & 
     3262      &                         cd_extrap=cd_extrap(:),             & 
     3263      &                         cd_filter=cd_filter(:),             & 
     3264      &                         cd_unt=cd_unt, dd_unf=dd_unf) 
    29613265  
    29623266      DEALLOCATE( dl_value ) 
     
    29813285   !> @author J.Paul 
    29823286   !> - November, 2013- Initial Version 
     3287   !> @date June, 2015 
     3288   !> - add interp, extrap, and filter argument 
     3289   !> @date July, 2015 
     3290   !> - add unit factor (to change unit) 
    29833291   ! 
    29843292   !> @param[in] cd_name         variable name 
     
    30103318   !> deflation is in use 
    30113319   !> @param[in] id_chunksz      chunk size 
     3320   !> @param[in] cd_interp       interpolation method 
     3321   !> @param[in] cd_extrap       extrapolation method 
     3322   !> @param[in] cd_filter       filter method 
     3323   !> @param[in] cd_unt          new units (linked to units factor) 
     3324   !> @param[in] dd_unf          units factor 
    30123325   !> @return variable structure 
    30133326   !------------------------------------------------------------------- 
     
    30203333   &                                    dd_min, dd_max,           & 
    30213334   &                                    ld_contiguous, ld_shuffle,& 
    3022    &                                    ld_fletcher32, id_deflvl, id_chunksz) 
     3335   &                                    ld_fletcher32, id_deflvl, id_chunksz, & 
     3336   &                                    cd_interp, cd_extrap, cd_filter, & 
     3337   &                                    cd_unt, dd_unf) 
    30233338 
    30243339      IMPLICIT NONE 
     
    30493364      INTEGER(i4)     ,                       INTENT(IN), OPTIONAL :: id_deflvl 
    30503365      INTEGER(i4)     , DIMENSION(ip_maxdim), INTENT(IN), OPTIONAL :: id_chunksz 
     3366      CHARACTER(LEN=*), DIMENSION(2)        , INTENT(IN), OPTIONAL :: cd_interp 
     3367      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
     3368      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     3369      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     3370      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
    30513371 
    30523372      ! local variable 
     
    30943414      &                         ld_fletcher32=ld_fletcher32,        & 
    30953415      &                         id_deflvl=id_deflvl,                & 
    3096       &                         id_chunksz=id_chunksz(:)) 
     3416      &                         id_chunksz=id_chunksz(:),           & 
     3417      &                         cd_interp=cd_interp(:),             & 
     3418      &                         cd_extrap=cd_extrap(:),             & 
     3419      &                         cd_filter=cd_filter(:),             & 
     3420      &                         cd_unt=cd_unt, dd_unf=dd_unf) 
    30973421       
    30983422      DEALLOCATE( dl_value ) 
     
    31173441   !> @author J.Paul 
    31183442   !> - November, 2013- Initial Version 
     3443   !> @date June, 2015 
     3444   !> - add interp, extrap, and filter argument 
     3445   !> @date July, 2015 
     3446   !> - add unit factor (to change unit) 
    31193447   ! 
    31203448   !> @param[in] cd_name         variable name 
     
    31463474   !> deflation is in use 
    31473475   !> @param[in] id_chunksz      chunk size 
     3476   !> @param[in] cd_interp       interpolation method 
     3477   !> @param[in] cd_extrap       extrapolation method 
     3478   !> @param[in] cd_filter       filter method 
     3479   !> @param[in] cd_unt          new units (linked to units factor) 
     3480   !> @param[in] dd_unf          units factor 
    31483481   !> @return variable structure 
    31493482   !------------------------------------------------------------------- 
     
    31563489   &                                    dd_min, dd_max,           & 
    31573490   &                                    ld_contiguous, ld_shuffle,& 
    3158    &                                    ld_fletcher32, id_deflvl, id_chunksz) 
     3491   &                                    ld_fletcher32, id_deflvl, id_chunksz, & 
     3492   &                                    cd_interp, cd_extrap, cd_filter, & 
     3493   &                                    cd_unt, dd_unf) 
    31593494 
    31603495      IMPLICIT NONE 
     
    31853520      INTEGER(i4)     ,                       INTENT(IN), OPTIONAL :: id_deflvl 
    31863521      INTEGER(i4)     , DIMENSION(ip_maxdim), INTENT(IN), OPTIONAL :: id_chunksz 
     3522      CHARACTER(LEN=*), DIMENSION(2)        , INTENT(IN), OPTIONAL :: cd_interp 
     3523      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
     3524      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     3525      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     3526      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
    31873527 
    31883528      ! local variable 
     
    32313571      &                         ld_fletcher32=ld_fletcher32,        & 
    32323572      &                         id_deflvl=id_deflvl,                & 
    3233       &                         id_chunksz=id_chunksz(:)) 
     3573      &                         id_chunksz=id_chunksz(:),           & 
     3574      &                         cd_interp=cd_interp(:),             & 
     3575      &                         cd_extrap=cd_extrap(:),             & 
     3576      &                         cd_filter=cd_filter(:),             & 
     3577      &                         cd_unt=cd_unt, dd_unf=dd_unf) 
    32343578       
    32353579      DEALLOCATE( dl_value ) 
     
    32543598   !> @author J.Paul 
    32553599   !> - November, 2013- Initial Version 
     3600   !> @date June, 2015 
     3601   !> - add interp, extrap, and filter argument 
     3602   !> @date July, 2015 
     3603   !> - add unit factor (to change unit) 
    32563604   ! 
    32573605   !> @param[in] cd_name         variable name 
     
    32833631   !> deflation is in use 
    32843632   !> @param[in] id_chunksz      chunk size 
     3633   !> @param[in] cd_interp       interpolation method 
     3634   !> @param[in] cd_extrap       extrapolation method 
     3635   !> @param[in] cd_filter       filter method 
     3636   !> @param[in] cd_unt          new units (linked to units factor) 
     3637   !> @param[in] dd_unf          units factor 
     3638 
    32853639   !> @return variable structure 
    32863640   !------------------------------------------------------------------- 
     
    32933647   &                                 dd_min, dd_max,           & 
    32943648   &                                 ld_contiguous, ld_shuffle,& 
    3295    &                                 ld_fletcher32, id_deflvl, id_chunksz) 
     3649   &                                 ld_fletcher32, id_deflvl, id_chunksz, & 
     3650   &                                 cd_interp, cd_extrap, cd_filter, & 
     3651   &                                 cd_unt, dd_unf) 
    32963652 
    32973653      IMPLICIT NONE 
     
    33223678      INTEGER(i4)     ,                       INTENT(IN), OPTIONAL :: id_deflvl 
    33233679      INTEGER(i4)     , DIMENSION(ip_maxdim), INTENT(IN), OPTIONAL :: id_chunksz 
     3680      CHARACTER(LEN=*), DIMENSION(2)        , INTENT(IN), OPTIONAL :: cd_interp 
     3681      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
     3682      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     3683      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     3684      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
    33243685 
    33253686      ! local variable 
     
    33693730      &                      ld_fletcher32=ld_fletcher32,        & 
    33703731      &                      id_deflvl=id_deflvl,                & 
    3371       &                      id_chunksz=id_chunksz(:)) 
     3732      &                      id_chunksz=id_chunksz(:),           & 
     3733      &                      cd_interp=cd_interp(:),             & 
     3734      &                      cd_extrap=cd_extrap(:),             & 
     3735      &                      cd_filter=cd_filter(:),             & 
     3736      &                      cd_unt=cd_unt, dd_unf=dd_unf) 
    33723737       
    33733738      DEALLOCATE( dl_value ) 
     
    33923757   !> @author J.Paul 
    33933758   !> - November, 2013- Initial Version 
     3759   !> @date June, 2015 
     3760   !> - add interp, extrap, and filter argument 
     3761   !> @date July, 2015 
     3762   !> - add unit factor (to change unit) 
    33943763   ! 
    33953764   !> @param[in] cd_name         variable name 
     
    34213790   !> deflation is in use 
    34223791   !> @param[in] id_chunksz      chunk size 
     3792   !> @param[in] cd_interp       interpolation method 
     3793   !> @param[in] cd_extrap       extrapolation method 
     3794   !> @param[in] cd_filter       filter method 
     3795   !> @param[in] cd_unt          new units (linked to units factor) 
     3796   !> @param[in] dd_unf          units factor 
    34233797   !> @return variable structure 
    34243798   !------------------------------------------------------------------- 
     
    34313805   &                                    dd_min, dd_max,           & 
    34323806   &                                    ld_contiguous, ld_shuffle,& 
    3433    &                                    ld_fletcher32, id_deflvl, id_chunksz) 
     3807   &                                    ld_fletcher32, id_deflvl, id_chunksz, & 
     3808   &                                    cd_interp, cd_extrap, cd_filter, & 
     3809   &                                    cd_unt, dd_unf) 
    34343810 
    34353811      IMPLICIT NONE 
     
    34603836      INTEGER(i4)     ,                       INTENT(IN), OPTIONAL :: id_deflvl 
    34613837      INTEGER(i4)     , DIMENSION(ip_maxdim), INTENT(IN), OPTIONAL :: id_chunksz 
     3838      CHARACTER(LEN=*), DIMENSION(2)        , INTENT(IN), OPTIONAL :: cd_interp 
     3839      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
     3840      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     3841      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     3842      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
     3843 
    34623844 
    34633845      ! local variable 
     
    35033885      &                         ld_fletcher32=ld_fletcher32,        & 
    35043886      &                         id_deflvl=id_deflvl,                & 
    3505       &                         id_chunksz=id_chunksz(:)) 
     3887      &                         id_chunksz=id_chunksz(:),           & 
     3888      &                         cd_interp=cd_interp(:),             & 
     3889      &                         cd_extrap=cd_extrap(:),             & 
     3890      &                         cd_filter=cd_filter(:),             & 
     3891      &                         cd_unt=cd_unt, dd_unf=dd_unf) 
    35063892  
    35073893      DEALLOCATE( dl_value ) 
     
    35263912   !> @author J.Paul 
    35273913   !> - November, 2013- Initial Version 
     3914   !> @date June, 2015 
     3915   !> - add interp, extrap, and filter argument 
     3916   !> @date July, 2015 
     3917   !> - add unit factor (to change unit) 
    35283918   ! 
    35293919   !> @param[in] cd_name         variable name 
     
    35553945   !> deflation is in use 
    35563946   !> @param[in] id_chunksz      chunk size 
     3947   !> @param[in] cd_interp       interpolation method 
     3948   !> @param[in] cd_extrap       extrapolation method 
     3949   !> @param[in] cd_filter       filter method 
     3950   !> @param[in] cd_unt          new units (linked to units factor) 
     3951   !> @param[in] dd_unf          units factor 
    35573952   !> @return variable structure 
    35583953   !------------------------------------------------------------------- 
     
    35653960   &                                    dd_min, dd_max,           & 
    35663961   &                                    ld_contiguous, ld_shuffle,& 
    3567    &                                    ld_fletcher32, id_deflvl, id_chunksz) 
     3962   &                                    ld_fletcher32, id_deflvl, id_chunksz, & 
     3963   &                                    cd_interp, cd_extrap, cd_filter, & 
     3964   &                                    cd_unt, dd_unf) 
    35683965 
    35693966      IMPLICIT NONE 
     
    35943991      INTEGER(i4)     ,                       INTENT(IN), OPTIONAL :: id_deflvl 
    35953992      INTEGER(i4)     , DIMENSION(ip_maxdim), INTENT(IN), OPTIONAL :: id_chunksz 
     3993      CHARACTER(LEN=*), DIMENSION(2)        , INTENT(IN), OPTIONAL :: cd_interp 
     3994      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
     3995      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     3996      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     3997      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
     3998 
    35963999 
    35974000      ! local variable 
     
    36394042      &                         ld_fletcher32=ld_fletcher32,        & 
    36404043      &                         id_deflvl=id_deflvl,                & 
    3641       &                         id_chunksz=id_chunksz(:)) 
     4044      &                         id_chunksz=id_chunksz(:),           & 
     4045      &                         cd_interp=cd_interp(:),             & 
     4046      &                         cd_extrap=cd_extrap(:),             & 
     4047      &                         cd_filter=cd_filter(:),             & 
     4048      &                         cd_unt=cd_unt, dd_unf=dd_unf) 
    36424049       
    36434050      DEALLOCATE( dl_value ) 
     
    36624069   !> @author J.Paul 
    36634070   !> - November, 2013- Initial Version 
     4071   !> @date June, 2015 
     4072   !> - add interp, extrap, and filter argument 
     4073   !> @date July, 2015 
     4074   !> - add unit factor (to change unit) 
    36644075   ! 
    36654076   !> @param[in] cd_name         variable name 
     
    36914102   !> deflation is in use 
    36924103   !> @param[in] id_chunksz      chunk size 
     4104   !> @param[in] cd_interp       interpolation method 
     4105   !> @param[in] cd_extrap       extrapolation method 
     4106   !> @param[in] cd_filter       filter method 
     4107   !> @param[in] cd_unt          new units (linked to units factor) 
     4108   !> @param[in] dd_unf          units factor 
    36934109   !> @return variable structure 
    36944110   !------------------------------------------------------------------- 
     
    37014117   &                                    dd_min, dd_max,           & 
    37024118   &                                    ld_contiguous, ld_shuffle,& 
    3703    &                                    ld_fletcher32, id_deflvl, id_chunksz) 
     4119   &                                    ld_fletcher32, id_deflvl, id_chunksz, & 
     4120   &                                    cd_interp, cd_extrap, cd_filter, & 
     4121   &                                    cd_unt, dd_unf) 
    37044122 
    37054123      IMPLICIT NONE 
     
    37304148      INTEGER(i4)     ,                       INTENT(IN), OPTIONAL :: id_deflvl 
    37314149      INTEGER(i4)     , DIMENSION(ip_maxdim), INTENT(IN), OPTIONAL :: id_chunksz 
     4150      CHARACTER(LEN=*), DIMENSION(2)        , INTENT(IN), OPTIONAL :: cd_interp 
     4151      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
     4152      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     4153      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     4154      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
    37324155 
    37334156      ! local variable 
     
    37764199      &                         ld_fletcher32=ld_fletcher32,        & 
    37774200      &                         id_deflvl=id_deflvl,                & 
    3778       &                         id_chunksz=id_chunksz(:)) 
     4201      &                         id_chunksz=id_chunksz(:),           & 
     4202      &                         cd_interp=cd_interp(:),             & 
     4203      &                         cd_extrap=cd_extrap(:),             & 
     4204      &                         cd_filter=cd_filter(:),             & 
     4205      &                         cd_unt=cd_unt, dd_unf=dd_unf) 
    37794206       
    37804207      DEALLOCATE( dl_value ) 
     
    37994226   !> @author J.Paul 
    38004227   !> - November, 2013- Initial Version 
     4228   !> @date June, 2015 
     4229   !> - add interp, extrap, and filter argument 
     4230   !> @date July, 2015 
     4231   !> - add unit factor (to change unit) 
    38014232   ! 
    38024233   !> @param[in] cd_name         variable name 
     
    38284259   !> deflation is in use 
    38294260   !> @param[in] id_chunksz      chunk size 
     4261   !> @param[in] cd_interp       interpolation method 
     4262   !> @param[in] cd_extrap       extrapolation method 
     4263   !> @param[in] cd_filter       filter method 
     4264   !> @param[in] cd_unt          new units (linked to units factor) 
     4265   !> @param[in] dd_unf          units factor 
    38304266   !> @return variable structure 
    38314267   !------------------------------------------------------------------- 
     
    38384274   &                                 dd_min, dd_max,           & 
    38394275   &                                 ld_contiguous, ld_shuffle,& 
    3840    &                                 ld_fletcher32, id_deflvl, id_chunksz) 
     4276   &                                 ld_fletcher32, id_deflvl, id_chunksz, & 
     4277   &                                 cd_interp, cd_extrap, cd_filter, & 
     4278   &                                 cd_unt, dd_unf) 
    38414279 
    38424280      IMPLICIT NONE 
     
    38674305      INTEGER(i4)     ,                       INTENT(IN), OPTIONAL :: id_deflvl 
    38684306      INTEGER(i4)     , DIMENSION(ip_maxdim), INTENT(IN), OPTIONAL :: id_chunksz 
     4307      CHARACTER(LEN=*), DIMENSION(2)        , INTENT(IN), OPTIONAL :: cd_interp 
     4308      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
     4309      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     4310      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     4311      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
    38694312 
    38704313      ! local variable 
     
    39144357      &                      ld_fletcher32=ld_fletcher32,        & 
    39154358      &                      id_deflvl=id_deflvl,                & 
    3916       &                      id_chunksz=id_chunksz(:)) 
     4359      &                      id_chunksz=id_chunksz(:),           & 
     4360      &                      cd_interp=cd_interp(:),             & 
     4361      &                      cd_extrap=cd_extrap(:),             & 
     4362      &                      cd_filter=cd_filter(:),             & 
     4363      &                      cd_unt=cd_unt, dd_unf=dd_unf) 
    39174364       
    39184365      DEALLOCATE( dl_value ) 
     
    39374384   !> @author J.Paul 
    39384385   !> - November, 2013- Initial Version 
     4386   !> @date June, 2015 
     4387   !> - add interp, extrap, and filter argument 
     4388   !> @date July, 2015 
     4389   !> - add unit factor (to change unit) 
    39394390   ! 
    39404391   !> @param[in] cd_name         variable name 
     
    39664417   !> deflation is in use 
    39674418   !> @param[in] id_chunksz      chunk size 
     4419   !> @param[in] cd_interp       interpolation method 
     4420   !> @param[in] cd_extrap       extrapolation method 
     4421   !> @param[in] cd_filter       filter method 
     4422   !> @param[in] cd_unt          new units (linked to units factor) 
     4423   !> @param[in] dd_unf          units factor 
    39684424   !> @return variable structure 
    39694425   !------------------------------------------------------------------- 
     
    39764432   &                                    dd_min, dd_max,           & 
    39774433   &                                    ld_contiguous, ld_shuffle,& 
    3978    &                                    ld_fletcher32, id_deflvl, id_chunksz) 
     4434   &                                    ld_fletcher32, id_deflvl, id_chunksz, & 
     4435   &                                    cd_interp, cd_extrap, cd_filter, & 
     4436   &                                    cd_unt, dd_unf) 
    39794437 
    39804438      IMPLICIT NONE 
     
    40054463      INTEGER(i4)     ,                       INTENT(IN), OPTIONAL :: id_deflvl 
    40064464      INTEGER(i4)     , DIMENSION(ip_maxdim), INTENT(IN), OPTIONAL :: id_chunksz 
     4465      CHARACTER(LEN=*), DIMENSION(2)        , INTENT(IN), OPTIONAL :: cd_interp 
     4466      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
     4467      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     4468      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     4469      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
    40074470 
    40084471      ! local variable 
     
    40484511      &                         ld_fletcher32=ld_fletcher32,        & 
    40494512      &                         id_deflvl=id_deflvl,                & 
    4050       &                         id_chunksz=id_chunksz(:)) 
     4513      &                         id_chunksz=id_chunksz(:),           & 
     4514      &                         cd_interp=cd_interp(:),             & 
     4515      &                         cd_extrap=cd_extrap(:),             & 
     4516      &                         cd_filter=cd_filter(:),             & 
     4517      &                         cd_unt=cd_unt, dd_unf=dd_unf) 
    40514518  
    40524519      DEALLOCATE( dl_value ) 
     
    40714538   !> @author J.Paul 
    40724539   !> - November, 2013- Initial Version 
     4540   !> @date June, 2015 
     4541   !> - add interp, extrap, and filter argument 
     4542   !> @date July, 2015 
     4543   !> - add unit factor (to change unit) 
    40734544   ! 
    40744545   !> @param[in] cd_name         variable name 
     
    41004571   !> deflation is in use 
    41014572   !> @param[in] id_chunksz      chunk size 
     4573   !> @param[in] cd_interp       interpolation method 
     4574   !> @param[in] cd_extrap       extrapolation method 
     4575   !> @param[in] cd_filter       filter method 
     4576   !> @param[in] cd_unt          new units (linked to units factor) 
     4577   !> @param[in] dd_unf          units factor 
    41024578   !> @return variable structure 
    41034579   !------------------------------------------------------------------- 
     
    41104586   &                                    dd_min, dd_max,           & 
    41114587   &                                    ld_contiguous, ld_shuffle,& 
    4112    &                                    ld_fletcher32, id_deflvl, id_chunksz) 
     4588   &                                    ld_fletcher32, id_deflvl, id_chunksz, & 
     4589   &                                    cd_interp, cd_extrap, cd_filter, & 
     4590   &                                    cd_unt, dd_unf) 
    41134591 
    41144592      IMPLICIT NONE 
     
    41394617      INTEGER(i4)     ,                       INTENT(IN), OPTIONAL :: id_deflvl 
    41404618      INTEGER(i4)     , DIMENSION(ip_maxdim), INTENT(IN), OPTIONAL :: id_chunksz 
     4619      CHARACTER(LEN=*), DIMENSION(2)        , INTENT(IN), OPTIONAL :: cd_interp 
     4620      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
     4621      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     4622      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     4623      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
    41414624 
    41424625      ! local variable 
     
    41844667      &                         ld_fletcher32=ld_fletcher32,        & 
    41854668      &                         id_deflvl=id_deflvl,                & 
    4186       &                         id_chunksz=id_chunksz(:)) 
     4669      &                         id_chunksz=id_chunksz(:),           & 
     4670      &                         cd_interp=cd_interp(:),             & 
     4671      &                         cd_extrap=cd_extrap(:),             & 
     4672      &                         cd_filter=cd_filter(:),             & 
     4673      &                         cd_unt=cd_unt, dd_unf=dd_unf) 
    41874674       
    41884675      DEALLOCATE( dl_value ) 
     
    42074694   !> @author J.Paul 
    42084695   !> - November, 2013- Initial Version 
     4696   !> @date June, 2015 
     4697   !> - add interp, extrap, and filter argument 
     4698   !> @date July, 2015 
     4699   !> - add unit factor (to change unit) 
    42094700   ! 
    42104701   !> @param[in] cd_name         variable name 
     
    42364727   !> deflation is in use 
    42374728   !> @param[in] id_chunksz      chunk size 
     4729   !> @param[in] cd_interp       interpolation method 
     4730   !> @param[in] cd_extrap       extrapolation method 
     4731   !> @param[in] cd_filter       filter method 
     4732   !> @param[in] cd_unt          new units (linked to units factor) 
     4733   !> @param[in] dd_unf          units factor 
    42384734   !> @return variable structure 
    42394735   !------------------------------------------------------------------- 
     
    42464742   &                                    dd_min, dd_max,           & 
    42474743   &                                    ld_contiguous, ld_shuffle,& 
    4248    &                                    ld_fletcher32, id_deflvl, id_chunksz) 
     4744   &                                    ld_fletcher32, id_deflvl, id_chunksz, & 
     4745   &                                    cd_interp, cd_extrap, cd_filter, & 
     4746   &                                    cd_unt, dd_unf) 
    42494747 
    42504748      IMPLICIT NONE 
     
    42754773      INTEGER(i4)     ,                       INTENT(IN), OPTIONAL :: id_deflvl 
    42764774      INTEGER(i4)     , DIMENSION(ip_maxdim), INTENT(IN), OPTIONAL :: id_chunksz 
     4775      CHARACTER(LEN=*), DIMENSION(2)        , INTENT(IN), OPTIONAL :: cd_interp 
     4776      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
     4777      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     4778      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     4779      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
    42774780 
    42784781      ! local variable 
     
    43214824      &                         ld_fletcher32=ld_fletcher32,        & 
    43224825      &                         id_deflvl=id_deflvl,                & 
    4323       &                         id_chunksz=id_chunksz(:)) 
     4826      &                         id_chunksz=id_chunksz(:),           & 
     4827      &                         cd_interp=cd_interp(:),             & 
     4828      &                         cd_extrap=cd_extrap(:),             & 
     4829      &                         cd_filter=cd_filter(:),             & 
     4830      &                         cd_unt=cd_unt, dd_unf=dd_unf) 
    43244831       
    43254832      DEALLOCATE( dl_value ) 
     
    43444851   !> @author J.Paul 
    43454852   !> - November, 2013- Initial Version 
     4853   !> @date June, 2015 
     4854   !> - add interp, extrap, and filter argument 
     4855   !> @date July, 2015 
     4856   !> - add unit factor (to change unit) 
    43464857   ! 
    43474858   !> @param[in] cd_name         variable name 
     
    43734884   !> deflation is in use 
    43744885   !> @param[in] id_chunksz      chunk size 
     4886   !> @param[in] cd_interp       interpolation method 
     4887   !> @param[in] cd_extrap       extrapolation method 
     4888   !> @param[in] cd_filter       filter method 
     4889   !> @param[in] cd_unt          new units (linked to units factor) 
     4890   !> @param[in] dd_unf          units factor 
    43754891   !> @return variable structure 
    43764892   !------------------------------------------------------------------- 
     
    43834899   &                                 dd_min, dd_max,           & 
    43844900   &                                 ld_contiguous, ld_shuffle,& 
    4385    &                                 ld_fletcher32, id_deflvl, id_chunksz) 
     4901   &                                 ld_fletcher32, id_deflvl, id_chunksz, & 
     4902   &                                 cd_interp, cd_extrap, cd_filter, & 
     4903   &                                 cd_unt, dd_unf) 
    43864904 
    43874905      IMPLICIT NONE 
     
    44124930      INTEGER(i4)     ,                       INTENT(IN), OPTIONAL :: id_deflvl 
    44134931      INTEGER(i4)     , DIMENSION(ip_maxdim), INTENT(IN), OPTIONAL :: id_chunksz 
     4932      CHARACTER(LEN=*), DIMENSION(2)        , INTENT(IN), OPTIONAL :: cd_interp 
     4933      CHARACTER(LEN=*), DIMENSION(1)        , INTENT(IN), OPTIONAL :: cd_extrap 
     4934      CHARACTER(LEN=*), DIMENSION(5)        , INTENT(IN), OPTIONAL :: cd_filter 
     4935      CHARACTER(LEN=*),                       INTENT(IN), OPTIONAL :: cd_unt 
     4936      REAL(dp)        ,                       INTENT(IN), OPTIONAL :: dd_unf 
    44144937 
    44154938      ! local variable 
     
    44594982      &                      ld_fletcher32=ld_fletcher32,        & 
    44604983      &                      id_deflvl=id_deflvl,                & 
    4461       &                      id_chunksz=id_chunksz(:)) 
     4984      &                      id_chunksz=id_chunksz(:),           & 
     4985      &                      cd_interp=cd_interp(:),             & 
     4986      &                      cd_extrap=cd_extrap(:),             & 
     4987      &                      cd_filter=cd_filter(:),             & 
     4988      &                      cd_unt=cd_unt, dd_unf=dd_unf) 
    44624989       
    44634990      DEALLOCATE( dl_value ) 
     
    48215348   !> @author J.Paul 
    48225349   !> - November, 2013- Initial Version 
     5350   !> @date June, 2015 - add all element of the array in the same time 
    48235351   !> 
    48245352   !> @param[inout] td_var variable structure 
     
    48335361      ! local variable 
    48345362      INTEGER(i4) :: il_natt 
     5363      INTEGER(i4) :: il_status 
     5364      INTEGER(i4) :: il_ind 
     5365      TYPE(TATT), DIMENSION(:), ALLOCATABLE :: tl_att 
    48355366 
    48365367      ! loop indices 
     
    48405371      il_natt=SIZE(td_att(:)) 
    48415372 
     5373      IF( td_var%i_natt > 0 )THEN 
     5374      ! already other attribute in variable structure 
     5375         ALLOCATE( tl_att(td_var%i_natt), stat=il_status ) 
     5376         IF(il_status /= 0 )THEN 
     5377 
     5378            CALL logger_error( & 
     5379            &  " VAR ADD ATT: not enough space to put attributes from "//& 
     5380            &  TRIM(td_var%c_name)//" in temporary attribute structure") 
     5381 
     5382         ELSE 
     5383 
     5384            ! save temporary global attribute's variable structure 
     5385            tl_att(:)=att_copy(td_var%t_att(:)) 
     5386 
     5387            CALL att_clean(td_var%t_att(:)) 
     5388            DEALLOCATE( td_var%t_att ) 
     5389            ALLOCATE( td_var%t_att(td_var%i_natt+il_natt), stat=il_status ) 
     5390            IF(il_status /= 0 )THEN 
     5391 
     5392               CALL logger_error( & 
     5393               &  " VAR ADD ATT: not enough space to put attributes "//& 
     5394               &  "in variable structure "//TRIM(td_var%c_name) ) 
     5395 
     5396            ENDIF 
     5397 
     5398            ! copy attribute in variable before 
     5399            td_var%t_att(1:td_var%i_natt)=att_copy(tl_att(:)) 
     5400 
     5401            ! clean 
     5402            CALL att_clean(tl_att(:)) 
     5403            DEALLOCATE(tl_att) 
     5404             
     5405         ENDIF 
     5406      ELSE 
     5407      ! no attribute in variable structure 
     5408         IF( ASSOCIATED(td_var%t_att) )THEN 
     5409            CALL att_clean(td_var%t_att(:)) 
     5410            DEALLOCATE(td_var%t_att) 
     5411         ENDIF 
     5412         ALLOCATE( td_var%t_att(td_var%i_natt+il_natt), stat=il_status ) 
     5413         IF(il_status /= 0 )THEN 
     5414 
     5415            CALL logger_error( & 
     5416            &  " VAR ADD ATT: not enough space to put attributes "//& 
     5417            &  "in variable structure "//TRIM(td_var%c_name) ) 
     5418 
     5419         ENDIF 
     5420      ENDIF 
     5421 
     5422      ALLOCATE( tl_att(il_natt) ) 
     5423      tl_att(:)=att_copy(td_att(:)) 
     5424 
     5425      ! check if attribute already in variable structure 
    48425426      DO ji=1,il_natt 
    4843          CALL var_add_att(td_var, td_att(ji)) 
     5427         il_ind=0 
     5428         il_ind=att_get_index( td_var%t_att(:), tl_att(ji)%c_name ) 
     5429         IF( il_ind /= 0 )THEN 
     5430            CALL logger_error( & 
     5431            &  " VAR ADD ATT: attribute "//TRIM(tl_att(ji)%c_name)//& 
     5432            &  ", already in variable "//TRIM(td_var%c_name) ) 
     5433            CALL att_clean(tl_att(ji)) 
     5434         ENDIF 
    48445435      ENDDO 
     5436 
     5437      ! add new attributes 
     5438      td_var%t_att(td_var%i_natt+1:td_var%i_natt+il_natt)=att_copy(tl_att(:)) 
     5439 
     5440      DEALLOCATE(tl_att) 
     5441 
     5442      DO ji=1,il_natt 
     5443         ! highlight some attribute 
     5444         IF( ASSOCIATED(td_var%t_att(td_var%i_natt+ji)%d_value) .OR. & 
     5445           & td_var%t_att(td_var%i_natt+ji)%c_value /= 'none' )THEN 
     5446            SELECT CASE(TRIM(td_var%t_att(td_var%i_natt+ji)%c_name)) 
     5447 
     5448               CASE("add_offset") 
     5449                  td_var%d_ofs = td_var%t_att(td_var%i_natt+ji)%d_value(1) 
     5450               CASE("scale_factor") 
     5451                  td_var%d_scf = td_var%t_att(td_var%i_natt+ji)%d_value(1) 
     5452               CASE("_FillValue") 
     5453                  td_var%d_fill = td_var%t_att(td_var%i_natt+ji)%d_value(1) 
     5454               CASE("ew_overlap") 
     5455                  td_var%i_ew = INT(td_var%t_att(td_var%i_natt+ji)%d_value(1),i4)  
     5456               CASE("standard_name") 
     5457                  td_var%c_stdname = TRIM(td_var%t_att(td_var%i_natt+ji)%c_value) 
     5458               CASE("long_name") 
     5459                  td_var%c_longname = TRIM(td_var%t_att(td_var%i_natt+ji)%c_value) 
     5460               CASE("units") 
     5461                  td_var%c_units = TRIM(td_var%t_att(td_var%i_natt+ji)%c_value) 
     5462               CASE("grid_point") 
     5463                  td_var%c_point = TRIM(td_var%t_att(td_var%i_natt+ji)%c_value) 
     5464 
     5465            END SELECT 
     5466         ENDIF 
     5467      ENDDO 
     5468 
     5469      ! update number of attribute 
     5470      td_var%i_natt=td_var%i_natt+il_natt 
     5471 
    48455472 
    48465473   END SUBROUTINE var__add_att_arr 
     
    48505477   ! 
    48515478   !> @author J.Paul 
    4852    !> - November, 2013- Initial Version 
     5479   !> - November, 2013 - Initial Version 
     5480   !> @date June, 2015 - use var__add_att_arr subroutine 
    48535481   ! 
    48545482   !> @param[inout] td_var variable structure 
     
    48625490 
    48635491      ! local variable 
    4864       INTEGER(i4) :: il_status 
    4865       INTEGER(i4) :: il_ind 
    4866       TYPE(TATT), DIMENSION(:), ALLOCATABLE :: tl_att 
     5492      TYPE(TATT), DIMENSION(1) :: tl_att 
    48675493 
    48685494      ! loop indices 
    4869       INTEGER(i4) :: ji 
    48705495      !---------------------------------------------------------------- 
    48715496 
    4872       ! check if attribute already in variable structure 
    4873       il_ind=0 
    4874       IF( ASSOCIATED(td_var%t_att) )THEN 
    4875          il_ind=att_get_index( td_var%t_att(:), td_att%c_name ) 
    4876       ENDIF 
    4877  
    4878       IF( il_ind /= 0 )THEN 
    4879  
    4880          CALL logger_error( & 
    4881          &  " VAR ADD ATT: attribute "//TRIM(td_att%c_name)//& 
    4882          &  ", already in variable "//TRIM(td_var%c_name) ) 
    4883  
    4884          DO ji=1,td_var%i_natt 
    4885             CALL logger_debug( & 
    4886             &  " VAR ADD ATT: in variable "//TRIM(td_var%t_att(ji)%c_name) ) 
    4887          ENDDO 
    4888  
    4889       ELSE 
    4890           
    4891          CALL logger_trace( & 
    4892          &  " VAR ADD ATT: add attribute "//TRIM(td_att%c_name)//& 
    4893          &  ", in variable "//TRIM(td_var%c_name) ) 
    4894  
    4895          IF( td_var%i_natt > 0 )THEN 
    4896          ! already other attribute in variable structure 
    4897             ALLOCATE( tl_att(td_var%i_natt), stat=il_status ) 
    4898             IF(il_status /= 0 )THEN 
    4899  
    4900                CALL logger_error( & 
    4901                &  " VAR ADD ATT: not enough space to put attributes from "//& 
    4902                &  TRIM(td_var%c_name)//" in temporary attribute structure") 
    4903  
    4904             ELSE 
    4905  
    4906                ! save temporary global attribute's variable structure 
    4907                tl_att(:)=att_copy(td_var%t_att(:)) 
    4908  
    4909                CALL att_clean(td_var%t_att(:)) 
    4910                DEALLOCATE( td_var%t_att ) 
    4911                ALLOCATE( td_var%t_att(td_var%i_natt+1), stat=il_status ) 
    4912                IF(il_status /= 0 )THEN 
    4913  
    4914                   CALL logger_error( & 
    4915                   &  " VAR ADD ATT: not enough space to put attributes "//& 
    4916                   &  "in variable structure "//TRIM(td_var%c_name) ) 
    4917  
    4918                ENDIF 
    4919  
    4920                ! copy attribute in variable before 
    4921                td_var%t_att(1:td_var%i_natt)=att_copy(tl_att(:)) 
    4922  
    4923                ! clean 
    4924                CALL att_clean(tl_att(:)) 
    4925                DEALLOCATE(tl_att) 
    4926                 
    4927             ENDIF 
    4928          ELSE 
    4929          ! no attribute in variable structure 
    4930             IF( ASSOCIATED(td_var%t_att) )THEN 
    4931                CALL att_clean(td_var%t_att(:)) 
    4932                DEALLOCATE(td_var%t_att) 
    4933             ENDIF 
    4934             ALLOCATE( td_var%t_att(td_var%i_natt+1), stat=il_status ) 
    4935             IF(il_status /= 0 )THEN 
    4936  
    4937                CALL logger_error( & 
    4938                &  " VAR ADD ATT: not enough space to put attributes "//& 
    4939                &  "in variable structure "//TRIM(td_var%c_name) ) 
    4940  
    4941             ENDIF 
    4942          ENDIF 
    4943          ! update number of attribute 
    4944          td_var%i_natt=td_var%i_natt+1 
    4945  
    4946          ! add new attribute 
    4947          td_var%t_att(td_var%i_natt)=att_copy(td_att) 
    4948  
    4949          !! add new attribute id 
    4950          !td_var%t_att(td_var%i_natt)%i_id=att_get_unit(td_var%t_att(:)) 
    4951  
    4952          ! highlight some attribute 
    4953          IF( ASSOCIATED(td_var%t_att(td_var%i_natt)%d_value) .OR. & 
    4954            & td_var%t_att(td_var%i_natt)%c_value /= "none" )THEN 
    4955             SELECT CASE(TRIM(td_var%t_att(td_var%i_natt)%c_name)) 
    4956  
    4957                CASE("add_offset") 
    4958                   td_var%d_ofs = td_var%t_att(td_var%i_natt)%d_value(1) 
    4959                CASE("scale_factor") 
    4960                   td_var%d_scf = td_var%t_att(td_var%i_natt)%d_value(1) 
    4961                CASE("_FillValue") 
    4962                   td_var%d_fill = td_var%t_att(td_var%i_natt)%d_value(1) 
    4963                CASE("ew_overlap") 
    4964                   td_var%i_ew = INT(td_var%t_att(td_var%i_natt)%d_value(1),i4)  
    4965                CASE("standard_name") 
    4966                   td_var%c_stdname = TRIM(td_var%t_att(td_var%i_natt)%c_value) 
    4967                CASE("long_name") 
    4968                   td_var%c_longname = TRIM(td_var%t_att(td_var%i_natt)%c_value) 
    4969                CASE("units") 
    4970                   td_var%c_units = TRIM(td_var%t_att(td_var%i_natt)%c_value) 
    4971                CASE("grid_point") 
    4972                   td_var%c_point = TRIM(td_var%t_att(td_var%i_natt)%c_value) 
    4973  
    4974             END SELECT 
    4975          ENDIF 
    4976       ENDIF 
     5497      ! copy structure in an array 
     5498      tl_att(1)=att_copy(td_att) 
     5499 
     5500      !  
     5501      CALL var_add_att( td_var, tl_att(:) ) 
    49775502 
    49785503   END SUBROUTINE var__add_att_unit 
     
    49835508   !> @author J.Paul 
    49845509   !> - November, 2013- Initial Version 
     5510   !> @date February, 2015 - define local attribute structure to avoid mistake  
     5511   !> with pointer 
    49855512   ! 
    49865513   !> @param[inout] td_var variable structure 
     
    49965523      INTEGER(i4) :: il_ind 
    49975524 
     5525      TYPE(TATT)  :: tl_att 
    49985526      ! loop indices 
    49995527      !---------------------------------------------------------------- 
     
    50075535      IF( il_ind == 0 )THEN 
    50085536 
    5009          CALL logger_warn( & 
     5537         CALL logger_debug( & 
    50105538         &  " VAR DEL ATT: no attribute "//TRIM(cd_name)//& 
    50115539         &  ", in variable "//TRIM(td_var%c_name) ) 
     
    50135541      ELSE 
    50145542          
    5015          CALL var_del_att(td_var, td_var%t_att(il_ind)) 
     5543         tl_att=att_copy(td_var%t_att(il_ind)) 
     5544         CALL var_del_att(td_var, tl_att) 
    50165545 
    50175546      ENDIF 
     
    50245553   !> @author J.Paul 
    50255554   !> - November, 2013- Initial Version 
     5555   !> @date February, 2015 - delete highlight attribute too, when attribute  
     5556   !> is deleted 
    50265557   ! 
    50275558   !> @param[inout] td_var variable structure 
     
    50405571 
    50415572      ! loop indices 
    5042       !INTEGER(i4) :: ji 
    50435573      !---------------------------------------------------------------- 
    50445574 
     
    50515581      IF( il_ind == 0 )THEN 
    50525582 
    5053          CALL logger_warn( & 
     5583         CALL logger_debug( & 
    50545584         &  " VAR DEL ATT: no attribute "//TRIM(td_att%c_name)//& 
    50555585         &  ", in variable "//TRIM(td_var%c_name) ) 
     
    51035633               td_var%t_att(1:td_var%i_natt)=att_copy(tl_att(:)) 
    51045634 
    5105                !! change attribute id 
    5106                !DO ji=1,td_var%i_natt 
    5107                !   td_var%t_att(ji)%i_id=ji 
    5108                !ENDDO 
    5109  
    51105635               ! clean 
    51115636               CALL att_clean(tl_att(:)) 
     
    51135638            ENDIF  
    51145639         ENDIF 
     5640 
     5641         ! highlight attribute 
     5642         SELECT CASE( TRIM(td_att%c_name) ) 
     5643 
     5644            CASE("add_offset") 
     5645               td_var%d_ofs = 0._dp 
     5646            CASE("scale_factor") 
     5647               td_var%d_scf = 1._dp 
     5648            CASE("_FillValue") 
     5649               td_var%d_fill = 0._dp 
     5650            CASE("ew_overlap") 
     5651               td_var%i_ew = -1  
     5652            CASE("standard_name") 
     5653               td_var%c_stdname = '' 
     5654            CASE("long_name") 
     5655               td_var%c_longname = '' 
     5656            CASE("units") 
     5657               td_var%c_units = '' 
     5658            CASE("grid_point") 
     5659               td_var%c_point = '' 
     5660 
     5661         END SELECT 
     5662 
    51155663      ENDIF 
    51165664 
     
    52115759      !---------------------------------------------------------------- 
    52125760 
    5213       IF( td_var%i_ndim <= 4 )THEN 
     5761      IF( td_var%i_ndim <= ip_maxdim )THEN 
    52145762 
    52155763         ! check if dimension already used in variable structure 
     
    52275775         ELSE 
    52285776 
    5229          ! back to unorder dimension array  
    5230          CALL dim_unorder(td_var%t_dim(:)) 
     5777            ! back to disorder dimension array  
     5778            CALL dim_disorder(td_var%t_dim(:)) 
     5779 
    52315780            ! add new dimension 
    52325781            td_var%t_dim(td_var%i_ndim+1)=dim_copy(td_dim) 
     
    52725821      !---------------------------------------------------------------- 
    52735822 
    5274       IF( td_var%i_ndim <= 4 )THEN 
     5823      IF( td_var%i_ndim <= ip_maxdim )THEN 
    52755824 
    52765825         CALL logger_trace( & 
     
    63226871   !>  
    63236872   !> @author J.Paul 
    6324    !> - November, 2013- Initial Version 
     6873   !> - November, 2013 - Initial Version 
     6874   !> @date June, 2015  
     6875   !> - new namelist format to get extra information (interpolation,...) 
    63256876   ! 
    63266877   !> @param[in] cd_file   configuration file of variable 
     
    63576908 
    63586909         il_fileid=fct_getunit() 
    6359          CALL logger_trace("VAR DEF EXTRA: open "//TRIM(cd_file)) 
    63606910         OPEN( il_fileid, FILE=TRIM(cd_file), & 
    63616911         &                FORM='FORMATTED',   & 
     
    63666916         CALL fct_err(il_status) 
    63676917         IF( il_status /= 0 )THEN 
    6368             CALL logger_error("VAR DEF EXTRA: opening file "//TRIM(cd_file)) 
     6918            CALL logger_fatal("VAR DEF EXTRA: can not open file "//& 
     6919            &                 TRIM(cd_file)) 
    63696920         ENDIF 
    63706921 
     
    63756926         DO WHILE( il_status == 0 ) 
    63766927 
    6377          ! search line do not beginning with comment character 
     6928         ! search line not beginning with comment character 
    63786929            IF( SCAN( TRIM(fct_concat(cp_com(:))) ,cl_line(1:1)) == 0 )THEN 
    63796930               il_nvar=il_nvar+1 
     
    64196970                  tg_varextra(ji)%c_axis    =TRIM(fct_split(cl_line,3)) 
    64206971                  tg_varextra(ji)%c_point   =TRIM(fct_split(cl_line,4)) 
    6421                   tg_varextra(ji)%c_stdname =TRIM(fct_split(cl_line,5)) 
    6422                   tg_varextra(ji)%c_longname=TRIM(fct_split(cl_line,6)) 
    6423  
    6424                   cl_interp=TRIM(fct_split(cl_line,7)) 
     6972 
     6973                  cl_interp='int='//TRIM(fct_split(cl_line,5)) 
    64256974                  tg_varextra(ji)%c_interp(:) = & 
    64266975                  &  var__get_interp(TRIM(tg_varextra(ji)%c_name), cl_interp) 
    64276976                  CALL logger_debug("VAR DEF EXTRA: "//& 
    64286977                  &  TRIM(tg_varextra(ji)%c_name)//& 
    6429                   &  " "//TRIM(cl_interp)) 
     6978                  &  " "//TRIM(tg_varextra(ji)%c_interp(1))) 
     6979 
     6980                  tg_varextra(ji)%c_longname=TRIM(fct_split(cl_line,6)) 
     6981                  tg_varextra(ji)%c_stdname =TRIM(fct_split(cl_line,7)) 
    64306982               ELSE 
    64316983                  ji=ji-1 
     
    64587010   !> @details  
    64597011   !> string character format must be : <br/> 
    6460    !> "varname:interp; filter; extrap; > min; < max"<br/> 
     7012   !> "varname:int=interp; flt=filter; ext=extrap; min=min; max=max"<br/> 
    64617013   !> you could specify only interpolation, filter or extrapolation method,  
    64627014   !> whatever the order. you could find more 
     
    64647016   !> \ref extrap module.<br/> 
    64657017   !> Examples:  
    6466    !> cn_varinfo='Bathymetry:2*hamming(2,3); > 10.' 
    6467    !> cn_varinfo='votemper:cubic; dist_weight; <40.' 
     7018   !> cn_varinfo='Bathymetry:flt=2*hamming(2,3); min=10.' 
     7019   !> cn_varinfo='votemper:int=cubic; ext=dist_weight; max=40.' 
     7020   !> 
     7021   !> 
     7022   !> @warning variable should be define in tg_varextra (ie in configuration 
     7023   !> file, to be able to add information from namelist 
    64687024   !> 
    64697025   !> @note If you do not specify a method which is required, default one is 
     
    64717027   !> 
    64727028   !> @author J.Paul 
    6473    !> - November, 2013- Initial Version 
     7029   !> - November, 2013 - Initial Version 
     7030   !> @date July, 2015 - get unit and unit factor (to change unit)  
    64747031   ! 
    64757032   !> @param[in] cd_varinfo   variable information from namelist 
     
    64867043      CHARACTER(LEN=lc), DIMENSION(1)              :: cl_extrap 
    64877044      CHARACTER(LEN=lc), DIMENSION(5)              :: cl_filter 
     7045      CHARACTER(LEN=lc)                            :: cl_unt 
    64887046 
    64897047      INTEGER(i4)                                  :: il_ind 
     
    64927050      REAL(dp)                                     :: dl_min 
    64937051      REAL(dp)                                     :: dl_max 
     7052      REAL(dp)                                     :: dl_unf 
    64947053 
    64957054      TYPE(TVAR)       , DIMENSION(:), ALLOCATABLE :: tl_varextra 
     
    65087067            dl_min=var__get_min(cl_name, cl_method) 
    65097068            dl_max=var__get_max(cl_name, cl_method) 
     7069            dl_unf=var__get_unf(cl_name, cl_method) 
    65107070            cl_interp(:)=var__get_interp(cl_name, cl_method) 
    65117071            cl_extrap(:)=var__get_extrap(cl_name, cl_method) 
    65127072            cl_filter(:)=var__get_filter(cl_name, cl_method) 
     7073            cl_unt=var__get_unt(cl_name, cl_method) 
     7074 
    65137075 
    65147076            il_ind=var_get_index(tg_varextra(:), TRIM(cl_name)) 
     
    65167078               IF( dl_min /= dp_fill ) tg_varextra(il_ind)%d_min=dl_min 
    65177079               IF( dl_max /= dp_fill ) tg_varextra(il_ind)%d_max=dl_max 
     7080               IF( dl_unf /= dp_fill ) tg_varextra(il_ind)%d_unf=dl_unf 
     7081               IF(cl_unt      /='') tg_varextra(il_ind)%c_unt      =cl_unt 
    65187082               IF(cl_interp(1)/='') tg_varextra(il_ind)%c_interp(:)=cl_interp(:) 
    65197083               IF(cl_extrap(1)/='') tg_varextra(il_ind)%c_extrap(:)=cl_extrap(:) 
     
    65517115               &                               cd_filter=cl_filter(:), & 
    65527116               &                               dd_min = dl_min, & 
    6553                &                               dd_max = dl_max ) 
     7117               &                               dd_max = dl_max, & 
     7118               &                               cd_unt = cl_unt, & 
     7119               &                               dd_unf = dl_unf ) 
    65547120 
    65557121            ENDIF 
    65567122 
    65577123            ji=ji+1 
    6558             CALL logger_trace( "VAR CHG EXTRA: name       "//& 
     7124            CALL logger_debug( "VAR CHG EXTRA: name       "//& 
    65597125            &                  TRIM(tg_varextra(il_ind)%c_name) ) 
    6560             CALL logger_trace( "VAR CHG EXTRA: interp     "//& 
     7126            CALL logger_debug( "VAR CHG EXTRA: interp     "//& 
    65617127            &                  TRIM(tg_varextra(il_ind)%c_interp(1)) )          
    6562             CALL logger_trace( "VAR CHG EXTRA: filter     "//& 
     7128            CALL logger_debug( "VAR CHG EXTRA: filter     "//& 
    65637129            &                  TRIM(tg_varextra(il_ind)%c_filter(1)) )          
    6564             CALL logger_trace( "VAR CHG EXTRA: extrap     "//& 
     7130            CALL logger_debug( "VAR CHG EXTRA: extrap     "//& 
    65657131            &                  TRIM(tg_varextra(il_ind)%c_extrap(1)) ) 
    65667132            IF( tg_varextra(il_ind)%d_min /= dp_fill )THEN 
    6567                CALL logger_trace( "VAR CHG EXTRA: min value  "//& 
     7133               CALL logger_debug( "VAR CHG EXTRA: min value  "//& 
    65687134               &                  TRIM(fct_str(tg_varextra(il_ind)%d_min)) ) 
    65697135            ENDIF 
    65707136            IF( tg_varextra(il_ind)%d_max /= dp_fill )THEN 
    6571                CALL logger_trace( "VAR CHG EXTRA: max value  "//& 
     7137               CALL logger_debug( "VAR CHG EXTRA: max value  "//& 
    65727138               &                  TRIM(fct_str(tg_varextra(il_ind)%d_max)) ) 
     7139            ENDIF 
     7140            IF( TRIM(tg_varextra(il_ind)%c_unt) /= '' )THEN 
     7141               CALL logger_debug( "VAR CHG EXTRA: new unit  "//& 
     7142               &                  TRIM(tg_varextra(il_ind)%c_unt) ) 
     7143            ENDIF 
     7144            IF( tg_varextra(il_ind)%d_unf /= 1. )THEN 
     7145               CALL logger_debug( "VAR CHG EXTRA: new unit factor  "//& 
     7146               &                  TRIM(fct_str(tg_varextra(il_ind)%d_unf)) ) 
    65737147            ENDIF 
    65747148         ENDDO 
     
    68087382            ENDIF 
    68097383 
    6810          CALL logger_trace("VAR GET EXTRA: name       "//TRIM(td_var%c_name)) 
    6811          CALL logger_trace("VAR GET EXTRA: stdname    "//TRIM(td_var%c_stdname)) 
    6812          CALL logger_trace("VAR GET EXTRA: longname   "//TRIM(td_var%c_longname)) 
    6813          CALL logger_trace("VAR GET EXTRA: units      "//TRIM(td_var%c_units)) 
    6814          CALL logger_trace("VAR GET EXTRA: point      "//TRIM(td_var%c_point)) 
    6815          CALL logger_trace("VAR GET EXTRA: interp     "//TRIM(td_var%c_interp(1))) 
    6816          CALL logger_trace("VAR GET EXTRA: filter     "//TRIM(td_var%c_filter(1))) 
    6817          CALL logger_trace("VAR GET EXTRA: min value  "//TRIM(fct_str(td_var%d_min))) 
    6818          CALL logger_trace("VAR GET EXTRA: max value  "//TRIM(fct_str(td_var%d_max))) 
     7384            ! unt 
     7385            IF( TRIM(td_var%c_unt) == '' .AND. & 
     7386            &   TRIM(tg_varextra(il_ind)%c_unt) /= '' )THEN 
     7387               td_var%c_unt=TRIM(tg_varextra(il_ind)%c_unt) 
     7388            ENDIF 
     7389 
     7390            ! units factor 
     7391            IF( td_var%d_unf == 1._dp .AND. & 
     7392            &   tg_varextra(il_ind)%d_unf /= 1._dp )THEN 
     7393               td_var%d_unf=tg_varextra(il_ind)%d_unf 
     7394            ENDIF 
     7395 
    68197396         ENDIF 
    68207397 
     
    68337410   !>  
    68347411   !> @details 
    6835    !> minimum value is assume to follow sign '>' 
     7412   !> minimum value is assume to follow string "min =" 
    68367413   !> 
    68377414   !> @author J.Paul 
    6838    !> - November, 2013- Initial Version 
     7415   !> - November, 2013 - Initial Version 
     7416   !> @date June, 2015 - change way to get information in namelist,  
     7417   !> value follows string "min =" 
    68397418   ! 
    68407419   !> @param[in] cd_name      variable name 
     
    68677446      cl_tmp=fct_split(cd_varinfo,ji,';') 
    68687447      DO WHILE( TRIM(cl_tmp) /= '' ) 
    6869          il_ind=SCAN(TRIM(cl_tmp),'>') 
     7448         il_ind=INDEX(TRIM(cl_tmp),'min') 
    68707449         IF( il_ind /= 0 )THEN 
    6871             cl_min=TRIM(ADJUSTL(cl_tmp(il_ind+1:))) 
     7450            cl_min=fct_split(cl_tmp,2,'=') 
    68727451            EXIT 
    68737452         ENDIF 
     
    68777456 
    68787457      IF( TRIM(cl_min) /= '' )THEN 
    6879          IF( fct_is_num(cl_min) )THEN 
     7458         IF( fct_is_real(cl_min) )THEN 
    68807459            READ(cl_min,*) var__get_min 
    68817460            CALL logger_debug("VAR GET MIN: will use minimum value of "//& 
     
    68947473   !>  
    68957474   !> @details 
    6896    !> maximum value is assume to follow sign '<' 
     7475   !> maximum value is assume to follow string "max =" 
    68977476   !> 
    68987477   !> @author J.Paul 
    6899    !> - November, 2013- Initial Version 
     7478   !> - November, 2013 - Initial Version 
     7479   !> @date June, 2015 - change way to get information in namelist,  
     7480   !> value follows string "max =" 
    69007481   ! 
    69017482   !> @param[in] cd_name      variable name 
     
    69287509      cl_tmp=fct_split(cd_varinfo,ji,';') 
    69297510      DO WHILE( TRIM(cl_tmp) /= '' ) 
    6930          il_ind=SCAN(TRIM(cl_tmp),'<') 
     7511         il_ind=INDEX(TRIM(cl_tmp),'max') 
    69317512         IF( il_ind /= 0 )THEN 
    6932             cl_max=TRIM(ADJUSTL(cl_tmp(il_ind+1:))) 
     7513            cl_max=fct_split(cl_tmp,2,'=') 
    69337514            EXIT 
    69347515         ENDIF 
     
    69387519 
    69397520      IF( TRIM(cl_max) /= '' )THEN 
    6940          IF( fct_is_num(cl_max) )THEN 
     7521         IF( fct_is_real(cl_max) )THEN 
    69417522            READ(cl_max,*) var__get_max 
    69427523            CALL logger_debug("VAR GET MAX: will use maximum value of "//& 
     
    69527533   !> @brief 
    69537534   !> This function check if variable information read in namelist contains  
     7535   !> units factor value and return it if true.  
     7536   !>  
     7537   !> @details 
     7538   !> units factor value is assume to follow string "unf =" 
     7539   !> 
     7540   !> @author J.Paul 
     7541   !> - June, 2015- Initial Version 
     7542   ! 
     7543   !> @param[in] cd_name      variable name 
     7544   !> @param[in] cd_varinfo   variable information read in namelist  
     7545   !> @return untis factor value to be used (FillValue if none) 
     7546   !------------------------------------------------------------------- 
     7547   FUNCTION var__get_unf( cd_name, cd_varinfo ) 
     7548      IMPLICIT NONE 
     7549      ! Argument 
     7550      CHARACTER(LEN=*), INTENT(IN   ) :: cd_name 
     7551      CHARACTER(LEN=*), INTENT(IN   ) :: cd_varinfo 
     7552 
     7553      ! function 
     7554      REAL(dp) :: var__get_unf 
     7555 
     7556      ! local variable 
     7557      CHARACTER(LEN=lc) :: cl_tmp 
     7558      CHARACTER(LEN=lc) :: cl_unf 
     7559       
     7560      INTEGER(i4)       :: il_ind 
     7561 
     7562      REAL(dp)          :: rl_unf 
     7563 
     7564      ! loop indices 
     7565      INTEGER(i4) :: ji 
     7566      !---------------------------------------------------------------- 
     7567      ! init 
     7568      cl_unf='' 
     7569      var__get_unf=dp_fill 
     7570 
     7571      ji=1 
     7572      cl_tmp=fct_split(cd_varinfo,ji,';') 
     7573      DO WHILE( TRIM(cl_tmp) /= '' ) 
     7574         il_ind=INDEX(TRIM(cl_tmp),'unf') 
     7575         IF( il_ind /= 0 )THEN 
     7576            cl_unf=fct_split(cl_tmp,2,'=') 
     7577            EXIT 
     7578         ENDIF 
     7579         ji=ji+1 
     7580         cl_tmp=fct_split(cd_varinfo,ji,';')          
     7581      ENDDO 
     7582 
     7583      IF( TRIM(cl_unf) /= '' )THEN 
     7584         rl_unf=math_compute(cl_unf) 
     7585         IF( rl_unf /= dp_fill )THEN 
     7586            var__get_unf = rl_unf 
     7587            CALL logger_debug("VAR GET UNITS FACTOR: will use units factor "//& 
     7588               &  "value of "//TRIM(fct_str(var__get_unf))//" for variable "//& 
     7589               &   TRIM(cd_name) ) 
     7590         ELSE 
     7591            CALL logger_error("VAR GET UNITS FACTOR: invalid units factor "//& 
     7592               &  "value for variable "//TRIM(cd_name)//". check namelist." ) 
     7593         ENDIF 
     7594      ENDIF 
     7595 
     7596   END FUNCTION var__get_unf 
     7597   !------------------------------------------------------------------- 
     7598   !> @brief 
     7599   !> This function check if variable information read in namelist contains  
    69547600   !> interpolation method and return it if true.  
    69557601   !>  
    69567602   !> @details  
    6957    !> split namelist information, using ';' as separator. 
     7603   !> interpolation method is assume to follow string "int =" 
     7604   !> 
    69587605   !> compare method name with the list of interpolation method available (see 
    69597606   !> module global). 
    69607607   !> check if factor (*rhoi, /rhoj..) are present.<br/> 
    69617608   !> Example:<br/>  
    6962    !> - cubic/rhoi ; dist_weight 
    6963    !> - bilin 
     7609   !> - int=cubic/rhoi ; ext=dist_weight 
     7610   !> - int=bilin 
    69647611   !> see @ref interp module for more information. 
    69657612   !> 
    69667613   !> @author J.Paul 
    6967    !> - November, 2013- Initial Version 
     7614   !> - November, 2013 - Initial Version 
     7615   !> @date June, 2015 - change way to get information in namelist,  
     7616   !> value follows string "int =" 
    69687617   ! 
    69697618   !> @param[in] cd_name      variable name 
     
    69827631      ! local variable 
    69837632      CHARACTER(LEN=lc) :: cl_tmp 
     7633      CHARACTER(LEN=lc) :: cl_int 
    69847634      CHARACTER(LEN=lc) :: cl_factor 
    69857635       
     
    70007650      cl_tmp=fct_split(cd_varinfo,ji,';') 
    70017651      DO WHILE( TRIM(cl_tmp) /= '' ) 
     7652         il_ind=INDEX(TRIM(cl_tmp),'int') 
     7653         IF( il_ind /= 0 )THEN 
     7654            cl_int=fct_split(cl_tmp,2,'=') 
     7655            EXIT 
     7656         ENDIF 
     7657         ji=ji+1 
     7658         cl_tmp=fct_split(cd_varinfo,ji,';')          
     7659      ENDDO 
     7660 
     7661      IF( TRIM(cl_int) /= '' )THEN 
    70027662         DO jj=1,ip_ninterp 
    7003             il_ind= INDEX(fct_lower(cl_tmp),TRIM(cp_interp_list(jj))) 
     7663            il_ind= INDEX(fct_lower(cl_int),TRIM(cp_interp_list(jj))) 
    70047664            IF( il_ind /= 0 )THEN 
    70057665 
     
    70097669               ! look for factor 
    70107670               IF( il_ind==1 )THEN 
    7011                   cl_factor=cl_tmp(il_len+1:) 
     7671                  cl_factor=cl_int(il_len+1:) 
    70127672               ELSE 
    7013                   cl_factor=cl_tmp(1:il_ind-1) 
     7673                  cl_factor=cl_int(1:il_ind-1) 
    70147674               ENDIF 
    70157675               il_mul=SCAN(TRIM(cl_factor),'*') 
     
    70527712            ENDIF 
    70537713         ENDDO 
    7054          IF( jj /= ip_ninterp + 1 ) EXIT 
    7055          ji=ji+1 
    7056          cl_tmp=fct_split(cd_varinfo,ji,';')          
    7057       ENDDO 
     7714      ENDIF 
    70587715 
    70597716   END FUNCTION var__get_interp 
     
    70647721   !>  
    70657722   !> @details  
    7066    !> split namelist information, using ';' as separator. 
     7723   !> extrapolation method is assume to follow string "ext =" 
     7724   !>  
    70677725   !> compare method name with the list of extrapolation method available (see 
    70687726   !> module global).<br/> 
    70697727   !> Example:<br/> 
    7070    !> - cubic ; dist_weight 
    7071    !> - min_error 
     7728   !> - int=cubic ; ext=dist_weight 
     7729   !> - ext=min_error 
    70727730   !> see @ref extrap module for more information. 
    70737731   !> 
    70747732   !> @author J.Paul 
    7075    !> - November, 2013- Initial Version 
     7733   !> - November, 2013 - Initial Version 
     7734   !> @date June, 2015 - change way to get information in namelist,  
     7735   !> value follows string "ext =" 
    70767736   ! 
    70777737   !> @param[in] cd_name      variable name 
     
    70907750      ! local variable 
    70917751      CHARACTER(LEN=lc) :: cl_tmp 
     7752      CHARACTER(LEN=lc) :: cl_ext 
     7753 
     7754      INTEGER(i4)       :: il_ind 
    70927755 
    70937756      ! loop indices 
     
    71017764      cl_tmp=fct_split(cd_varinfo,ji,';') 
    71027765      DO WHILE( TRIM(cl_tmp) /= '' ) 
     7766         il_ind=INDEX(TRIM(cl_tmp),'ext') 
     7767         IF( il_ind /= 0 )THEN 
     7768            cl_ext=fct_split(cl_tmp,2,'=') 
     7769            EXIT 
     7770         ENDIF 
     7771         ji=ji+1 
     7772         cl_tmp=fct_split(cd_varinfo,ji,';')          
     7773      ENDDO 
     7774 
     7775      IF( TRIM(cl_ext) /= '' )THEN 
    71037776         DO jj=1,ip_nextrap 
    7104             IF( TRIM(fct_lower(cl_tmp)) == TRIM(cp_extrap_list(jj)) )THEN 
     7777            IF( TRIM(fct_lower(cl_ext)) == TRIM(cp_extrap_list(jj)) )THEN 
    71057778               var__get_extrap(1)=TRIM(cp_extrap_list(jj)) 
    71067779 
     
    71117784            ENDIF 
    71127785         ENDDO 
    7113          IF( jj /= ip_nextrap + 1 ) EXIT 
    7114          ji=ji+1 
    7115          cl_tmp=fct_split(cd_varinfo,ji,';')          
    7116       ENDDO 
     7786      ENDIF 
    71177787 
    71187788 
     
    71247794   !>  
    71257795   !> @details  
    7126    !> split namelist information, using ';' as separator. 
     7796   !> filter method is assume to follow string "flt =" 
     7797   !> 
    71277798   !> compare method name with the list of filter method available (see 
    71287799   !> module global). 
    7129    !> look for the number of turn, using '*' separator, and method parameters inside 
     7800   !> look for the number of run, using '*' separator, and method parameters inside 
    71307801   !> bracket.<br/> 
    71317802   !> Example:<br/> 
    7132    !> - cubic ; 2*hamming(2,3) 
    7133    !> - hann 
     7803   !> - int=cubic ; flt=2*hamming(2,3) 
     7804   !> - flt=hann 
    71347805   !> see @ref filter module for more information. 
    71357806   !> 
    71367807   !> @author J.Paul 
    7137    !> - November, 2013- Initial Version 
    7138    ! 
     7808   !> - November, 2013 - Initial Version 
     7809   !> @date June, 2015 - change way to get information in namelist,  
     7810   !> value follows string "flt =" 
     7811   !> 
    71397812   !> @param[in] cd_name      variable name 
    71407813   !> @param[in] cd_varinfo   variable information read in namelist  
     
    71517824      ! local variable 
    71527825      CHARACTER(LEN=lc) :: cl_tmp 
     7826      CHARACTER(LEN=lc) :: cl_flt 
    71537827      INTEGER(i4)       :: il_ind 
    71547828 
     
    71637837      cl_tmp=fct_split(cd_varinfo,ji,';') 
    71647838      DO WHILE( TRIM(cl_tmp) /= '' ) 
     7839         il_ind=INDEX(TRIM(cl_tmp),'flt') 
     7840         IF( il_ind /= 0 )THEN 
     7841            cl_flt=fct_split(cl_tmp,2,'=') 
     7842            EXIT 
     7843         ENDIF 
     7844         ji=ji+1 
     7845         cl_tmp=fct_split(cd_varinfo,ji,';')          
     7846      ENDDO 
     7847       
     7848      IF( TRIM(cl_flt) /= '' )THEN 
    71657849         DO jj=1,ip_nfilter 
    7166             il_ind=INDEX(fct_lower(cl_tmp),TRIM(cp_filter_list(jj))) 
     7850            il_ind=INDEX(fct_lower(cl_flt),TRIM(cp_filter_list(jj))) 
    71677851            IF( il_ind /= 0 )THEN 
    71687852               var__get_filter(1)=TRIM(cp_filter_list(jj)) 
    71697853 
    7170                ! look for number of turn 
    7171                il_ind=SCAN(fct_lower(cl_tmp),'*') 
     7854               ! look for number of run 
     7855               il_ind=SCAN(fct_lower(cl_flt),'*') 
    71727856               IF( il_ind /=0 )THEN 
    7173                   IF( fct_is_num(cl_tmp(1:il_ind-1)) )THEN 
    7174                      var__get_filter(2)=TRIM(cl_tmp(1:il_ind-1)) 
    7175                   ELSE IF( fct_is_num(cl_tmp(il_ind+1:)) )THEN 
    7176                      var__get_filter(2)=TRIM(cl_tmp(il_ind+1:)) 
     7857                  IF( fct_is_num(cl_flt(1:il_ind-1)) )THEN 
     7858                     var__get_filter(2)=TRIM(cl_flt(1:il_ind-1)) 
     7859                  ELSE IF( fct_is_num(cl_flt(il_ind+1:)) )THEN 
     7860                     var__get_filter(2)=TRIM(cl_flt(il_ind+1:)) 
    71777861                  ELSE 
    71787862                     var__get_filter(2)='1' 
     
    71837867 
    71847868               ! look for filter parameter 
    7185                il_ind=SCAN(fct_lower(cl_tmp),'(') 
     7869               il_ind=SCAN(fct_lower(cl_flt),'(') 
    71867870               IF( il_ind /=0 )THEN 
    7187                   cl_tmp=TRIM(cl_tmp(il_ind+1:)) 
    7188                   il_ind=SCAN(fct_lower(cl_tmp),')') 
     7871                  cl_flt=TRIM(cl_flt(il_ind+1:)) 
     7872                  il_ind=SCAN(fct_lower(cl_flt),')') 
    71897873                  IF( il_ind /=0 )THEN 
    7190                      cl_tmp=TRIM(cl_tmp(1:il_ind-1)) 
     7874                     cl_flt=TRIM(cl_flt(1:il_ind-1)) 
    71917875                     ! look for cut-off frequency 
    7192                      var__get_filter(3)=fct_split(cl_tmp,1,',') 
     7876                     var__get_filter(3)=fct_split(cl_flt,1,',') 
    71937877                     ! look for halo size 
    7194                      var__get_filter(4)=fct_split(cl_tmp,2,',') 
     7878                     var__get_filter(4)=fct_split(cl_flt,2,',') 
    71957879                     ! look for alpha parameter 
    7196                      var__get_filter(5)=fct_split(cl_tmp,3,',') 
     7880                     var__get_filter(5)=fct_split(cl_flt,3,',') 
    71977881                  ELSE 
    71987882                     CALL logger_error("VAR GET FILTER: variable "//& 
     
    72157899            ENDIF 
    72167900         ENDDO 
    7217          IF( jj /= ip_nfilter + 1 ) EXIT 
     7901      ENDIF 
     7902 
     7903   END FUNCTION var__get_filter 
     7904   !------------------------------------------------------------------- 
     7905   !> @brief 
     7906   !> This function check if variable information read in namelist contains  
     7907   !> unit and return it if true.  
     7908   !>  
     7909   !> @details  
     7910   !> unit is assume to follow string "unt =" 
     7911   !> 
     7912   !> @author J.Paul 
     7913   !> - June, 2015- Initial Version 
     7914   ! 
     7915   !> @param[in] cd_name      variable name 
     7916   !> @param[in] cd_varinfo   variable information read in namelist 
     7917   !> @return unit string character  
     7918   !------------------------------------------------------------------- 
     7919   FUNCTION var__get_unt( cd_name, cd_varinfo ) 
     7920      IMPLICIT NONE 
     7921      ! Argument 
     7922      CHARACTER(LEN=*), INTENT(IN   ) :: cd_name 
     7923      CHARACTER(LEN=*), INTENT(IN   ) :: cd_varinfo 
     7924 
     7925      ! function 
     7926      CHARACTER(LEN=lc)               :: var__get_unt 
     7927 
     7928      ! local variable 
     7929      CHARACTER(LEN=lc) :: cl_tmp 
     7930       
     7931      INTEGER(i4)       :: il_ind 
     7932 
     7933      ! loop indices 
     7934      INTEGER(i4) :: ji 
     7935      !---------------------------------------------------------------- 
     7936 
     7937      var__get_unt='' 
     7938 
     7939      ji=1 
     7940      cl_tmp=fct_split(cd_varinfo,ji,';') 
     7941      DO WHILE( TRIM(cl_tmp) /= '' ) 
     7942         il_ind=INDEX(TRIM(cl_tmp),'unt') 
     7943         IF( il_ind /= 0 )THEN 
     7944            var__get_unt=fct_split(cl_tmp,2,'=') 
     7945            EXIT 
     7946         ENDIF 
    72187947         ji=ji+1 
    72197948         cl_tmp=fct_split(cd_varinfo,ji,';')          
    72207949      ENDDO 
    72217950 
    7222    END FUNCTION var__get_filter 
     7951      IF( TRIM(var__get_unt) /= '' )THEN 
     7952         CALL logger_debug("VAR GET UNIT: will use units "//& 
     7953            &  TRIM(var__get_unt)//" for variable "//& 
     7954            &  TRIM(cd_name) ) 
     7955      ENDIF 
     7956 
     7957   END FUNCTION var__get_unt 
    72237958   !------------------------------------------------------------------- 
    72247959   !> @brief  
     
    73198054 
    73208055   END SUBROUTINE var_limit_value 
     8056   !------------------------------------------------------------------- 
     8057   !> @brief 
     8058   !> This subroutine replace unit name of the variable, 
     8059   !> and apply unit factor to the value of this variable. 
     8060   !>  
     8061   !> @details 
     8062   !> new unit name (unt) and unit factor (unf) are read from the namelist. 
     8063   !> 
     8064   !> @note the variable value should be already read. 
     8065   !> 
     8066   !> @author J.Paul 
     8067   !> - June, 2015- Initial Version 
     8068   ! 
     8069   !> @param[inout] td_var variable structure 
     8070   !------------------------------------------------------------------- 
     8071   SUBROUTINE var_chg_unit( td_var ) 
     8072      IMPLICIT NONE 
     8073      ! Argument 
     8074      TYPE(TVAR), INTENT(INOUT) :: td_var 
     8075 
     8076      ! local variable 
     8077      TYPE(TATT)                :: tl_att 
     8078 
     8079      ! loop indices 
     8080      !---------------------------------------------------------------- 
     8081 
     8082      IF( ASSOCIATED(td_var%d_value) )THEN 
     8083         !- change value 
     8084         IF( td_var%d_unf /= 1._dp )THEN 
     8085            WHERE( td_var%d_value(:,:,:,:) /= td_var%d_fill ) 
     8086               td_var%d_value(:,:,:,:)=td_var%d_value(:,:,:,:)*td_var%d_unf 
     8087            END WHERE 
     8088 
     8089            !- change scale factor and offset to avoid mistake 
     8090            tl_att=att_init('scale_factor',1) 
     8091            CALL var_move_att(td_var, tl_att) 
     8092 
     8093            tl_att=att_init('add_offset',0) 
     8094            CALL var_move_att(td_var, tl_att) 
     8095         ENDIF 
     8096 
     8097         !- change unit name  
     8098         IF( TRIM(td_var%c_unt) /= TRIM(td_var%c_units) .AND. & 
     8099         &   TRIM(td_var%c_unt) /= '' )THEN 
     8100            tl_att=att_init('units',TRIM(td_var%c_unt)) 
     8101            CALL var_move_att(td_var,tl_att) 
     8102         ENDIF 
     8103 
     8104      ENDIF 
     8105 
     8106   END SUBROUTINE var_chg_unit 
    73218107   !------------------------------------------------------------------- 
    73228108   !> @brief 
     
    74148200   !>  
    74158201   !> @author J.Paul 
    7416    !> - August, 2014- Initial Version 
     8202   !> - August, 2014 - Initial Version 
     8203   !> @date July 2015 - do not use dim_disorder anymore 
    74178204   ! 
    74188205   !> @param[inout] td_var       variable structure 
     
    74388225      IF( PRESENT(cd_dimorder) ) cl_dimorder=TRIM(ADJUSTL(cd_dimorder)) 
    74398226 
     8227      CALL logger_debug("VAR REORDER: work on "//TRIM(td_var%c_name)//& 
     8228         &  " new dimension order "//TRIM(cl_dimorder)) 
     8229 
    74408230      tl_dim(:)=dim_copy(td_var%t_dim(:)) 
    74418231 
    7442       CALL dim_unorder(tl_dim(:)) 
    74438232      CALL dim_reorder(tl_dim(:),TRIM(cl_dimorder)) 
    74448233 
Note: See TracChangeset for help on using the changeset viewer.