New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
#1866 (rnf_b and rnf are the same field in coupled mode - breaks restartability) – NEMO

Opened 7 years ago

Closed 7 years ago

#1866 closed Bug (invalid)

rnf_b and rnf are the same field in coupled mode - breaks restartability

Reported by: timgraham Owned by: nemo
Priority: normal Milestone:
Component: OCE Version: v3.6
Severity: Keywords: restartability coupled_mode
Cc:

Description

Context

In coupled mode the runoff fields are swapped after rnf has been recieved from OASIS. This means that rnf_b and rnf have the same values throughout the rest of the time step (e.g. in sshwzv). Because this doesn't happen on restart timesteps it means that coupled models are not restartable.

Analysis

In sbc_rnf at all time steps except nit000 the rnf fields are swapped and then rnf is read from the input file:

      IF( kt /= nit000 ) THEN                      !          Swap of forcing fields          !
         !                                         ! ---------------------------------------- !
         rnf_b    (:,:  ) = rnf    (:,:  )               ! Swap the ocean forcing fields except at nit000
         rnf_tsc_b(:,:,:) = rnf_tsc(:,:,:)               ! where before fields are set at the end of the routine
         !
      ENDIF

      !                                            !-------------------!
      !                                            !   Update runoff   !
      !                                            !-------------------!
      !
      IF( .NOT. l_rnfcpl )   CALL fld_read ( kt, nn_fsbc, sf_rnf   )    ! Read Runoffs data and provide it at kt
      IF(   ln_rnf_tem   )   CALL fld_read ( kt, nn_fsbc, sf_t_rnf )    ! idem for runoffs temperature if required
      IF(   ln_rnf_sal   )   CALL fld_read ( kt, nn_fsbc, sf_s_rnf )    ! idem for runoffs salinity    if required
      !

In coupled mode rnf is received from OASIS before sbc_rnf is called. rnf_b is then set to the now value of rnf and this is used throughout the model time step. At time step nit000 the correct value of rnf_b is read from the restart file at the end of sbc_rnf and so the results change.

Fix

Perhaps the swap of rnf fields should be moved to the main sbc_mod routine so that it is done before calling sbc_cpl. Any other suggestions welcome.

Commit History (0)

(No commits)

Change History (2)

comment:1 Changed 7 years ago by cetlod

This has been already corrected, see changeset https://forge.ipsl.jussieu.fr/nemo/changeset/6459 

comment:2 Changed 7 years ago by timgraham

  • Resolution set to invalid
  • Status changed from new to closed

Thanks Christian. I looked at my working copy which I didn't realise was out of date.

Note: See TracTickets for help on using tickets.