COMPILE

COMPILE 은 subDMAP, subDMAP alter, 또는 NDDL sequence 의 컴파일을 요청하는 Executive Control statement 다 [MSC_Nastran_2022.4_Quick_Reference_Guide.pdf p.151].

정의·용도

COMPILE 은 DMAP statement 들을 컴파일한다 [MSC_Nastran_2022.4_Quick_Reference_Guide.pdf p.151]. 대부분의 Executive Control statement 는 순서에 무관하지만, COMPILE, COMPILER, ALTER, ENDALTER, LINK 은 예외다 [MSC_Nastran_2022.4_Quick_Reference_Guide.pdf p.143]. 이 중 LINK statement 는 모든 COMPILE statement 뒤에 와야 하며, COMPILER statement(또는 동등한 DIAG)는 모든 COMPILE statement 앞에 와야 한다 [MSC_Nastran_2022.4_Quick_Reference_Guide.pdf p.143]. COMPILER statement 는 후속 COMPILE statement 들의 기본값(print control)을 설정한다 [MSC_Nastran_2022.4_Reference_Guide.pdf p.26].

컴파일할 subDMAP 마다 COMPILE statement 가 하나씩 필요하다 [MSC_Nastran_2022.4_Quick_Reference_Guide.pdf p.153]. 둘 이상의 COMPILE statement 가 같은 subDMAP 이름을 참조하면, object code 의 linking 에는 마지막 것만 사용된다 [MSC_Nastran_2022.4_Quick_Reference_Guide.pdf p.153]. 단, COMPILE statement 가 subDMAP 을 alter 하는 용도로만 쓰이고 같은 이름을 둘 이상 참조하면, 다중 alter 가 조립되어 subDMAP 은 한 번만 컴파일된다 [MSC_Nastran_2022.4_Quick_Reference_Guide.pdf p.153].

형식 / 필드 / 구문

SOUOUT 또는 OBJOUT 이 지정되고 database 에 같은 이름의 subDMAP 이 이미 존재하면, 그 source statement 또는 object code 가 대체된다 [MSC_Nastran_2022.4_Quick_Reference_Guide.pdf p.153].

상위 개념인 COMPILER statement 의 출력 옵션(COMPILER=LIST 등)은 다음과 같다 [MSC_Nastran_2022.4_Quick_Reference_Guide.pdf p.155]:

Describer의미
LIST, NOLISTLIST 는 solution sequence 의 compilation listing 을 요청, NOLIST 는 억제
DECK, NODECKDECK 은 DMAP source statement 를 PUNCH file 에 기록, NODECK 은 억제
REF, NOREFREF 는 compilation cross reference 를 요청, NOREF 는 억제
GO, NOGOGO 는 컴파일 후 실행을 요청, NOGO 는 컴파일 후 종료를 요청
SORT, NOSORTSORT 는 subDMAP 을 알파벳 순으로, NOSORT 는 호출 순서로 컴파일

옵션 간 동등 관계로 REFDIAG 4, LISTDIAG 14, DECKDIAG 17 에 해당한다 [MSC_Nastran_2022.4_Quick_Reference_Guide.pdf p.155]. 또한 NOGOSOL statement 의 NOEXE 에 대한 대안이다 [MSC_Nastran_2022.4_Quick_Reference_Guide.pdf p.155]. COMPILER statement 는 COMPILE entry 의 기본값 NOLIST, NOREF, NODECK 을 명시적으로 지정하지 않았을 때 override 하는 데 사용할 수 있다 [MSC_Nastran_2022.4_Quick_Reference_Guide.pdf p.155].

사용 예

subDMAP PHASE1DR 안의 alter 를 컴파일 [MSC_Nastran_2022.4_Quick_Reference_Guide.pdf p.151]:

COMPILE PHASE1DR ALTER 'CALL PHASE1A' CEND

MYDMAP 이라는 subDMAP 을 컴파일 (SUBDMAP, END 는 DMAP statement) [MSC_Nastran_2022.4_Quick_Reference_Guide.pdf p.151]:

COMPILE MYDMAP LIST REF SUBDMAP MYDMAP $ . . . END $ CEND

NDDL 의 listing 을 얻기 [MSC_Nastran_2022.4_Quick_Reference_Guide.pdf p.151]:

ACQUIRE NDDL COMPILE NDDL=NDDL LIST CEND

subDMAP 을 저장한 뒤 이후 run 에서 실행·alter 하는 경우, SOUOUT=USRSOU, OBJOUT=USROBJ 로 저장하고 두 번째 run 에서 LINK MYDMAP INCL=USROBJ 로 object code 를 USROBJ DBset 에서 가져온다 [MSC_Nastran_2022.4_Quick_Reference_Guide.pdf p.153].

DMAP Programmer's Guide 의 예에서는 COMPILE 로 여러 subDMAP(DBFETCH, DBSTORE, DBMGR 등)의 listing 과 cross reference 를 REF LIST 옵션으로 얻는다 [MSC_Nastran_2022.4_DMAP_Programmer_Guide.pdf p.54]. 또 HALT statement 와 함께 compile prtmat list 를 사용하면 DMAP 실행을 중단했다가 재개하여 MATPRN module 로 data block 을 출력할 수 있다 [MSC_Nastran_2022.4_DMAP_Programmer_Guide.pdf p.50].

관련 항목

출처

  • [MSC_Nastran_2022.4_Quick_Reference_Guide.pdf p.143] — Executive Control Section, statement 순서 예외
  • [MSC_Nastran_2022.4_Quick_Reference_Guide.pdf p.151] — COMPILE 정의 및 예제
  • [MSC_Nastran_2022.4_Quick_Reference_Guide.pdf p.153] — Remarks (subDMAP 저장·linking 규칙)
  • [MSC_Nastran_2022.4_Quick_Reference_Guide.pdf p.155] — DMAP Compiler Output Options, Remarks
  • [MSC_Nastran_2022.4_Reference_Guide.pdf p.26] — Executive Control Section
  • [MSC_Nastran_2022.4_DMAP_Programmer_Guide.pdf p.50] — HALT/compile 예
  • [MSC_Nastran_2022.4_DMAP_Programmer_Guide.pdf p.54] — subDMAP listing 예