728x90

fortran 10

Mac M1 환경에서 ncl 실행 (M2 에러 해결 포함)

오늘은 한참 동안이나 시도했었던 Mac M1에서 ncl을 설치하고 실행하는 법입니다 일단은 해결하긴 했는데 혹시 중간에 에러가 발생하거나 하면 수정하도록 하겠습니다!먼저 제게 발생한 에러입니다(lsh) lsh@lsh lib % ncldyld[50561]: Library not loaded: /usr/local/lib/libgfortran.4.dylib Referenced from: /opt/homebrew/ncl-6.6.2/bin/ncl Reason: tried: '/usr/local/lib/libgfortran.4.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/lib/libgfortran.4.dylib' (no suc..

Mac 2024.04.28

Fortran으로 netCDF 파일 작성 (nf90_def_dim, def_var, put_att, put_var)

이번 포스팅부터는 제목 앞에 작업이란 단어를 지우기로 했습니다 저는 나름대로 몇 가지 일을 했고 하나 하나가 제가 계획을 꾸려서 하는 작업이라고 생각했는데 논문을 써보면서 작업이라고 할 만한 것들이 아니라고 생각했습니다 앞으로는 제목을 간단하게 적고 중요했던 키포인트를 뒤쪽 괄호에 적는 식으로 제목을 바꿔보려고 합니다 오늘은 포트란으로 NetCDF 파일을 작성해보겠습니다 먼저 코드입니다 PROGRAM net2 2 use netcdf 3 4 IMPLICIT NONE 5 6 INTEGER :: status, ncid 7 INTEGER :: nx, ny, ii, jj, x, y, xx, yy 8 REAL, DIMENSION(239, 239) :: field 9 REAL, DIMENSION(239, 239) :..

Fortran 2023.08.31

Fortran으로 netCDF 파일 읽고 평균 구하기(gfortran 컴파일 에러)

이번 포스팅은 정말 오랜만에 포트란입니다 WRF 결과물인 netCDF 파일을 읽고 격자들 전체의 평균 값을 구하는 코드를 해보겠습니다 전체 코드입니다 1 PROGRAM net1 2 use netcdf 3 4 IMPLICIT NONE 5 6 CHARACTER(len = 256) :: fi 7 REAL, ALLOCATABLE :: T2(:,:,:) 8 9 INTEGER :: dx, dy 10 INTEGER :: ncid, varid 11 INTEGER :: start(3), count(3) 12 13 14 fi = "wrfout_d01_2016-10-06_00.nc" 15 dx = 209 16 dy = 209 17 18 call check(nf90_open(fi, NF90_NOWRITE, ncid), "op..

Fortran 2023.08.24

NCL 기초

오늘은 Ncar Command Language 줄여서 NCL이라고 불리는 언어를 공부해보겠습니다 대기과학에서 정말 많이 사용하는 언어입니다 단순히 툴 정도가 아니라 Language라고 이름이 붙은 만큼 언어로 인정을 받고 있습니다 미국 국립 기상연구소에서 전산 계산 및 데이터 시각화를 위에 만들어 졌습니다 netCDF - 4, GRIB1, GRIB2, ASCII, BINARAY 등 대기 과학에서 많이 사용하는 파일 형식들은 모두 읽어올 수 있습니다 numpy처럼 연산도 가능하고 matplotlib처럼 데이터 시각화도 가능합니다 보통 포트란과 연결지어서 많이 사용합니다 시각화나 연산 뿐만 아니라 통계 분석도 가능합니다 평균을 구하거나 표준편차를 구하는 메소드도 존재합니다 matplotlib는 단일 라이브러..

NCL 2022.11.01

작업7 : Fortran으로 파장 별 방출에너지 구하기

오늘은 온도별 방출 에너지를 구해보겠습니다 개념 설명) 태양의 온도를 저희는 흔히 6000도 또는 5777K라고도 합니다 이 온도에서 방출하는 복사에너지 덕분에 지구에 빛이 들어오고 사람이 살 수 있는 온도가 생기는 겁니다 그럼 태양보다 더 뜨거운 항성은 태양과 똑같은 에너지를 방출할까요?? 아닙니다 물체는 온도가 높을수록 방출하는 에너지가 큽니다 가지고 있는 열을 방출하는게 복사 에너지이기 때문입니다 그럼 첫번째 사실을 하나 알았죠?? 온도가 높으면 복사에너지가 크다 두번째는 파장으로 알아보겠습니다 복사는 파동의 형태로 전달되기 때문에 파장과 진동수라는 개념이 있습니다 파장은 골과 골, 마루와 마루 사이의 길이를 말하고 진동수는 이 파장이 1초에 진동하는 횟수를 말합니다 진동한다는 말의 의미는 처음 위..

Fortran 2022.10.26

작업6 : Fortran으로 합성 풍속 풍향 구하기2

저번 포스팅과 이어집니다 저번 포스팅에서 포트란에 바람 방향을 입력시켜주기 위한 각도 변환 과정을 알아봤습니다 오늘은 직접 코드로 계산을 해보겠습니다 준비물) 오늘 코딩은 미리 준비물이 필요합니다 1시간 간격으로 24시간 동안 관측된 하루 동안의 바람을 가지고 계산을 해볼 것이기 때문에 시간대 별 풍속과 풍향 자료가 필요합니다 0:00 1.1 290 1:00 0.5 20 2:00 0.5 200 3:00 2.9 50 4:00 3.3 50 5:00 1.6 340 6:00 1.5 320 7:00 2.0 360 8:00 2.1 50 9:00 2.3 70 10:00 2.1 90 11:00 1.6 70 12:00 2.3 90 13:00 2.3 90 14:00 1.6 90 15:00 1.7 90 16:00 1.7 5..

