Differences between revisions 1 and 23 (spanning 22 versions)
Revision 1 as of 2014-12-10 08:26:50
Size: 1761
Editor: NicoleThomas
Comment:
Revision 23 as of 2015-01-22 12:31:22
Size: 2327
Editor: NicoleThomas
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/Representationen
Line 12: Line 10:
  Anlegen neuer Dimensionen, Dimensionsvariablen und Representationen   . Anlegen neuer Dimensionen, Dimensionsvariablen und Representationen
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
  * Variablendeklaration (Variablen für eigene oder gekoppelte Channelobjekte)
  * Deklaration der Events für Submodel-Start und Submodel-Output
  {{{
 * Submodel-Interface '''messy_clamsxxx_si.f90''' anlegen
 * Variablendeklaration (Variablen für eigene oder gekoppelte Channelobjekte)
 * Deklaration der Events für Submodel-Start und Submodel-Output
 {{{
Line 31: Line 36:
 }}}
  * 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
  * ''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
Line 48: Line 53:
    * '''messy_clamsxxx.f90'''
      * subroutine ''clamsxxx_read_nml'': Einlesen der Konfiguration des Submodels
    * Submodel-HP ''xxx''
 * '''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 sedi einbinden
Line 53: Line 65:
    * '''clamsxxx.nml''' mit Namelists CTRL und CPL anlegen  * '''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/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)

SMIL

  • Submodel-Interface messy_clamsxxx_si.f90 anlegen

  • 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
  • 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

SMCL

  • 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 sedi einbinden

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

messy/NewSubmodel (last edited 2016-08-19 08:03:45 by NicoleThomas)