My Project
Functions/Subroutines | Variables
mod_ncd Module Reference

Functions/Subroutines

integer function getdim (FID, SSIZE, DIMNAME)
 
subroutine getsvar (FID, NLEN, VARNAME, I1, I2, TEMP)
 
subroutine getsvar_d (FID, NLEN, VARNAME, I1, I2, TEMP)
 
subroutine getdvar (FID, NLEN, VARNAME, I1, I2, TEMP, NT)
 
subroutine putdvar (FID, NLEN, VARNAME, I1, TEMP, NT)
 
subroutine putsvar (FID, NLEN, VARNAME, I1, TEMP)
 

Variables

integer nc_fid
 

Function/Subroutine Documentation

◆ getdim()

integer function mod_ncd::getdim ( integer, intent(in)  FID,
integer, intent(in)  SSIZE,
character(len=ssize), intent(in)  DIMNAME 
)

Definition at line 56 of file mod_enkf_ncd.f90.

56  !==============================================================================!
57  ! Read dimensions
58  !==============================================================================!
59 
60  IMPLICIT NONE
61  INTEGER, INTENT(IN) :: FID
62  INTEGER, INTENT(IN) :: SSIZE
63  CHARACTER(LEN=SSIZE), INTENT(IN) :: DIMNAME
64  INTEGER :: LENGTH
65  INTEGER :: IERR
66  INTEGER :: DIMID
67  CHARACTER(LEN=NF90_MAX_NAME) :: TEMPNAME
68 
69  ierr = nf90_inq_dimid(fid,trim(dimname),dimid)
70  IF(ierr /=nf90_noerr)THEN
71  WRITE(*,*)'Error getting dimension id: ',trim(dimname)
72  WRITE(*,*)trim(nf90_strerror(ierr))
73  stop
74  END IF
75 
76  ierr = nf90_inquire_dimension(fid,dimid,tempname,length)
77  IF(ierr /=nf90_noerr)THEN
78  WRITE(*,*)'Error getting dimension: ',trim(dimname)
79  WRITE(*,*)trim(nf90_strerror(ierr))
80  stop
81  END IF
82 
83  getdim = length
84 
integer function getdim(FID, SSIZE, DIMNAME)
Here is the caller graph for this function:

◆ getdvar()

subroutine mod_ncd::getdvar ( integer, intent(in)  FID,
integer, intent(in)  NLEN,
character(len=nlen), intent(in)  VARNAME,
integer, intent(in)  I1,
integer, intent(in)  I2,
real(sp), dimension(i1,i2), intent(out)  TEMP,
integer  NT 
)

Definition at line 176 of file mod_enkf_ncd.f90.

176  !============================================================================!
177  ! Read time dynamic variables
178  !==============================================================================!
179 
180  IMPLICIT NONE
181  INTEGER, INTENT(IN) :: FID
182  INTEGER, INTENT(IN) :: NLEN
183  CHARACTER(LEN=NLEN), INTENT(IN) :: VARNAME
184  INTEGER, INTENT(IN) :: I1,I2
185  REAL(SP), INTENT(OUT) :: TEMP(I1,I2)
186  INTEGER :: IERR
187  INTEGER :: VARID
188  INTEGER :: NT
189  INTEGER, ALLOCATABLE :: DIMS(:)
190 
191  IF(i2 == 1)THEN
192  ALLOCATE(dims(2))
193  dims(1) = 1
194  dims(2) = nt
195  ELSE
196  ALLOCATE(dims(3))
197  dims(1) = 1
198  dims(2) = 1
199  dims(3) = nt
200  END IF
201 
202  ierr = nf90_inq_varid(fid,trim(varname),varid)
203  IF(ierr /=nf90_noerr)THEN
204  WRITE(*,*)'error getting variable id: ',trim(varname)
205  WRITE(*,*)trim(nf90_strerror(ierr))
206  stop
207  END IF
208 
209  ierr = nf90_get_var(fid,varid,temp,dims)
210  IF(ierr /=nf90_noerr)THEN
211  WRITE(*,*)'2 error getting variable: ',trim(varname)
212  WRITE(*,*)trim(nf90_strerror(ierr))
213  stop
214  END IF
215 
216  RETURN
integer nt
Definition: mod_main.f90:77
Here is the caller graph for this function:

