diff --git a/src/TOP/AGE/trcsms_age.F90 b/src/TOP/AGE/trcsms_age.F90 index dec67f35f3115a076f51163c2fe77e798ea4e14c..583e551aef929e2920cfee1e0d86078c9dbe3e00 100644 --- a/src/TOP/AGE/trcsms_age.F90 +++ b/src/TOP/AGE/trcsms_age.F90 @@ -54,12 +54,7 @@ CONTAINS IF(lwp) WRITE(numout,*) IF(lwp) WRITE(numout,*) ' trc_sms_age: AGE model' IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' - - IF( l_1st_euler .OR. ln_top_euler ) THEN - tr(:,:,:,jp_age,Kbb) = tr(:,:,:,jp_age,Kmm) - ENDIF - - + ! DO jk = 1, nla_age tr(:,:,jk,jp_age,Krhs) = rn_age_kill_rate * tr(:,:,jk,jp_age,Kbb) END DO diff --git a/src/TOP/PISCES/P4Z/p4zsms.F90 b/src/TOP/PISCES/P4Z/p4zsms.F90 index 664d1206425e423a46c6d4909bea415b14e8ffdd..32a3c6fbac65ca672e5782a096564e4f45633bd3 100644 --- a/src/TOP/PISCES/P4Z/p4zsms.F90 +++ b/src/TOP/PISCES/P4Z/p4zsms.F90 @@ -104,13 +104,7 @@ CONTAINS IF(lwp) write(numout,*) ' PISCES Biology time step rfact2 = ', rfact2 IF(lwp) WRITE(numout,*) ENDIF - - IF( l_1st_euler .OR. ln_top_euler ) THEN - DO jn = jp_pcs0, jp_pcs1 ! SMS on tracer without Asselin time-filter - tr(:,:,:,jn,Kbb) = tr(:,:,:,jn,Kmm) - END DO - ENDIF - + ! DO jn = jp_pcs0, jp_pcs1 ! Store the tracer concentrations before entering PISCES ztrbbio(:,:,:,jn) = tr(:,:,:,jn,Kbb) END DO diff --git a/src/TOP/trcrst.F90 b/src/TOP/trcrst.F90 index 40a0d964d15828a5dea7a47807f60b86dd57e348..a62402184840376dfb0cebe757bb1c85c3de2ceb 100644 --- a/src/TOP/trcrst.F90 +++ b/src/TOP/trcrst.F90 @@ -133,9 +133,14 @@ CONTAINS CALL iom_get( numrtr, jpdom_auto, 'TRN'//ctrcnm(jn), tr(:,:,:,jn,Kmm) ) END DO - DO jn = 1, jptra - CALL iom_get( numrtr, jpdom_auto, 'TRB'//ctrcnm(jn), tr(:,:,:,jn,Kbb) ) - END DO + IF( l_1st_euler .OR. ln_top_euler ) THEN + IF(lwp) WRITE(numout,*) ' + adjustment for forward Euler time stepping' + tr(:,:,:,1:jptra,Kbb) = tr(:,:,:,1:jptra,Kmm) + ELSE + DO jn = 1, jptra + CALL iom_get( numrtr, jpdom_auto, 'TRB'//ctrcnm(jn), tr(:,:,:,jn,Kbb) ) + END DO + END IF ! IF(.NOT.lrxios) CALL iom_delay_rst( 'READ', 'TOP', numrtr ) ! read only TOP delayed global communication variables END SUBROUTINE trc_rst_read diff --git a/src/TOP/trcstp.F90 b/src/TOP/trcstp.F90 index 124269c63a1107824dc2ff42089ed503bd7bdb4c..5d448290a0d187c226a88d3556c96cc77e9e68b4 100644 --- a/src/TOP/trcstp.F90 +++ b/src/TOP/trcstp.F90 @@ -115,7 +115,6 @@ CONTAINS IF(lrxios) CALL iom_context_finalize( cr_toprst_cxt ) IF(lwm) CALL FLUSH( numont ) ! flush namelist output ENDIF - IF( lrst_trc ) CALL trc_rst_wri ( kt, Kmm, Kaa, Kbb ) ! write tracer restart file IF( lk_trdmxl_trc ) CALL trd_mxl_trc ( kt, Kaa ) ! trends: Mixed-layer ! IF( ln_top_euler ) THEN @@ -125,6 +124,8 @@ CONTAINS tr(:,:,:,:,Kmm) = tr(:,:,:,:,Kaa) ENDIF ! + IF( lrst_trc ) CALL trc_rst_wri( kt, Kmm, Kaa, Kbb ) ! write tracer restart file + ! IF (ll_trcstat) THEN ztrai = 0._wp ! content of all tracers DO jn = 1, jptra