Fortran 2022.10.26

작업5 : Fortran으로 합성 풍향 풍속 구하기1

이번에는 합성 풍속과 풍향을 구해보겠습니다 평균 풍속 풍향이라고만 하면 하루동안 측정한 자료를 모아서 24시간으로 나누면 되지 않냐 생각하실 수도 있습니다 풍속은 1시간마다 측정하여 24로 나누는 산술평균 방법을 사용해도 괜찮지만 방향을 포함하고 있는 풍향은 얘기가 좀 다릅니다 벡터 형태이기 때문에 방향이 정말 중요합니다 바람의 성분) 바람 벡터를 동서 성분과 남북 성분으로 나누어서 주로 생각합니다 쉽게 표현하기 위해 동서 성분은 u성분, 남북 성분을 v성분이라고 부릅니다 합성 풍향 풍속을 구하기 위해서는 평균 풍향 풍속을 먼저 구해야합니다 원래는 이런 공식을 사용해서 구한 다음 해야하지만 조금 더 쉬운 공식을 사용하겠습니다 그전에 기상학적 바람 벡터와 수학적 바람벡터부터 알아보겠습니다 기상학적 바람 벡..

Fortran 2022.10.26

작업3: Fortran으로 태양의 적위 계산하기

오늘은 태양의 적위를 계산해보겠습니다 먼저 적위가 뭔지 알아볼께여 적위를 이해하기 위해선 천구라는 것부터 알아야합니다 천구는 관측자나 지구를 중심으로 반지름이 무한대인 커다란 구를 말합니다 별들이 이 천구에 박혀있다라는 표현을 쓰기도 합니다 천구 안의 지구는 자전축이 23.5 도 기울어진채 자전을 합니다 지구의 적도에서 천구로 적도를 무한히 확장했을 때 생기는 원을 천구의 적도라고 합니다 본론으로 돌아와서 그럼 적위는 무엇일까요?? 천구의 적도와 태양이 이루는 각을 적위라고 합니다 말로만 하면 이해가 어려우니 그림을 가져올께여 위의 사진을 보시면 이해가 되실 겁니다 저번 포스팅에서 이심률을 계산하는 공식이 2개라고 했었는데 적위는 1개 더 많은 3개나 됩니다 이렇게 3개나 됩니다 길어보이지만 충분히 할 ..

Fortran 2022.10.26

작업2 : 이심률 구하기

이번에 한 내용은 이심률 구하는 작업입니다 ​ 이심률이란 원운동하는 물체가 궤도에서 벗어난 정도를 뜻합니다 ​ 이걸 지구에 적용하면 태양을 도는 공전 궤도의 변화 정도를 말합니다 ​ 먼저 이심률 공식을 설명하기 전에 Day Number 라는 숫자를 알아보겠습니다 1년은 총 365일로 구성이 되어있습니다 1월 1일을 0으로 두고 12월 31일을 365로 계산합니다 ​ 2월은 4년마다 29일이 되지만 이는 포함하지 않습니다 이심률 공식입니다 ​ 2가지가 있는데 위에 공식이 조금 더 정밀하게 값이 나옵니다 ​ 위에 식을 가지고 만든 코드입니다 fortran 90까지는 한 줄에 입력 가능한 글자수가 제한이 있기 때문에 자동으로 줄바꿈이 됩니다 그럴때는 넘어간 줄 맨 앞으로 커서를 옮겨서 백스페이스바를 한 번 눌..

Fortran 2022.10.18

작업1 : 태양의 유효복사온도 계산

먼저 태양의 유효복사 온도를 계산하는 공식입니다 ​ 다음은 제 코드입니다 ​ 여기서 설명 드릴만 한거는 read 정도 인거 같습니다 read는 값을 읽어들이는 메소드로 제가 설정한 변수 e를 읽어들입니다 ​ 이게 출력 결과입니다 ​ 네이버 블로그 작성할 때 탭키가 안먹는 탓도 있지만 코드는 작성해보고 수정해보면서 알아가는 것이 빨리 실력이 늘기 때문에 사진으로 올려드립니다 ​ 코드 해석도 해보시기 바랍니다

Fortran 2022.10.18