◆ getsvar()

subroutine mod_ncd::getsvar ( integer, intent(in)  FID,
integer, intent(in)  NLEN,
character(len=nlen), intent(in)  VARNAME,
integer, intent(in)  I1,
integer, intent(in)  I2,
real(sp), dimension(i1,i2), intent(out)  TEMP 
)

Definition at line 90 of file mod_enkf_ncd.f90.

90  !============================================================================!
91  ! Read Static variables
92  !==============================================================================!
93 
94  IMPLICIT NONE
95  INTEGER, INTENT(IN) :: FID
96  INTEGER, INTENT(IN) :: NLEN
97  CHARACTER(LEN=NLEN), INTENT(IN) :: VARNAME
98  INTEGER, INTENT(IN) :: I1,I2
99  REAL(SP),INTENT(OUT) :: TEMP(I1,I2)
100  INTEGER :: IERR
101  INTEGER :: VARID
102  INTEGER, ALLOCATABLE :: DIMS(:)
103 
104  IF(i2 == 1)THEN
105  ALLOCATE(dims(1))
106  dims(1) = 1
107  ELSE
108  ALLOCATE(dims(2))
109  dims(1) = 1
110  dims(2) = 1
111  END IF
112 
113  ierr = nf90_inq_varid(fid,trim(varname),varid)
114  IF(ierr /=nf90_noerr)THEN
115  WRITE(*,*)'error getting variable id: ',trim(varname)
116  WRITE(*,*)trim(nf90_strerror(ierr))
117  stop
118  END IF
119 
120  ierr = nf90_get_var(fid,varid,temp,dims)
121  IF(ierr /=nf90_noerr)THEN
122  WRITE(*,*)'1 error getting variable: ',trim(varname)
123  WRITE(*,*)trim(nf90_strerror(ierr))
124  stop
125  END IF
126 
127  RETURN
Here is the caller graph for this function:

◆ getsvar_d()

subroutine mod_ncd::getsvar_d ( integer, intent(in)  FID,
integer, intent(in)  NLEN,
character(len=nlen), intent(in)  VARNAME,
integer, intent(in)  I1,
integer, intent(in)  I2,
real(dp), dimension(i1,i2), intent(out)  TEMP 
)

Definition at line 133 of file mod_enkf_ncd.f90.

133  !============================================================================!
134  ! Read Static variables
135  !==============================================================================!
136 
137  IMPLICIT NONE
138  INTEGER, INTENT(IN) :: FID
139  INTEGER, INTENT(IN) :: NLEN
140  CHARACTER(LEN=NLEN), INTENT(IN) :: VARNAME
141  INTEGER, INTENT(IN) :: I1,I2
142  REAL(DP),INTENT(OUT) :: TEMP(I1,I2)
143  INTEGER :: IERR
144  INTEGER :: VARID
145  INTEGER, ALLOCATABLE :: DIMS(:)
146 
147  IF(i2 == 1)THEN
148  ALLOCATE(dims(1))
149  dims(1) = 1
150  ELSE
151  ALLOCATE(dims(2))
152  dims(1) = 1
153  dims(2) = 1
154  END IF
155 
156  ierr = nf90_inq_varid(fid,trim(varname),varid)
157  IF(ierr /=nf90_noerr)THEN
158  WRITE(*,*)'error getting variable id: ',trim(varname)
159  WRITE(*,*)trim(nf90_strerror(ierr))
160  stop
161  END IF
162 
163  ierr = nf90_get_var(fid,varid,temp,dims)
164  IF(ierr /=nf90_noerr)THEN
165  WRITE(*,*)'1 error getting variable: ',trim(varname)
166  WRITE(*,*)trim(nf90_strerror(ierr))
167  stop
168  END IF
169 
170  RETURN
Here is the caller graph for this function:

