ICON Community Interface 0.4.0
Loading...
Searching...
No Matches
applist.html
Go to the documentation of this file.
1<!DOCTYPE html>
2<html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <link rel="stylesheet" href="applist_styles.css">
7 <script src="https://cdnjs.cloudflare.com/ajax/libs/js-yaml/4.1.0/js-yaml.min.js"></script>
8
9 <!--
10 ----------------------------------------------------
11 TABLE OF COMIN APPLICATIONS
12 ----------------------------------------------------
13 -->
14
15 <script>
16 const data = jsyaml.load(`
17 - name: simple_fortran
18 language: Fortran
19 type: Tutorial
20 author: ICON-Comin
21 year: 2024
22 description: None
23 url: https://gitlab.dkrz.de/icon-comin/comin/-/tree/master/plugins
24 status: active
25 cominversion: 0.2.0
26
27 - name: calc_water_column
28 language: Fortran
29 type: Tutorial
30 author: ICON-Comin
31 year: 2024
32 description: Simple diagnostic application, calculating the liquid water path, the ice water path, and the total water column.
33 url: https://gitlab.dkrz.de/icon-comin/comin/-/tree/master/plugins
34 status: active
35 cominversion: 0.2.0
36
37 - name: yaxt_fortran
38 language: Fortran
39 type: Tutorial
40 author: ICON-Comin
41 year: 2024
42 description: Example plugin to demonstrate the usage of the YAXT communication library.
43 url: https://gitlab.dkrz.de/icon-comin/comin/-/tree/master/plugins
44 status: active
45 cominversion: 0.2.0
46
47 - name: simple_c
48 language: C/C++
49 type: Tutorial
50 author: ICON-Comin
51 year: 2024
52 description: None
53 url: https://gitlab.dkrz.de/icon-comin/comin/-/tree/master/plugins
54 status: active
55 cominversion: 0.2.0
56
57 - name: yac_input
58 language: C/C++
59 type: Tutorial
60 author: ICON-Comin
61 year: 2024
62 description: Plugin written in C which encapsulates a YAC coupling inside a ComIn plugin.
63 url: https://gitlab.dkrz.de/icon-comin/comin/-/tree/master/plugins
64 status: active
65 cominversion: 0.2.0
66
67 - name: yaxt_c
68 language: C/C++
69 type: Tutorial
70 author: ICON-Comin
71 year: 2024
72 description: Plugin written in C to demonstrate using the YAXT communication library.
73 url: https://gitlab.dkrz.de/icon-comin/comin/-/tree/master/plugins
74 status: active
75 cominversion: 0.2.0
76
77 - name: simple_python_plugin
78 language: Python
79 type: Tutorial
80 author: ICON-Comin
81 year: 2024
82 description: None
83 url: https://gitlab.dkrz.de/icon-comin/comin/-/tree/master/plugins
84 status: active
85 cominversion: 0.2.0
86
87 - name: point_source
88 language: Python
89 type: Tutorial
90 author: ICON-Comin
91 year: 2024
92 description: Test plugin requesting a tracer that participates in ICON’s turbulence and convection scheme. This plugin also shows how a grid point search in Python using <a href="https://scipy.org/">SciPy</a> can be done.
93 url: https://gitlab.dkrz.de/icon-comin/comin/-/tree/master/plugins
94 status: active
95 cominversion: 0.2.0
96
97 - name: Hands-On Exercises
98 language: Python, Jupyter Notebooks
99 type: Tutorial
100 author: ICON-Comin
101 year: 2024
102 description: Example plugins including the use of matplotlib, mpi4py
103 url: https://gitlab.dkrz.de/icon-comin/comin-training-exercises
104 status: active
105 cominversion: 0.1.0
106
107 - name: MESSy Adapter
108 language: Fortran
109 type: Framework Adapter
110 author: DLR-IPA
111 year: 2024
112 description: Adapter for the Modular Earth Submodel System (MESSy)
113 url:
114 status: active
115 cominversion: 0.2.0
116
117 - name: Prometheus Exporter
118 language: C/C++
119 type: Visualization
120 author: DWD
121 year: 2023
122 description: Online monitoring within Grafana/Prometheus
123 url:
124 status: discontinued
125 cominversion: pre-0.1.0
126
127 - name: Catalyst Adapter
128 language: C/C++
129 type: Visualization
130 author: DKRZ
131 year: 2024
132 description: In situ visualization with Paraview/Catalyst
133 url: https://gitlab.dkrz.de/icon-comin/catalyst_adapter
134 status: active
135 cominversion:
136
137 - name: Solar Eclipse
138 language: Python
139 type: prognostic (prototype)
140 author: DWD
141 year: tbd.
142 description: considering solar eclipse in the insolation
143 url:
144 status: to be developed
145 cominversion:
146
147 - name: calc_pot_etp
148 language: Python
149 type: diagnostic
150 author: CLM / UDAG project
151 year: tbd.
152 description: Calculation of potential evapotranspiration
153 url:
154 status: to be developed
155 cominversion:
156
157 - name: cell tracking
158 language: Fortran
159 type: diagnostic
160 author: CLM / UDAG project
161 year: tbd.
162 description: cell tracking based on 5min precipitation output
163 url:
164 status: to be developed
165 cominversion:
166
167 - name: proimpact 5 min prec
168 language: Python
169 type: diagnostic
170 author: ProImpact / Felipe Navarrete
171 year: 2025
172 description: 5min precipitation diagnostic
173 url: https://github.com/felipehnn/proimpact_comin
174 status: active
175 cominversion: 0.3.0
176
177 - name: WindWaker
178 language: C++
179 type: Physics
180 author: DWD
181 year: 2025
182 description: Model wakes of offshore wind farms
183 url: https://gitlab.dkrz.de/b381588/windwaker
184 status: active
185 cominversion: 0.3.0
186 `)
187
188 const title_names = {
189 name : 'Name',
190 language : 'Programming Language',
191 type : 'Type',
192 author : 'Author',
193 year : 'Year',
194 description : 'Description',
195 url : 'URL',
196 status : 'Status',
197 cominversion: 'ComIn version',
198 };
199 </script>
200 </head>
201
202 <!--
203 ----------------------------------------------------
204 JAVASCRIPT PART - DO NOT MODIFY BELOW THIS LINE!
205 ----------------------------------------------------
206 -->
207
208 <body>
209 <div id="tableContainer"></div>
210 <script>
211 // Function to create a table from the parsed YAML data
212 function createTable(data, header_mapping) {
213 if (!Array.isArray(data)) {
214 console.error('YAML data is not an array of objects');
215 return;
216 }
217
218 const keys = [...new Set(data.flatMap(Object.keys))];
219 let tableHTML = '<table id="myTable" class="styled-table"><thead><tr>';
220
221 // Create table header
222 keys.forEach(key => {
223 tableHTML += `<th>${header_mapping[key] || key}</th>`;
224 });
225 tableHTML += '</tr></thead>';
226
227 // Create table rows
228 const prekey = { url : '<a class="styled-link" " href="' };
229 const postkey = { url : '"></a>' };
230 data.forEach(item => {
231 tableHTML += '<tr>';
232 keys.forEach(key => {
233 tableHTML += `<td>${prekey[key] || ''}${item[key] || ''}${postkey[key] || ''}</td>`;
234 });
235 tableHTML += '</tr>';
236 });
237
238 tableHTML += '</table>';
239 document.getElementById('tableContainer').innerHTML = tableHTML;
240 }
241
242 function setupTable() {
243 createTable(data, title_names);
244
245 // // fetch and parse the YAML file
246 // // (variant when no CORS restriction applies:)
247 // fetch('data.yaml')
248 // .then(response => response.text())
249 // .then(text => {
250 // const data = jsyaml.load(text);
251 // createTable(data);
252 // })
253 // .catch(error => console.error('Error loading YAML file:', error));
254
255 document.addEventListener('DOMContentLoaded', function() {
256 const table = document.getElementById('myTable');
257 const headers = table.querySelectorAll('thead th');
258 const tbody = table.querySelector('tbody');
259
260 headers.forEach(header => {
261 header.addEventListener('click', () => {
262 const column = header.cellIndex;
263 const rows = Array.from(tbody.querySelectorAll('tr'));
264
265 const isAscending = header.classList.contains('sorted-asc');
266
267 rows.sort((a, b) => {
268 const aValue = a.cells[column].textContent.trim();
269 const bValue = b.cells[column].textContent.trim();
270 return isAscending
271 ? bValue.localeCompare(aValue, undefined, {numeric: true, sensitivity: 'base'})
272 : aValue.localeCompare(bValue, undefined, {numeric: true, sensitivity: 'base'});
273 });
274
275 headers.forEach(h => h.classList.remove('sorted-asc', 'sorted-desc'));
276 header.classList.toggle('sorted-asc', !isAscending);
277 header.classList.toggle('sorted-desc', isAscending);
278
279 tbody.append(...rows);
280 });
281 });
282 });
283 }
284
285 setupTable(); // function to create a table from the parsed YAML data
286 </script>
287 </body>
288</html>