59 MODULE read_response_nompi
65 USE bsc_cdf,
ONLY: vn_c_type, vn_s_name, vn_l_name,
66 1 vn_current, vn_raux, vn_xnod, vn_ehnod, vn_rcirc,
74 INTEGER(iprec) :: n_field_cg
75 INTEGER(iprec) :: n_diagn_c
76 REAL(rprec),
DIMENSION(:,:),
POINTER :: rdiag_coilg => null()
83 CHARACTER (len=63) :: cdffil
84 CHARACTER (len=120) :: name_diagnostic_dot
85 CHARACTER (len=30) :: idrfun
90 INTEGER(iprec) :: kp_store
91 INTEGER(iprec) :: n_field_periods
96 REAL(rprec),
DIMENSION(:,:,:),
POINTER :: a_r => null()
97 REAL(rprec),
DIMENSION(:,:,:),
POINTER :: a_f => null()
98 REAL(rprec),
DIMENSION(:,:,:),
POINTER :: a_z => null()
99 CHARACTER (len=30) :: s_name
100 CHARACTER (len=8) :: c_type
101 LOGICAL :: lstell_sym
105 CHARACTER (LEN=*),
PARAMETER ::
106 & vn_rdiag_coilg =
'rdiag_coilg',
108 & vn_n_diagn_c =
'n_diagn_c',
109 & vn_inductance_coilg =
'external_inductance'
110 CHARACTER (LEN=*),
PARAMETER ::
112 'name_diagnostic_dot',
113 & vn_lstell_sym =
'lstell_sym',
117 & vn_kp_store =
'kp_store',
119 & vn_cdffil =
'cdffil',
123 & vn_plasma_response =
'plasma_response',
124 & vn_n_field_periods =
'n_field_periods',
150 SUBROUTINE cdf_crfun_read_nompi(cdffil, crf, istat, mmode)
167 CHARACTER (LEN=*),
INTENT(in) :: cdffil
168 TYPE(clresfun),
INTENT(out) :: crf
169 INTEGER,
INTENT(out) :: istat
170 CHARACTER(LEN=1),
OPTIONAL,
INTENT(in) :: mmode
184 CHARACTER(LEN=1) :: mode =
'N'
185 INTEGER :: ncrfun, nwprocs
190 IF (
PRESENT(mmode)) mode = mmode
197 CALL cdf_open(ncrfun, cdffil,
'r', istat)
198 IF (istat .ne. 0) stop
'ERROR OPENING CDFFIL!'
199 CALL cdf_read(ncrfun, vn_n_field_cg, crf%n_field_cg)
200 CALL cdf_read(ncrfun, vn_n_diagn_c, crf%n_diagn_c)
203 IF (
ASSOCIATED(crf%rdiag_coilg))
DEALLOCATE(crf%rdiag_coilg)
204 ALLOCATE(crf%rdiag_coilg(crf%n_diagn_c,crf%n_field_cg),
206 IF (istat .ne. 0)
THEN
207 WRITE(6,*)
'In cdf_crfun_read, istat = ', istat
212 IF (mode .eq.
'R' .or. mode .eq.
'N')
THEN
213 CALL cdf_read(ncrfun, vn_rdiag_coilg, crf%rdiag_coilg)
215 CALL cdf_read(ncrfun, vn_inductance_coilg, crf%rdiag_coilg)
217 CALL cdf_close(ncrfun, istat)
221 END SUBROUTINE cdf_crfun_read_nompi
230 SUBROUTINE cdf_prfun_read_nompi(cdffil, pl_str, istat, ldim_only)
247 CHARACTER (LEN=*),
INTENT(in) :: cdffil
248 TYPE (prfun),
INTENT(inout) :: pl_str
249 INTEGER,
INTENT(out) :: istat
250 LOGICAL,
INTENT(in),
OPTIONAL :: ldim_only
261 LOGICAL :: ldim_only_local, lfile
262 INTEGER :: nprfun, nwprocs
268 ldim_only_local = .false.
269 IF (
PRESENT(ldim_only)) ldim_only_local = ldim_only
276 INQUIRE(file=cdffil, exist=lfile)
277 IF (.not. lfile) print*,
"file=",cdffil
278 IF (.not. lfile) stop
'cdf file not found in CDF_PRFUN_READ!'
280 CALL cdf_open(nprfun, cdffil,
'r', istat)
284 CALL cdf_read(nprfun,vn_s_name,pl_str%s_name)
285 CALL cdf_read(nprfun,vn_kp,pl_str%kp)
287 CALL cdf_read(nprfun,vn_kp_store,pl_str%kp_store,istat)
288 CALL cdf_read(nprfun,vn_lstell_sym,pl_str%lstell_sym)
291 IF (istat .ne. 0)
THEN
292 pl_str%kp_store = pl_str%kp
293 pl_str%lstell_sym = .false.
296 CALL cdf_read(nprfun,vn_jz,pl_str%jz)
297 CALL cdf_read(nprfun,vn_ir,pl_str%ir)
298 CALL cdf_read(nprfun,vn_rmin,pl_str%rmin)
299 CALL cdf_read(nprfun,vn_rmax,pl_str%rmax)
300 CALL cdf_read(nprfun,vn_zmin,pl_str%zmin)
301 CALL cdf_read(nprfun,vn_zmax,pl_str%zmax)
302 CALL cdf_read(nprfun,vn_cdffil,pl_str%cdffil)
303 CALL cdf_read(nprfun,vn_idc,pl_str%idc)
304 CALL cdf_read(nprfun,vn_name_diagnostic_dot,
305 & pl_str%name_diagnostic_dot)
306 CALL cdf_read(nprfun,vn_n_field_periods,pl_str%n_field_periods)
307 CALL cdf_read(nprfun,vn_idrfun,pl_str%idrfun)
311 IF (ldim_only_local)
THEN
312 IF (breadio)
CALL cdf_close(nprfun, istat)
316 IF (
ASSOCIATED(pl_str%a_r))
DEALLOCATE(pl_str%a_r)
317 IF (
ASSOCIATED(pl_str%a_f))
DEALLOCATE(pl_str%a_f)
318 IF (
ASSOCIATED(pl_str%a_z))
DEALLOCATE(pl_str%a_z)
319 ALLOCATE(pl_str%a_r(pl_str%ir,pl_str%jz,pl_str%kp_store))
320 ALLOCATE(pl_str%a_f(pl_str%ir,pl_str%jz,pl_str%kp_store))
321 ALLOCATE(pl_str%a_z(pl_str%ir,pl_str%jz,pl_str%kp_store))
324 CALL cdf_read(nprfun,vn_a_r,pl_str%a_r)
325 CALL cdf_read(nprfun,vn_a_f,pl_str%a_f)
326 CALL cdf_read(nprfun,vn_a_z,pl_str%a_z)
327 CALL cdf_close(nprfun, istat)
331 END SUBROUTINE cdf_prfun_read_nompi
333 END MODULE read_response_nompi