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, NOLIST | LIST 는 solution sequence 의 compilation listing 을 요청, NOLIST 는 억제 |
| DECK, NODECK | DECK 은 DMAP source statement 를 PUNCH file 에 기록, NODECK 은 억제 |
| REF, NOREF | REF 는 compilation cross reference 를 요청, NOREF 는 억제 |
| GO, NOGO | GO 는 컴파일 후 실행을 요청, NOGO 는 컴파일 후 종료를 요청 |
| SORT, NOSORT | SORT 는 subDMAP 을 알파벳 순으로, NOSORT 는 호출 순서로 컴파일 |
옵션 간 동등 관계로 REF 는 DIAG 4, LIST 는 DIAG 14, DECK 는 DIAG 17 에 해당한다 [MSC_Nastran_2022.4_Quick_Reference_Guide.pdf p.155]. 또한 NOGO 는 SOL 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].
관련 항목
- Executive Control
- COMPILER
- ALTER
- LINK
- SOL
- DIAG
- DMAP
- MSC Nastran Quick Reference Guide
- MSC Nastran DMAP Programmer’s Guide
- MSC Nastran Reference Guide
출처
- [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 예