11esma_set_this ()
22
3-
4- list ( APPEND WW3ESMF_FTN
5- constants.ftn
6- w3adatmd.ftn
7- w3arrymd.ftn
8- w3cspcmd.ftn
9- w3dispmd.ftn
10- w3fldsmd.ftn
11- w3flx1md.ftn
12- w3gdatmd.ftn
13- w3gsrumd.ftn
14- w3idatmd.ftn
15- w3initmd.ftn
16- w3iobcmd.ftn
17- w3iogomd.ftn
18- w3iogrmd.ftn
19- w3iopomd.ftn
20- w3iorsmd.ftn
21- w3iosfmd.ftn
22- w3iotrmd.ftn
23- w3nmlmultimd.ftn
24- w3odatmd.ftn
25- w3parall.ftn
26- w3partmd.ftn
27- w3pro3md.ftn
28- w3profsmd.ftn
29- w3sbt1md.ftn
30- w3sdb1md.ftn
31- w3servmd.ftn
32- w3snl1md.ftn
33- w3sln1md.ftn
34- w3fld1md.ftn
35- w3fld2md.ftn
36- w3src4md.ftn
37- w3srcemd.ftn
38- w3timemd.ftn
39- w3triamd.ftn
40- w3updtmd.ftn
41- w3uqckmd.ftn
42- w3wavemd.ftn
43- w3wdasmd.ftn
44- w3wdatmd.ftn
45- wmmaplmd.ftn
46- wmfinlmd.ftn
47- wmgridmd.ftn
48- wminiomd.ftn
49- wminitmd.ftn
50- wmiopomd.ftn
51- wmmdatmd.ftn
52- wmscrpmd.ftn
53- wmunitmd.ftn
54- wmupdtmd.ftn
55- wmwavemd.ftn
3+ list ( APPEND WW3ESMF_SRCS
4+ constants.F90
5+ w3adatmd.F90
6+ w3arrymd.F90
7+ w3cspcmd.F90
8+ w3dispmd.F90
9+ w3fldsmd.F90
10+ w3gdatmd.F90
11+ w3flx1md.F90
12+ w3gsrumd.F90
13+ w3idatmd.F90
14+ w3initmd.F90
15+ w3iobcmd.F90
16+ w3iogomd.F90
17+ w3iogrmd.F90
18+ w3iopomd.F90
19+ w3iorsmd.F90
20+ w3iosfmd.F90
21+ w3iotrmd.F90
22+ w3nmlmultimd.F90
23+ w3odatmd.F90
24+ w3parall.F90
25+ w3partmd.F90
26+ w3pro3md.F90
27+ w3profsmd.F90
28+ w3sbt1md.F90
29+ w3sdb1md.F90
30+ w3servmd.F90
31+ w3snl1md.F90
32+ w3sln1md.F90
33+ w3fld1md.F90
34+ w3fld2md.F90
35+ w3src4md.F90
36+ w3srcemd.F90
37+ w3timemd.F90
38+ w3triamd.F90
39+ w3updtmd.F90
40+ w3uqckmd.F90
41+ w3wavemd.F90
42+ w3wdasmd.F90
43+ w3wdatmd.F90
44+ wmmaplmd.F90
45+ wmfinlmd.F90
46+ wmgridmd.F90
47+ wminiomd.F90
48+ wminitmd.F90
49+ wmiopomd.F90
50+ wmmdatmd.F90
51+ wmscrpmd.F90
52+ wmunitmd.F90
53+ wmupdtmd.F90
54+ wmwavemd.F90
5655 SCRIP/scrip_constants.f
5756 SCRIP/scrip_errormod.f90
5857 SCRIP/scrip_grids.f
59- SCRIP/scrip_interface.ftn
58+ SCRIP/scrip_interface.F90
6059 SCRIP/scrip_iounitsmod.f90
6160 SCRIP/scrip_kindsmod.f90
6261 SCRIP/scrip_netcdfmod.f90
@@ -70,40 +69,65 @@ list( APPEND WW3ESMF_FTN
7069esma_mepo_style(ww3 WW3_rel_path REL_PATH ..)
7170set (WW3_path ${CMAKE_CURRENT_SOURCE_DIR} /${WW3_rel_path} )
7271
73- get_filename_component (aux_dir ${WW3_path} /model/aux ABSOLUTE )
74- get_filename_component (ftn_dir ${WW3_path} /model/ftn ABSOLUTE )
75-
76- message (DEBUG "WW3 aux_dir ${aux_dir} " )
77- message (DEBUG "WW3 ftn_dir ${ftn_dir} " )
78-
79- add_executable (w3adc "${aux_dir} /w3adc.f" )
80-
81- set (WW3ESMF_F90)
82- foreach (src_file ${WW3ESMF_FTN} )
83- STRING (REGEX REPLACE ".ftn" ".F90" gen_src_file ${src_file} )
84- STRING (REGEX REPLACE "/" "_" gen_log_file ${gen_src_file} )
85- # Testing shows that we only want BYPRODUCTS here if our CMAKE_GENERATOR is Unix Makefiles
86- # If we use Ninja, we don't want BYPRODUCTS
87- if (CMAKE_GENERATOR STREQUAL "Unix Makefiles" )
88- set (BYPRODUCTS ${gen_src_file} )
89- else ()
90- set (BYPRODUCTS "" )
91- endif ()
92- add_custom_command (
93- OUTPUT ${gen_src_file}
94- BYPRODUCTS ${BYPRODUCTS}
95- DEPENDS w3adc ${ftn_dir} /${src_file}
96- COMMAND ${CMAKE_CURRENT_SOURCE_DIR} /run_w3adc.sh ${ftn_dir} ${src_file} > ${gen_log_file} .w3adc.log 2>&1
97- COMMENT "Running w3adc ${src_file} " )
98- list (APPEND WW3ESMF_F90 ${gen_src_file} )
72+ set (SRCS)
73+ foreach (src_file ${WW3ESMF_SRCS} )
74+ list (APPEND SRCS ${WW3_path} /model/src/${src_file} )
75+ # message(STATUS "WW3::file ${src_file}")
76+ # message(STATUS "WW3::file ${WW3_path}/model/src/${src_file}")
77+ # message(STATUS "")
9978endforeach ()
10079
101-
10280esma_add_library (${this}
103- SRCS ${WW3ESMF_F90 }
81+ SRCS ${SRCS }
10482 DEPENDENCIES MAPL ESMF::ESMF NetCDF::NetCDF_Fortran
10583 )
10684
107- target_include_directories (${this} PRIVATE
108- $<BUILD_INTERFACE:${ftn_dir} >
85+
86+ set (switch_strings "NOGRB DIST MPI SCRIP PR3 UQ FLX0 LN1 FLD2 ST4 STAB0 NL1 BT1 DB1 MLIM TR0 BS0 XX0 WNX0 WNT0 CRX0 CRT0 O0 O1 O2 O3 O4 O5 O6 O7 IC0 IS0 REF0" )
87+
88+ set_property (SOURCE ${WW3_path} /model/src/w3initmd.F90
89+ APPEND
90+ PROPERTY COMPILE_DEFINITIONS
91+ "__WW3_SWITCHES__=\' ${switch_strings} \' "
10992 )
93+
94+
95+ list (APPEND defs
96+ W3_NOGRB
97+ W3_DIST
98+ W3_MPI
99+ W3_SCRIP
100+ W3_PR3
101+ W3_UQ
102+ W3_FLX0
103+ W3_LN1
104+ W3_FLD2
105+ W3_ST4
106+ W3_STAB0
107+ W3_NL1
108+ W3_BT1
109+ W3_DB1
110+ W3_MLIM
111+ W3_TR0
112+ W3_BS0
113+ W3_XX0
114+ W3_WNX0
115+ W3_WNT0
116+ W3_CRX0
117+ W3_CRT0
118+ W3_O0
119+ W3_O1
120+ W3_O2
121+ W3_O3
122+ W3_O4
123+ W3_O5
124+ W3_O6
125+ W3_O7
126+ W3_IC0
127+ W3_IS0
128+ W3_REF0
129+ )
130+
131+ target_compile_definitions (${this} PRIVATE ${defs} )
132+
133+
0 commit comments