◆ putdvar()

subroutine mod_ncd::putdvar ( integer, intent(in)  FID,
integer, intent(in)  NLEN,
character(len=nlen), intent(in)  VARNAME,
integer, intent(in)  I1,
real(sp), dimension(i1), intent(in)  TEMP,
integer  NT 
)

Definition at line 222 of file mod_enkf_ncd.f90.

222  !============================================================================!
223  ! Write dynamic time variables
224  !==============================================================================!
225 
226  IMPLICIT NONE
227  INTEGER, INTENT(IN) :: FID
228  INTEGER, INTENT(IN) :: NLEN
229  CHARACTER(LEN=NLEN), INTENT(IN) :: VARNAME
230  INTEGER, INTENT(IN) :: I1
231  REAL(SP),INTENT(IN) :: TEMP(I1)
232  INTEGER :: IERR
233  INTEGER :: VARID
234  INTEGER, ALLOCATABLE :: DIMS(:)
235  INTEGER :: NT
236 
237  IF(i1 == 1)THEN
238  ALLOCATE(dims(1))
239  dims(1) = nt
240  ELSE
241  ALLOCATE(dims(2))
242  dims(1) = 1
243  dims(2) = nt
244  END IF
245 
246  ierr = nf90_inq_varid(fid,trim(varname),varid)
247  IF(ierr /=nf90_noerr)THEN
248  WRITE(*,*)'error getting variable id: ',trim(varname)
249  WRITE(*,*)trim(nf90_strerror(ierr))
250  stop
251  END IF
252 
253  ierr = nf90_put_var(fid,varid,temp,dims)
254  IF(ierr /=nf90_noerr)THEN
255  WRITE(*,*)'3 error getting variable: ',trim(varname)
256  print *, temp,dims ! should be mark
257  WRITE(*,*)trim(nf90_strerror(ierr))
258  stop
259  END IF
260 
261  RETURN
integer nt
Definition: mod_main.f90:77
Here is the caller graph for this function:

◆ putsvar()

subroutine mod_ncd::putsvar ( integer, intent(in)  FID,
integer, intent(in)  NLEN,
character(len=nlen), intent(in)  VARNAME,
integer, intent(in)  I1,
real(sp), dimension(i1), intent(in)  TEMP 
)

Definition at line 267 of file mod_enkf_ncd.f90.

267  !============================================================================!
268  ! Write static variables
269  !==============================================================================!
270 
271  IMPLICIT NONE
272  INTEGER, INTENT(IN) :: FID
273  INTEGER, INTENT(IN) :: NLEN
274  CHARACTER(LEN=NLEN), INTENT(IN) :: VARNAME
275  INTEGER, INTENT(IN) :: I1
276  REAL(SP), INTENT(IN) :: TEMP(I1)
277  INTEGER :: IERR
278  INTEGER :: VARID
279  INTEGER, DIMENSION(1) :: DIMS
280 
281  dims(1)=1
282 
283  ierr = nf90_inq_varid(fid,trim(varname),varid)
284  IF(ierr /=nf90_noerr)THEN
285  WRITE(*,*)'error getting variable id: ',trim(varname)
286  WRITE(*,*)trim(nf90_strerror(ierr))
287  stop
288  END IF
289 
290  ierr = nf90_put_var(fid,varid,temp,dims)
291  IF(ierr /=nf90_noerr)THEN
292  WRITE(*,*)'4 error getting variable: ',trim(varname)
293  WRITE(*,*)trim(nf90_strerror(ierr))
294  stop
295  END IF
296 
297  RETURN
Here is the caller graph for this function:

Variable Documentation

◆ nc_fid

integer mod_ncd::nc_fid

Definition at line 50 of file mod_enkf_ncd.f90.

50  INTEGER :: NC_FID