LILAC API

LILAC provides a high-level API (in Fortran) for coupling to CTSM. LILAC was built using the assumption that the Atmosphere model component in each LILAC application would opperate as the “driver”.

The atmosphere component will need to call each of the following subroutines:

  • lilac_init
  • lilac_run
  • lilac_final

LILAC Core

Module

Quick access

Routines:atmos_copy_atm_to_lilac(), atmos_copy_lilac_to_atm(), atmos_final(), atmos_init(), coupler_final(), coupler_init(), coupler_run(), land_final(), land_init(), land_run(), atmos_register(), cpl_register(), land_register()

Needed modules

Types

  • type lilac/unknown_type
    Type fields:
    • % esmf_info [esmfinfotype,private]
    • % name [character,private]

Variables

  • lilac/modname [character,parameter=”(core)”]

Subroutines and functions

subroutine lilac/init(self, name)
Parameters:
  • self
  • name [character,in]
subroutine lilac/run(self)
Parameters:self
subroutine lilac/final(self)
Parameters:self
subroutine lilac/atmos_register(comp, rc)
Parameters:
  • comp [esmf_gridcomp] :: must not be optional
  • rc [integer,out] :: must not be optional
subroutine lilac/land_register(comp, rc)
Parameters:
  • comp [esmf_gridcomp] :: must not be optional
  • rc [integer,out] :: must not be optional
subroutine lilac/cpl_register(comp, rc)
Parameters:
  • comp [esmf_cplcomp] :: must not be optional
  • rc [integer,out] :: must not be optional
subroutine lilac/atmos_init(comp, importstate, exportstate, clock, rc)
Parameters:
  • comp [esmf_gridcomp]
  • importstate [esmf_state]
  • exportstate [esmf_state]
  • clock [esmf_clock]
  • rc [integer,out]
subroutine lilac/land_init(comp, importstate, exportstate, clock, rc)
Parameters:
  • comp [esmf_gridcomp]
  • importstate [esmf_state]
  • exportstate [esmf_state]
  • clock [esmf_clock]
  • rc [integer,out]
subroutine lilac/coupler_init(comp, importstate, exportstate, clock, rc)
Parameters:
  • comp [esmf_cplcomp]
  • importstate [esmf_state]
  • exportstate [esmf_state]
  • clock [esmf_clock]
  • rc [integer,out]
subroutine lilac/atmos_copy_atm_to_lilac(comp, importstate, exportstate, clock, rc)
Parameters:
  • comp [esmf_gridcomp]
  • importstate [esmf_state]
  • exportstate [esmf_state]
  • clock [esmf_clock]
  • rc [integer,out]
subroutine lilac/atmos_copy_lilac_to_atm(comp, importstate, exportstate, clock, rc)
Parameters:
  • comp [esmf_gridcomp]
  • importstate [esmf_state]
  • exportstate [esmf_state]
  • clock [esmf_clock]
  • rc [integer,out]
subroutine lilac/land_run(comp, importstate, exportstate, clock, rc)
Parameters:
  • comp [esmf_gridcomp]
  • importstate [esmf_state]
  • exportstate [esmf_state]
  • clock [esmf_clock]
  • rc [integer,out]
subroutine lilac/coupler_run(comp, importstate, exportstate, clock, rc)
Parameters:
  • comp [esmf_cplcomp]
  • importstate [esmf_state]
  • exportstate [esmf_state]
  • clock [esmf_clock]
  • rc [integer,out]
subroutine lilac/atmos_final(comp, importstate, exportstate, clock, rc)
Parameters:
  • comp [esmf_gridcomp]
  • importstate [esmf_state]
  • exportstate [esmf_state]
  • clock [esmf_clock]
  • rc [integer,out]
subroutine lilac/land_final(comp, importstate, exportstate, clock, rc)
Parameters:
  • comp [esmf_gridcomp]
  • importstate [esmf_state]
  • exportstate [esmf_state]
  • clock [esmf_clock]
  • rc [integer,out]
subroutine lilac/coupler_final(comp, importstate, exportstate, clock, rc)
Parameters:
  • comp [esmf_cplcomp]
  • importstate [esmf_state]
  • exportstate [esmf_state]
  • clock [esmf_clock]
  • rc [integer,out]

ESMF Utils

Module

Quick access

Types:unknown_type
Variables:modname
Routines:final(), run(), init()

Needed modules

  • esmf

Types

  • type esmf_utils/unknown_type
    Type fields:
    • % name [character,private]
    • % atmos_comp [esmf_gridcomp,private]
    • % atmos_export [esmf_state,private]
    • % vm [esmf_vm,private]
    • % land_comp [esmf_gridcomp,private]
    • % land_export [esmf_state,private]
    • % cpl_comp [esmf_cplcomp,private]
    • % land_import [esmf_state,private]
    • % atmos_import [esmf_state,private]

Variables

  • esmf_utils/modname [character,private/parameter=”(esmf_utils)”]

Subroutines and functions

subroutine esmf_utils/init(self, name, atmos_register, land_register, cpl_register)
Parameters:
  • self
  • name [character,in]
  • atmos_register
  • land_register
  • cpl_register
subroutine esmf_utils/run(self)
Parameters:self
subroutine esmf_utils/final(self)
Parameters:self