7 KFILE_ID, HNAME, HLONG_NAME, KDIM_ID, HATT_TITLE, HATT_TEXT,&
8 KVAR_ID, KTYPE, KLEN, HATT_TITLE2, PATT_FLOAT,&
9 HATT_TITLE3, PATT_FLOAT2D)
29 CHARACTER(LEN=*),
DIMENSION(:),
INTENT(IN) :: HSELECT
31 INTEGER,
INTENT(IN) :: KFILE_ID
32 CHARACTER(LEN=*),
INTENT(IN) :: HNAME
33 CHARACTER(LEN=*),
INTENT(IN) :: HLONG_NAME
34 INTEGER,
DIMENSION(:),
INTENT(IN) :: KDIM_ID
35 CHARACTER(LEN=*),
DIMENSION(:),
OPTIONAL,
INTENT(IN) :: HATT_TITLE,HATT_TEXT
36 INTEGER,
OPTIONAL,
INTENT(OUT) :: KVAR_ID
37 INTEGER,
OPTIONAL,
INTENT(IN) :: KTYPE
38 INTEGER,
OPTIONAL,
INTENT(IN) :: KLEN
39 CHARACTER(LEN=*),
DIMENSION(:),
OPTIONAL,
INTENT(IN) :: HATT_TITLE2
40 REAL,
DIMENSION(:),
OPTIONAL,
INTENT(IN) :: PATT_FLOAT
41 CHARACTER(LEN=*),
DIMENSION(:),
OPTIONAL,
INTENT(IN) :: HATT_TITLE3
42 REAL,
DIMENSION(:,:),
OPTIONAL,
INTENT(IN) :: PATT_FLOAT2D
46 CHARACTER(LEN=100) :: YNAME
47 CHARACTER(LEN=50) :: YPAS
48 INTEGER,
DIMENSION(4) :: IRET
49 INTEGER :: JRET,IVAR_ID,IATT,JATT,ILEN,INDIM
50 INTEGER :: IFIELD,JFIELD,ISIZE
51 LOGICAL :: NOWRITE, GOPENED, GEXIST
52 REAL(KIND=JPRB) :: ZHOOK_HANDLE
58 IF ( hname/=
'xx' .AND. hname/=
'yy' .AND. hname/=
'lon' .AND. &
59 hname/=
'lat' .AND. hname/=
'time' .AND. hname/=
'Projection_Type' .AND.
60 'longitude' .AND. hname/=
'latitude' .AND.
SIZE(hselect)>0 )
THEN 61 ifield=
count(hselect /=
' ')
64 IF ( trim(hselect(jfield))==trim(hname) )
THEN 68 IF ( nowrite .AND.
lhook)
CALL dr_hook(
'DEF_VAR_NETCDF',1,zhook_handle
75 IF (
PRESENT(ktype))
THEN 76 iret(1) = nf90_def_var(kfile_id,hname,ktype,kdim_id,ivar_id)
78 iret(1) = nf90_def_var(kfile_id,hname,nf90_double,kdim_id,ivar_id)
82 IF (
PRESENT(ktype))
THEN 83 IF (ktype==nf90_double .OR. ktype==nf90_float)
THEN 84 iret(2) = nf90_put_att(kfile_id,ivar_id,
'_FillValue',
xundef)
85 ELSEIF (ktype==nf90_int .OR. ktype==nf90_short)
THEN 86 iret(2) = nf90_put_att(kfile_id,ivar_id,
'_FillValue',
nundef)
87 ELSEIF (ktype==nf90_char)
THEN 88 IF (indim>1) iret(2) = nf90_put_att(kfile_id,ivar_id,
'_FillValue'"" 91 iret(2) = nf90_put_att(kfile_id,ivar_id,
'_FillValue',
xundef)
95 IF (
PRESENT(ktype))
THEN 96 IF (ktype==nf90_char)
THEN 97 IF (
PRESENT(klen)) iret(3) = nf90_put_att(kfile_id,ivar_id,
'len',klen
101 IF (hlong_name.NE.
'') iret(2) = nf90_put_att(kfile_id,ivar_id,
'long_name' 104 IF (
PRESENT(hatt_title).AND.
PRESENT(hatt_text))
THEN 105 iatt=
SIZE(hatt_title)
106 IF (iatt .EQ.
SIZE(hatt_text))
THEN 108 ilen=len_trim(hatt_text(jatt))
110 jret = nf90_put_att(kfile_id,ivar_id,hatt_title(jatt),hatt_text(jatt
116 IF (
PRESENT(hatt_title2).AND.
PRESENT(patt_float))
THEN 117 iatt=
SIZE(hatt_title2)
118 IF (iatt .EQ.
SIZE(patt_float))
THEN 120 ilen=len_trim(hatt_title2(jatt))
121 ypas=hatt_title2(jatt)
122 jret = nf90_put_att(kfile_id,ivar_id,hatt_title2(jatt),patt_float
128 IF (
PRESENT(hatt_title3).AND.
PRESENT(patt_float2d))
THEN 129 iatt=
SIZE(hatt_title3)
130 IF (iatt .EQ.
SIZE(patt_float2d,1))
THEN 132 ilen=len_trim(hatt_title3(jatt))
133 ypas=hatt_title3(jatt)
134 jret = nf90_put_att(kfile_id,ivar_id,hatt_title3(jatt),patt_float2d
139 IF (
PRESENT(kvar_id)) kvar_id = ivar_id
141 IF (
lhook)
CALL dr_hook(
'DEF_VAR_NETCDF',1,zhook_handle)
character(len=28), save cfileout_nc
integer, parameter nundef
subroutine def_var_netcdf(HSELECT, KFILE_ID, HNAME, HLONG_NAME, KDIM_ID, H