개인적으로 수치해석 코드를 하나 만들고 있습니다 (fortran 90 기반)
코드 구조야 다른 코드들이 다 그러하듯 공통적으로 쓰일 파일들은 Src 디랙토리 아래에 넣어놓고, 초기값을 주거나 경계조건을 주는 등 문제 고유의 성격을 정해주는 .f90 파일이나 .data 파일은 각각 문제 이름에 해당하는 디랙토리르 따로 생성하여 거기 넣어주는 식으로 정리했습니다.
예를들어, main.f90 이라는 파일은 공통으로 필요하여 Src 디랙토리에,
어떤 물리 문제를 정의하는 initial.f90 파일은 Problem1 디랙토리에 넣어놓고 Problem1 디랙토리에서 make를 하면 Src의 main.f90를 불러와서 initial.f90 와 함께 컴파일 시키는 것이죠.
여기까지야 매우 쉬운데요,
어떤 문제의 특성에 의해 main.f90를 조금 손봐야 할 경우 Src 디랙토리에 있는 main.f90를 Problem1 디랙토리에 복사해서 거기서 수정을 하는 식으로 (Src의 원본은 보존한 채로) 처리를 할 수 있게 하고 싶습니다.