Guest User

Untitled

a guest
Jan 23rd, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.96 KB | None | 0 0
  1. ncInq :: NCID -> IO (Int, Int, Int, Int)
  2. ncInq ncid =
  3. alloca $ \ndims_ptr ->
  4. alloca $ \nvars_ptr ->
  5. alloca $ \natts_ptr ->
  6. alloca $ \unlimdimid_ptr -> do
  7. status <- nc_inq ncid ndims_ptr nvars_ptr natts_ptr unlimdimid_ptr
  8. ndims <- peek ndims_ptr
  9. nvars <- peek nvars_ptr
  10. natts <- peek natts_ptr
  11. unlimdimid <- peek unlimdimid_ptr
  12. return (fromEnum ndims, fromEnum nvars, fromEnum natts, fromEnum unlimdimid)
  13.  
  14.  
  15.  
  16. ncInq :: NCID -> IO (Int, Int, Int, Int)
  17. ncInq ncid = (`runContT` return) $ do
  18. ndims_ptr <- newPtr
  19. nvars_ptr <- newPtr
  20. natts_ptr <- newPtr
  21. unlimdimid_ptr <- newPtr
  22. liftIO $ do
  23. status <- nc_inq ncid ndims_ptr nvars_ptr natts_ptr unlimdimid_ptr
  24. ndims <- peek ndims_ptr
  25. nvars <- peek nvars_ptr
  26. natts <- peek natts_ptr
  27. unlimdimid <- peek unlimdimid_ptr
  28. return (fromEnum ndims, fromEnum nvars, fromEnum natts, fromEnum unlimdimid)
  29. where newPtr = ContT alloca
Add Comment
Please, Sign In to add comment