5 SUBROUTINE ol_write_coord (HSELECT, HFILE, KFILE_ID, KDDIM, HATT_TITLE, HNAME_DIM, &
6 HUNIT1, HUNIT2, KDIM1, HDATE, PX, PY, PLON, PLAT)
12 USE modi_def_var_netcdf
21 CHARACTER(LEN=*),
DIMENSION(:),
INTENT(IN) :: HSELECT
23 CHARACTER(LEN=50),
INTENT(IN) :: HFILE
24 INTEGER,
INTENT(IN) :: KFILE_ID
25 INTEGER,
DIMENSION(:),
INTENT(IN) :: KDDIM
26 CHARACTER(LEN=100),
DIMENSION(:),
INTENT(IN) :: HATT_TITLE
27 CHARACTER(LEN=100),
DIMENSION(:),
INTENT(IN) :: HNAME_DIM
28 CHARACTER(LEN=13) ,
DIMENSION(:),
INTENT(IN) :: HUNIT1, HUNIT2
29 INTEGER,
INTENT(IN) :: KDIM1
30 CHARACTER(LEN=40),
DIMENSION(:),
INTENT(IN) :: HDATE
31 REAL,
DIMENSION(:),
INTENT(IN) :: PX, PY
32 REAL,
DIMENSION(:),
OPTIONAL,
INTENT(IN) :: PLON, PLAT
34 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ZLAT, ZLON
35 CHARACTER(LEN=100) :: YNAME1, YNAME2
36 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ITEMP
37 INTEGER :: IVAR_ID, JRET, IDIM2, JJ
38 INTEGER :: INDIMS, ID1, ID2, ID3, ID4
39 REAL(KIND=JPRB) :: ZHOOK_HANDLE
45 IF (
PRESENT(plat).AND.
PRESENT(plon))
THEN 46 ALLOCATE(zlat(
SIZE(plat),1),zlon(
SIZE(plon),1))
50 ALLOCATE(zlat(0,0),zlon(0,0))
57 IF (
SIZE(zlat)>0)
THEN 58 CALL def_var_netcdf(hselect,kfile_id,trim(yname1),
'',kddim(1:1),(/
'units'/),(/
'degree'/),kvar_id=id3)
59 CALL def_var_netcdf(hselect,kfile_id,trim(yname2),
'',kddim(1:1),(/
'units'/),(/
'degree'/),kvar_id=id4)
61 CALL def_var_netcdf(hselect,kfile_id,trim(hname_dim(2)),
'',kddim(1:1),hatt_title,hunit1,kvar_id=id1)
62 CALL def_var_netcdf(hselect,kfile_id,trim(hname_dim(3)),
'',kddim(1:1),hatt_title,hunit2,kvar_id=id2)
65 ELSEIF (kdim1.NE.0)
THEN 67 CALL def_var_netcdf(hselect,kfile_id,trim(hname_dim(1)),
'',kddim(1:1),hatt_title,hunit1,kvar_id=id1)
68 CALL def_var_netcdf(hselect,kfile_id,trim(hname_dim(2)),
'',kddim(2:2),hatt_title,hunit2,kvar_id=id2)
70 ELSEIF (
SIZE(zlat)>0)
THEN 71 CALL def_var_netcdf(hselect,kfile_id,trim(yname1),
'',kddim(1:1),(/
'units'/),(/
'degree'/),kvar_id=id3)
72 CALL def_var_netcdf(hselect,kfile_id,trim(yname2),
'',kddim(1:1),(/
'units'/),(/
'degree'/),kvar_id=id4)
76 IF (hname_dim(indims)==
'time')
CALL def_var_netcdf(hselect,kfile_id,
'time',
'',kddim(indims:indims),hatt_title,hdate)
78 jret=nf90_enddef(kfile_id)
80 IF (id1/=0 .AND. id2/=0)
THEN 81 jret = nf90_put_var(kfile_id, id1, px)
82 jret = nf90_put_var(kfile_id, id2, py)
85 IF (
SIZE(zlat)>0)
THEN 86 jret = nf90_put_var(kfile_id, id3, zlon)
87 jret = nf90_put_var(kfile_id, id4, zlat)
subroutine def_var_netcdf(HSELECT, KFILE_ID, HNAME, HLONG_NAME, KDIM_ID, H
subroutine ol_write_coord(HSELECT, HFILE, KFILE_ID, KDDIM, HATT_TITLE, HNAME_DIM, HUNIT1, HUNIT2, KDIM1, HDATE, PX, PY, PLON, PLAT)