Changeset 886 for IOIPSL/trunk


Ignore:
Timestamp:
02/08/10 10:47:55 (15 years ago)
Author:
bellier
Message:

added optional argument fillvalue to fliodefv
for external Netcdf _FillValue attribute

File:
1 edited

Legend:

Unmodified
Added
Removed
  • IOIPSL/trunk/src/fliocom.f90

    r881 r886  
    205205!! SUBROUTINE fliodefv & 
    206206!! & (f_i,v_n,[v_d],v_t, & 
    207 !! &  axis,standard_name,long_name,units,valid_min,valid_max) 
     207!! &  axis,standard_name,long_name,units, & 
     208!! &  valid_min,valid_max,fillvalue) 
    208209!! 
    209210!! INPUT 
     
    227228!! (C) axis,standard_name,long_name,units : Attributes 
    228229!!     (axis should be used only for coordinates) 
    229 !! (R) valid_min,valid_max : Attributes 
     230!! (R) valid_min,valid_max,fillvalue : Attributes 
    230231!!-------------------------------------------------------------------- 
    231232  MODULE PROCEDURE & 
     
    12871288SUBROUTINE fliodv_r0d & 
    12881289 & (f_i,v_n,v_t, & 
    1289  &  axis,standard_name,long_name,units,valid_min,valid_max) 
     1290 &  axis,standard_name,long_name,units,valid_min,valid_max,fillvalue) 
    12901291!--------------------------------------------------------------------- 
    12911292  IMPLICIT NONE 
     
    12961297  CHARACTER(LEN=*),OPTIONAL,INTENT(IN) :: & 
    12971298 & axis,standard_name,long_name,units 
    1298   REAL,OPTIONAL,INTENT(IN) :: valid_min,valid_max 
     1299  REAL,OPTIONAL,INTENT(IN) :: valid_min,valid_max,fillvalue 
    12991300!--------------------------------------------------------------------- 
    13001301  CALL flio_udv & 
    13011302 &  (f_i,0,v_n,(/0/),v_t, & 
    1302  &   axis,standard_name,long_name,units,valid_min,valid_max) 
     1303 &   axis,standard_name,long_name,units,valid_min,valid_max,fillvalue) 
    13031304!------------------------ 
    13041305END SUBROUTINE fliodv_r0d 
     
    13061307SUBROUTINE fliodv_rnd & 
    13071308 & (f_i,v_n,v_d,v_t, & 
    1308  &  axis,standard_name,long_name,units,valid_min,valid_max) 
     1309 &  axis,standard_name,long_name,units,valid_min,valid_max,fillvalue) 
    13091310!--------------------------------------------------------------------- 
    13101311  IMPLICIT NONE 
     
    13161317  CHARACTER(LEN=*),OPTIONAL,INTENT(IN) :: & 
    13171318 & axis,standard_name,long_name,units 
    1318   REAL,OPTIONAL,INTENT(IN) :: valid_min,valid_max 
     1319  REAL,OPTIONAL,INTENT(IN) :: valid_min,valid_max,fillvalue 
    13191320!--------------------------------------------------------------------- 
    13201321  CALL flio_udv & 
    13211322 &  (f_i,SIZE(v_d),v_n,v_d,v_t, & 
    1322  &   axis,standard_name,long_name,units,valid_min,valid_max) 
     1323 &   axis,standard_name,long_name,units,valid_min,valid_max,fillvalue) 
    13231324!------------------------ 
    13241325END SUBROUTINE fliodv_rnd 
     
    13261327SUBROUTINE flio_udv & 
    13271328 & (f_i,n_d,v_n,v_d,v_t, & 
    1328  &  axis,standard_name,long_name,units,valid_min,valid_max) 
     1329 &  axis,standard_name,long_name,units,valid_min,valid_max,fillvalue) 
    13291330!--------------------------------------------------------------------- 
    13301331  IMPLICIT NONE 
     
    13361337  CHARACTER(LEN=*),OPTIONAL,INTENT(IN) :: & 
    13371338 & axis,standard_name,long_name,units 
    1338   REAL,OPTIONAL,INTENT(IN) :: valid_min,valid_max 
     1339  REAL,OPTIONAL,INTENT(IN) :: valid_min,valid_max,fillvalue 
    13391340!- 
    13401341  INTEGER :: f_e,m_k,i_v,i_rc,ii,idd 
     
    14601461        CALL ipslerr (2,'fliodefv', & 
    14611462   &      'Variable '//TRIM(v_n),'attribute valid_max', & 
     1463   &      'not supported for this external type') 
     1464      END SELECT 
     1465    ENDIF 
     1466    IF (PRESENT(fillvalue)) THEN 
     1467      SELECT CASE (m_k) 
     1468      CASE(flio_i1,flio_i2) 
     1469        i_rc = NF90_PUT_ATT(f_e,i_v,'_FillValue',NINT(fillvalue,KIND=i_2)) 
     1470      CASE(flio_i4) 
     1471        i_rc = NF90_PUT_ATT(f_e,i_v,'_FillValue',NINT(fillvalue,KIND=i_4)) 
     1472      CASE(flio_r4) 
     1473        i_rc = NF90_PUT_ATT(f_e,i_v,'_FillValue',REAL(fillvalue,KIND=r_4)) 
     1474      CASE(flio_r8) 
     1475        i_rc = NF90_PUT_ATT(f_e,i_v,'_FillValue',REAL(fillvalue,KIND=r_8)) 
     1476      CASE DEFAULT 
     1477        CALL ipslerr (2,'fliodefv', & 
     1478   &      'Variable '//TRIM(v_n),'attribute fillvalue', & 
    14621479   &      'not supported for this external type') 
    14631480      END SELECT 
Note: See TracChangeset for help on using the changeset viewer.