Size: 2050
Comment:
|
Size: 2659
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 30: | Line 30: |
* in '''messy_clams_si.f90''': Deklaration von ''lxxxevent'' |
|
Line 31: | Line 33: |
* Variablendeklaration (Variablen für eigene oder gekoppelte Channelobjekte) * Deklaration der Events für Submodel-Start und Submodel-Output {{{ TYPE(time_event) :: xxxoutevent TYPE(io_time_event) :: io_xxxoutevent |
* Variablendeklaration (Variablen für eigene oder gekoppelte Channelobjekte) * Deklaration des Events für Submodel-Start: {{{ TYPE(time_event) :: xxxevent TYPE(io_time_event) :: io_xxxevent |
Line 37: | Line 39: |
* Folgende Subroutines anlegen: * ''clamsxxx_setup ''(evtl.) * ''clamsxxx_initialize'' . ''clamsxxx_read_nml'' aufrufen * ''clamsxxx_init_memory'' . Anlegen von Channels/Channelobjekten * ''clamsxxx_init_coupling'' . Koppeln von Channelobjekten aus Channels anderer Submodule * ''clamsxxx_global_start'' (evtl.) * ''clamsxxx_global_end'' . Aufruf des Submodel-HP ''xxx'' * ''clamsxxx_free_memory'' . Freigeben aller im Submodel allokierten Variablen * evtl. weitere auf SMIL-Ebene genutzte Routinen |
* Folgende Subroutines anlegen: * ''clamsxxx_setup ''(evtl.) * ''clamsxxx_initialize'' * ''clamsxxx_read_nml'' aufrufen * Event für Submodel-Start initialisieren mit ''timer_event_init'' * ''clamsxxx_init_memory'' . Anlegen von Channels/Channelobjekten * ''clamsxxx_init_coupling'' . Koppeln von Channelobjekten aus Channels anderer Submodule * ''clamsxxx_global_start'' (evtl.) * ''clamsxxx_global_end'' * Start des Submodels, wenn ''lxxxevent'' gesetzt ist * Aufruf des Submodel-HP ''xxx'' * ''clamsxxx_free_memory'' . Freigeben aller im Submodel allokierten Variablen * evtl. weitere auf SMIL-Ebene genutzte Routinen |
Line 53: | Line 57: |
* '''messy_clams_global''' * Deklaration von ''lxxxevent'' (Schalter, ob Submodel im aktuellen Zeitschritt läuft oder nicht) |
|
Line 61: | Line 67: |
* USE_CLAMSXXX zu Namelist hinzufügen * in subroutine ''switch_init'': ''modstr'' und ''modver'' aus Submodel einbinden |
|
Line 65: | Line 73: |
== Allgemeines == alle neu erstellten Dateien aus den jeweiligen CLaMS-Unterverzeichnissen in die entsprechenden messy-Unterverzeichnisse verlinken |
MESSy/CLaMS: Erstellen eines neuen CLaMS-Submodels
BML
- keine Änderungen nötig
BMIL
messy_main_channel_bi.f90
- Deklarationen zusätzlicher Dimensionen/Representationen
messy_main_channel_clams.inc
- Anlegen neuer Dimensionen, Dimensionsvariablen und Representationen
messy_main_control_clams.f90
Ergänze USE und Aufruf der Submodelroutinen:
clamsxxx_setup (evtl.)
clamsxxx_initialize
clamsxxx_init_memory
clamsxxx_init_coupling
clamsxxx_global_start (evtl.)
clamsxxx_global_end
clamsxxx_free_memory
messy_main_switch_bi.f90
- Broadcast des Submodel-Schalters
CALL p_bcast(USE_CLAMSXXX, p_io)
- Broadcast des Submodel-Schalters
SMIL
in messy_clams_si.f90:
Deklaration von lxxxevent
Submodel-Interface messy_clamsxxx_si.f90 anlegen
- Variablendeklaration (Variablen für eigene oder gekoppelte Channelobjekte)
- Deklaration des Events für Submodel-Start:
TYPE(time_event) :: xxxevent TYPE(io_time_event) :: io_xxxevent
- Folgende Subroutines anlegen:
clamsxxx_setup (evtl.)
clamsxxx_initialize
clamsxxx_read_nml aufrufen
Event für Submodel-Start initialisieren mit timer_event_init
clamsxxx_init_memory
- Anlegen von Channels/Channelobjekten
clamsxxx_init_coupling
- Koppeln von Channelobjekten aus Channels anderer Submodule
clamsxxx_global_start (evtl.)
clamsxxx_global_end
Start des Submodels, wenn lxxxevent gesetzt ist
Aufruf des Submodel-HP xxx
clamsxxx_free_memory
- Freigeben aller im Submodel allokierten Variablen
- evtl. weitere auf SMIL-Ebene genutzte Routinen
SMCL
messy_clams_global
Deklaration von lxxxevent (Schalter, ob Submodel im aktuellen Zeitschritt läuft oder nicht)
messy_clamsxxx.f90
subroutine clamsxxx_read_nml: Einlesen der Konfiguration des Submodels
Submodel-HP xxx
messy_main_switch.f90
- Default-Deklaration des Submodel-Schalters
LOGICAL :: USE_CLAMSXXX = .false.
- USE_CLAMSXXX zu Namelist hinzufügen
in subroutine switch_init: modstr und modver aus Submodel einbinden
- Default-Deklaration des Submodel-Schalters
Namelists
clamsxxx.nml mit Namelists CTRL und CPL anlegen
switch.nml Submodel-Schalter USE_CLAMSXXX hinzufuegen
Allgemeines
alle neu erstellten Dateien aus den jeweiligen CLaMS-Unterverzeichnissen in die entsprechenden messy-Unterverzeichnisse verlinken