FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(inout), | dimension(2) | :: | vnm | ||
integer, | intent(out) | :: | istatus |
subroutine init_vnm (vnm, istatus)
# ifdef NETCDF
use mp, only: proc0, broadcast
use file_utils, only: error_unit
# endif
implicit none
real, dimension(2), intent (in out) :: vnm
integer, intent (out) :: istatus
# ifdef NETCDF
character (run_name_size) :: file_proc
logical :: is_one_file_per_processor
is_one_file_per_processor = read_many .or. (.not. has_netcdf_parallel)
if (proc0) then
file_proc = get_file_proc(is_one_file_per_processor)
istatus = nf90_open (file_proc, 0, ncid)
if (istatus /= NF90_NOERR) call netcdf_error (istatus, file=file_proc)
istatus = nf90_inq_varid (ncid, "vnm1", vnm1id)
if (istatus /= NF90_NOERR) call netcdf_error (istatus, var='vnm1')
istatus = nf90_inq_varid (ncid, "vnm2", vnm2id)
if (istatus /= NF90_NOERR) call netcdf_error (istatus, var='vnm2')
istatus = nf90_get_var (ncid, vnm1id, vnm(1))
if (istatus /= NF90_NOERR) then
call netcdf_error (istatus, ncid, vnm1id, message=' in init_vnm')
vnm(1) = 0.
endif
istatus = nf90_get_var (ncid, vnm2id, vnm(2))
if (istatus /= NF90_NOERR) then
call netcdf_error (istatus, ncid, vnm2id, message=' in init_vnm')
vnm(2) = 0.
endif
istatus = nf90_close (ncid)
endif
call broadcast (istatus)
call broadcast (vnm)
# endif
end subroutine init_vnm