M1 mac X-window
mac の window システムが全く不明なので、X-window で図を書くことにします。
以前、Linux でやったものを再現することを目指します。 fortran66.hatenablog.com
X-window 用ソフト XQuartz インストール
インストールするとアプリケーション・フォルダの中のその他に入っておりました。一度 logoff して再度 login 後に実行する必要がある様です。
xclock が起動することを確かめました。
実行
include path と lib path を指定してのコンパイルで上手くゆきました。
gfortran plot3.c plot.f90 -lX11 -I/opt/X11/include -L/opt/X11/lib
plot3.c
#include <X11/Xlib.h> #include <X11/Xutil.h> static Display* d; static Window w; static GC gc; unsigned long white, black; void X_open(int nx, int ny){ // Open a display d = XOpenDisplay(0); if ( !d ) return; // white = WhitePixel(d, DefaultScreen(d)); black = BlackPixel(d, DefaultScreen(d)); // Create a window w = XCreateSimpleWindow(d, DefaultRootWindow(d), 0, 0, nx, ny, 0, black, white); XMapWindow(d, w); gc = XCreateGC(d, w, 0, 0); XFlush(d); } void X_point(int ix, int iy){ XDrawPoint(d, w, gc, ix, iy); XFlush(d); } void X_flush(){ XFlush(d); } void X_close(void){ XFreeGC(d, gc); XDestroyWindow(d, w); XFlush(d); XCloseDisplay(d); }
plot.f90
module m_plot implicit none interface subroutine Xopen(nx, ny) bind(c, name = 'X_open') integer, value :: nx, ny end subroutine Xopen subroutine Xpoint(ix, iy) bind(c, name = 'X_point') integer, value :: ix, iy end subroutine Xpoint subroutine Xclose() bind(c, name = 'X_close') end subroutine Xclose subroutine Xflush() bind(c, name = 'X_flush') end subroutine Xflush end interface end module m_plot program plot use m_plot implicit none integer, parameter :: n = 10000, nx = 500, ny = nx real :: x(n), y(n) integer :: i, ix, iy call random_seed() call random_number(x) call random_number(y) call Xopen(nx, ny) call sleep(1) ! non-standard do ix = 0, nx iy = sqrt(real(ny**2 - ix**2)) call Xpoint(ix, iy) end do do iy = 0, ny ix = sqrt(real(nx**2 - iy**2)) call Xpoint(ix, iy) end do call Xflush() do i = 1, n ix = nx * x(i) iy = ny * y(i) call Xpoint(ix, iy) end do call Xflush() print *, 'Monte-Carlo Pi=', 4 * count(x**2 + y**2 < 1.0) / real(n) print *, 'press enter' read * call Xclose() end program plot
最新 Apple Mac mini Apple M1 Chip (8GB RAM, 256GB SSD)
- 発売日: 2020/11/17
- メディア: Personal Computers
最新 Apple MacBook Air Apple M1 Chip (13インチPro, 8GB RAM, 256GB SSD) - スペースグレイ
- 発売日: 2020/11/17
- メディア: Personal Computers
最新 Apple MacBook Pro Apple M1 Chip (13インチPro, 8GB RAM, 256GB SSD) - シルバー
- 発売日: 2020/11/17
- メディア: Personal Computers