티스토리 뷰

수치모형/OGCMs

ROMS 설치기 (version: 3.5)

김동훈 2012. 3. 16. 13:22

설치전에 다음과 같이 환경변수를 만들어 놓으면 아래 설명을 따라하기가 쉬워집니다.
%setenv ROMSHOME ~/models/ROMS/roms3.5

  1. http://www.myroms.org에서 register를 클릭하여 회원가입을 한다.
  2. ROMS는 일반적으로 배포되는 *.tar.gz 형식으로 소스코드를 배포하지 않는다.
    Subversion 이라는 소스코드 관리툴로만 제공을 하고 있기 때문에
    다음과 같은 명령으로 받을 수 있다.
    %svn checkout --username your_ID https://www.myroms.org/svn/src/trunk \$ROMSHOME
    위 명령을 실행하면 암호를 묻게 되는데 회원가입 시 만든 암호를 사용하면 된다.
    참고) subversion에서 trunk는 최신버전을 받는 것이므로 3.5 버전이 아닐 수 있다.

    - 이상적인 test cases와 실제 응용 cases의 자료를 받기 위해서 다음과 같이 실행한다.
    %svn checkout https://www.myroms.org/svn/src/test \$ROMSHOME/Test
      Test cases에 대한 자세한 설명은 여기를 참조하세요.

    - 분석을 위한 matlab 스크립트를 받는다.
    %svn checkout https://www.myroms.org/svn/src/matlab \$ROMSHOME

    - 분석을 위한 plot (NCAR의 library-based plotting package) 스크립트를 받는다.
    %svn checkout https://www.myroms.org/svn/src/plot \$ROMSHOME
     
  3.  본 설치기에서는 ROMS에서 제공하는 많은 실험들 중에서 가장 기본적인 "upwelling" 실험에 대하여 설명해 나가도록 하겠다. upwelling 실험을 컴파일 하기 위해서 다음과 같이 수행한다.
    (ROMS 홈페이지에서는 기본 쉘인 bash를 이용하여 설명하였지만,
     여기에서는 수치모형 전문가들이 많이 사용하는 csh로 설명해 나가겠다).
    %cd \$ROMSHOME/Test/upwelling
    %vi build.sh
      # 실험과 관련된 header 화일을 읽어오기 위해서는 ROMS_APPLICATION 환경변수를 맞추어
      # 주어야 하는데, 여기에서는 upwelling.h 등을 불러오기 위해서 다음과 같이 환경변수를
      # 맞추어 준다. (Note: 원본에 이미 설정되어 있으나 참고적으로 설명하는 것임)
      82줄: setenv ROMS_APPLICATION UPWELLING 
      # ROMS의 메인 홈 디렉토리와 실혐 디렉토리를 설정한다.
      87줄: setenv MY_ROOT_DIR \${ROMSHOME}/..
      88줄: setenv MY_PROJECT_DIR \${PWD}
      # 소스코드가 설치되어 있는 디렉토리를 설정한다.
      101줄: setenv MY_ROMS_SRC \${ROMSHOME}
      # 병렬화 관련하여 다음과 같이 설정한다.
      179줄: setenv USE_MPI on
      180줄: setenv USE_MPIF90 on
      182줄: setenv which_MPI mpich2       #주석제거
      183줄: #setenv which_MPI openmpi   #주석처리
      187줄: setenv FORT ifort                   #intel fortran compiler 사용
      196줄: setenv USE_MY_LIBS on        #주석 제거
      216줄: setenv PATH /usr/local/mpich2/intel11/bin:\$PATH 
                                              #mpich2 관련 실행화일 디렉토리를 자신의 시스템에 맞게 수정해 준다.
      320줄: setenv NETCDF_INCDIR /usr/local/netcdf/362_intel11/include
      321줄: setenv NETCDF_LIBDIR /usr/local/netcdf/362_intel11/lib
     
  4. 컴파일 할 준비가 다 되었으므로 다음의 명령으로 컴파일을 수행한다.
    %./build.sh
    컴파일을 빠르게 하기위해서 파일마다 각각 병렬로 컴파일하려면 다음과 같은 명령으로 수행하면 된다.
    %./build.sh -j <n>   # 여기에서 <n>은 사용할 프로세서의 갯수를 적으면 된다.
  5. 에러 없이 성공적으로 실행화일이 만들어 졌으면 실험 수행을 위하여 다음과 같이 실행하면 된다.
    (여기에서는 8개의 프로세서로 병렬실행하는 것을 예로 든다).
    %vi ocean_upwelling.in
       101줄: NtileI == 4
       102줄: NtileJ == 2
       # NtileI * NtileJ = 총 사용 프로세서 수 이어야 함.
    %mpirun -np 8 ./oceanM ocean_upwelling.in > my_upwelling.log
  6. 실행이 완료되면 다음과 같은 결과화일이 생성되는데 이것을 분석해 보면 된다.
    - ocean_rst.nc, ocean_his.nc, ocean_avg.nc, ocean_dia.nc, ocean_sta.nc, ocean_flt.nc