100      integer, 
intent(out) :: rc
 
  102      TYPE(esmf_gridcomp) :: driver
 
  103      TYPE(esmf_config)   :: config
 
  107      character (len=*), 
parameter :: myfile =                          &
 
  108     &  __FILE__//
", ESM_SetServices" 
  115        WRITE (
trac,
'(a,a,i0)') 
'==> Entering ESM_SetServices',         &
 
  125      CALL nuopc_compderive (driver,                                    &
 
  126     &                       nuopc_setservices,                         &
 
  128      IF (esmf_logfounderror(rctocheck=rc,                              &
 
  129     &                       msg=esmf_logerr_passthru,                  &
 
  141      CALL nuopc_compspecialize (driver,                                &
 
  142     &                           speclabel=nuopc_label_setmodelservices,&
 
  145      IF (esmf_logfounderror(rctocheck=rc,                              &
 
  146     &                       msg=esmf_logerr_passthru,                  &
 
  154      CALL nuopc_compspecialize (driver,                                &
 
  155     &                           speclabel=nuopc_label_setrunsequence,  &
 
  158      IF (esmf_logfounderror(rctocheck=rc,                              &
 
  159     &                       msg=esmf_logerr_passthru,                  &
 
  172      config = esmf_configcreate(rc=rc)
 
  173      IF (esmf_logfounderror(rctocheck=rc,                              &
 
  174     &                       msg=esmf_logerr_passthru,                  &
 
  182      CALL esmf_configloadfile(config,                                  &
 
  185      IF (esmf_logfounderror(rctocheck=rc,                              &
 
  186     &                       msg=esmf_logerr_passthru,                  &
 
  194      CALL esmf_gridcompset(driver,                                     &
 
  197      IF (esmf_logfounderror(rctocheck=rc,                              &
 
  198     &                       msg=esmf_logerr_passthru,                  &
 
  205        WRITE (
trac,
'(a,a,i0)') 
'<== Exiting  ESM_SetServices',         &
 
 
  224      integer, 
intent(out) :: rc
 
  226      TYPE (esmf_gridcomp) :: driver
 
  232      character (len=*), 
parameter :: myfile =                          &
 
  233     &  __FILE__//
", ESM_SetModelServices" 
  235      TYPE (esmf_gridcomp) :: model
 
  236      TYPE (esmf_clock)    :: clock
 
  237      TYPE (esmf_cplcomp)  :: connector
 
  244        WRITE (
trac,
'(a,a,i0)') 
'==> Entering ESM_SetModelServices',    &
 
  255        IF (
models(i)%IsActive) 
THEN 
  256          SELECT CASE (trim(
clabel(i)))
 
  258              CALL nuopc_driveraddcomp (driver,                         &
 
  261     &                                  petlist=
models(i)%PETlist(:),   &
 
  264              IF (esmf_logfounderror(rctocheck=rc,                      &
 
  265     &                               msg=esmf_logerr_passthru,          &
 
  272              CALL nuopc_driveraddcomp (driver,                         &
 
  275     &                                  petlist=
models(i)%PETlist(:),   &
 
  278              IF (esmf_logfounderror(rctocheck=rc,                      &
 
  279     &                               msg=esmf_logerr_passthru,          &
 
  287              CALL nuopc_driveraddcomp (driver,                         &
 
  290     &                                  petlist=
models(i)%PETlist(:),   &
 
  293              IF (esmf_logfounderror(rctocheck=rc,                      &
 
  294     &                               msg=esmf_logerr_passthru,          &
 
  302              CALL nuopc_driveraddcomp (driver,                         &
 
  305     &                                  petlist=
models(i)%PETlist(:),   &
 
  308              IF (esmf_logfounderror(rctocheck=rc,                      &
 
  309     &                               msg=esmf_logerr_passthru,          &
 
  317              CALL nuopc_driveraddcomp (driver,                         &
 
  320     &                                  petlist=
models(i)%PETlist(:),   &
 
  323              IF (esmf_logfounderror(rctocheck=rc,                      &
 
  324     &                               msg=esmf_logerr_passthru,          &
 
  335            CALL esmf_attributeset (model,                              &
 
  336     &                              name=
"Verbosity",                   &
 
  339            IF (esmf_logfounderror(rctocheck=rc,                        &
 
  340     &                             msg=esmf_logerr_passthru,            &
 
  356            CALL nuopc_driveraddcomp (driver,                           &
 
  357     &                      srccomplabel=trim(
models(i)%name),          &
 
  358     &                      dstcomplabel=trim(
models(j)%name),          &
 
  362            IF (esmf_logfounderror(rctocheck=rc,                        &
 
  363     &                             msg=esmf_logerr_passthru,            &
 
  369              CALL esmf_attributeset (connector,                        &
 
  370     &                                name=
"Verbosity",                 &
 
  373              IF (esmf_logfounderror(rctocheck=rc,                      &
 
  374     &                               msg=esmf_logerr_passthru,          &
 
  396     &                         name=
'ESM_clock',                        &
 
  398        IF (esmf_logfounderror(rctocheck=rc,                            &
 
  399     &                         msg=esmf_logerr_passthru,                &
 
  410     &                         name=
'ESM_clock',                        &
 
  412        IF (esmf_logfounderror(rctocheck=rc,                            &
 
  413     &                         msg=esmf_logerr_passthru,                &
 
  421      CALL esmf_gridcompset (driver,                                    &
 
  424      IF (esmf_logfounderror(rctocheck=rc,                              &
 
  425     &                       msg=esmf_logerr_passthru,                  &
 
  432        WRITE (
trac,
'(a,a,i0)') 
'<== Exiting  ESM_SetModelServices',    &
 
 
  452      integer, 
intent(out) :: rc
 
  454      TYPE (esmf_gridcomp)    :: driver
 
  460      real(r8) :: time_step
 
  462      character (len=100)  :: name
 
  464      character (len=*), 
parameter :: myfile =                          &
 
  465     &  __FILE__//
", ESM_SetRunSequence" 
  467      TYPE (esmf_clock)        :: clock
 
  468      TYPE (esmf_config)       :: config
 
  469      TYPE (esmf_timeinterval) :: 
timestep 
  470      TYPE (nuopc_freeformat)  :: runseqff
 
  477        WRITE (
trac,
'(a,a,i0)') 
'==> Entering ESM_SetRunSequence',      &
 
  489      CALL esmf_gridcompget (driver,                                    &
 
  491     &                       localpet=localpet,                         &
 
  493      IF (esmf_logfounderror(rctocheck=rc,                              &
 
  494     &                       msg=esmf_logerr_passthru,                  &
 
  502      CALL esmf_gridcompget (driver,                                    &
 
  505      IF (esmf_logfounderror(rctocheck=rc,                              &
 
  506     &                       msg=esmf_logerr_passthru,                  &
 
  512      runseqff = nuopc_freeformatcreate(config,                         &
 
  513     &                                  label=
'runSeq::',               &
 
  515      IF (esmf_logfounderror(rctocheck=rc,                              &
 
  516     &                       msg=esmf_logerr_passthru,                  &
 
  524      CALL nuopc_driveringestrunsequence (driver,                       &
 
  527      IF (esmf_logfounderror(rctocheck=rc,                              &
 
  528     &                       msg=esmf_logerr_passthru,                  &
 
  531        IF (localpet.eq.0) 
THEN 
  539      CALL esmf_gridcompget (driver,                                    &
 
  542      IF (esmf_logfounderror(rctocheck=rc,                              &
 
  543     &                       msg=esmf_logerr_passthru,                  &
 
  552      CALL esmf_clockget (clock,                                        &
 
  555      IF (esmf_logfounderror(rctocheck=rc,                              &
 
  556     &                       msg=esmf_logerr_passthru,                  &
 
  562      CALL esmf_timeintervalget (
timestep,                              &
 
  565      IF (esmf_logfounderror(rctocheck=rc,                              &
 
  566     &                       msg=esmf_logerr_passthru,                  &
 
  576        IF (localpet.eq.0) 
THEN 
  589        CALL nuopc_driverprint (driver,                                 &
 
  590     &                          orderflag=.true.,                       &
 
  592        IF (esmf_logfounderror(rctocheck=rc,                            &
 
  593     &                         msg=esmf_logerr_passthru,                &
 
  603      CALL nuopc_freeformatdestroy (runseqff,                           &
 
  605      IF (esmf_logfounderror(rctocheck=rc,                              &
 
  606     &                       msg=esmf_logerr_passthru,                  &
 
  613        WRITE (
trac,
'(a,a,i0)') 
'<== Exiting  ESM_SetRunSequence',      &
 
  618 10   
FORMAT (/,
' ESM_SetRunSequence - Error while ingesting',          &
 
  619     &        
' RunSequence configuration file:',/,22x,a,               &
 
  620     &        /,22x,
'Check if connections (->) between components '     &
 
  621     &        
' are needed or not.')
 
  622 20   
FORMAT (/,
' ESM_SetRunSequence - Inconsistent coupling time',     &
 
  623     &        
' step (seconds) from ingested RunSequence:',             &
 
  624     &        /,22x,
'TimeStep = ',f15.8,2x,
'(in ',a,
')',                &
 
  625     &        /,22x,
'TimeStep = ',f15.8,2x,
'(in ',a,
')',                &
 
  626     &        /,22x,
'Correct either input file to the desired value.',  &
 
  627     &        /,22x,
'The value needs to be the same in both files!')