| 452 | |
| 453 | Next we arrive at sbc_rnf in SBC/sbcrnf.F90 where it seems our rnf_b diverges. |
| 454 | |
| 455 | There's a suspicious looking bit of code in here which does; |
| 456 | |
| 457 | {{{ |
| 458 | IF( kt == nit000 ) THEN ! set the forcing field at nit000 - 1 ! |
| 459 | ! ! ---------------------------------------- ! |
| 460 | IF( ln_rstart .AND. & !* Restart: read in restart file |
| 461 | & iom_varid( numror, 'rnf_b', ldstop = .FALSE. ) > 0 ) THEN |
| 462 | IF(lwp) WRITE(numout,*) ' nit000-1 runoff forcing fields red in the restart file' |
| 463 | CALL iom_get( numror, jpdom_autoglo, 'rnf_b', rnf_b ) ! before runoff |
| 464 | CALL iom_get( numror, jpdom_autoglo, 'rnf_hc_b', rnf_tsc_b(:,:,jp_tem) ) ! before heat content of runoff |
| 465 | CALL iom_get( numror, jpdom_autoglo, 'rnf_sc_b', rnf_tsc_b(:,:,jp_sal) ) ! before salinity content of runoff |
| 466 | ELSE !* no restart: set from nit000 values |
| 467 | IF(lwp) WRITE(numout,*) ' nit000-1 runoff forcing fields set to nit000' |
| 468 | rnf_b (:,: ) = rnf (:,: ) |
| 469 | rnf_tsc_b(:,:,:) = rnf_tsc(:,:,:) |
| 470 | ENDIF |
| 471 | ENDIF |
| 472 | }}} |
| 473 | |
| 474 | So this lump of code can only be called on the first TS after a restart... putting writes in here confirms that it is and that the first IF condition qualifies so it's reading rnf_b and rnf_tsc_b |
| 475 | from the dump. However it seems that if it wasn't reading the dump it wants to transfer rnf to rnf_b and rnf_tsc to rnf_tsc_b. I don't get how that can make sense. |
| 476 | |
| 477 | If it's the first TS of a restart where's it getting its values from? Ancillaries? Maybe it's OK. |