Size: 1949
Comment:
|
← Revision 27 as of 2016-08-19 08:03:45 ⇥
Size: 2758
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 2: | Line 2: |
Line 4: | Line 3: |
keine Änderungen nötig | . keine Änderungen nötig |
Line 7: | Line 6: |
Line 9: | Line 7: |
Deklarationen zusätzlicher Dimensionen/Representationen | . Deklarationen zusätzlicher Dimensionen/Repraesentationen |
Line 12: | Line 10: |
Anlegen neuer Dimensionen, Dimensionsvariablen und Representationen | . Anlegen neuer Dimensionen, Dimensionsvariablen und Repraesentationen |
Line 15: | Line 13: |
Ergänze ''USE'' und Aufruf der Submodelroutinen: | . Ergänze ''USE'' und Aufruf der Submodelroutinen: |
Line 23: | Line 21: |
* '''messy_main_switch_bi.f90''' * Broadcast des Submodel-Schalters {{{ CALL p_bcast(USE_CLAMSXXX, p_io) }}} |
|
Line 25: | Line 30: |
* Submodel-Interface '''messy_clamsxxx_si.f90''' anlegen | * in '''messy_clams_si.f90''': Setzen von ''lxxxevent'' * Submodel-Interface '''messy_clamsxxx_si.f90''' anlegen |
Line 27: | Line 34: |
* Deklaration der Events für Submodel-Start und Submodel-Output | * Deklaration des Events für Submodel-Start: |
Line 29: | Line 36: |
TYPE(time_event) :: xxxoutevent TYPE(io_time_event) :: io_xxxoutevent }}} |
TYPE(time_event) :: xxxevent TYPE(io_time_event) :: io_xxxevent }}} |
Line 33: | Line 40: |
* ''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 |
* ''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 48: | Line 57: |
* '''messy_clamsxxx.f90''' * subroutine ''clamsxxx_read_nml'': Einlesen der Konfiguration des Submodels * Submodel-HP ''xxx'' * '''messy_main_switch.f90''' * Deklaration des Submodel-Schalters ''LOGICAL :: USE_CLAMSXXX = .false.'' |
* '''messy_clams_global''' * Deklaration von ''lxxxevent'' (Schalter, ob Submodel im aktuellen Zeitschritt läuft oder nicht) * '''messy_clamsxxx.f90''' * ''modver'' und ''modstr'' deklarieren und belegen * 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 (verschoben nach messy_main_switch_bi!) |
Line 55: | Line 73: |
* '''clamsxxx.nml''' mit Namelists CTRL und CPL anlegen * '''switch.nml''' Submodel-Schalter ''USE_CLAMSXXX'' hinzufuegen |
* '''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 |
MESSy/CLaMS: Erstellen eines neuen CLaMS-Submodels
BML
- keine Änderungen nötig
BMIL
messy_main_channel_bi.f90
- Deklarationen zusätzlicher Dimensionen/Repraesentationen
messy_main_channel_clams.inc
- Anlegen neuer Dimensionen, Dimensionsvariablen und Repraesentationen
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:
Setzen 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
modver und modstr deklarieren und belegen
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
- (verschoben nach messy_main_switch_bi!)
- 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