id summary reporter owner description type status priority milestone component version severity resolution keywords cc 1849 SSH IAU does not turn off at time-step specified by nitiaufin charris djlea "= Context = The nitaufin namelist setting is supposed to allow IAU to be turned off at a particular time-step. However for SSH this doesn't work and the IAU adjustment intended for the last time-step of the IAU is applied every time-step for the rest of the run. = Analysis = In https://forge.ipsl.jussieu.fr/nemo/browser/trunk/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90 the code below means that after the IAU is supposed to have finished ssh_iau (as applied in e.g. sshwzv or dynspg_ts) retains the value it had at the end of the IAU instead of being set to zero. {{{ IF ( ( kt >= nitiaustr_r ).AND.( kt <= nitiaufin_r ) ) THEN ! it = kt - nit000 + 1 zincwgt = wgtiau(it) / rdt ! IAU weight for the current time step ! IF(lwp) THEN WRITE(numout,*) WRITE(numout,*) 'ssh_asm_inc : SSH IAU at time step = ', & & kt,' with IAU weight = ', wgtiau(it) WRITE(numout,*) '~~~~~~~~~~~~' ENDIF ! ! Save the tendency associated with the IAU weighted SSH increment ! (applied in dynspg.*) #if defined key_asminc ssh_iau(:,:) = ssh_bkginc(:,:) * zincwgt #endif IF ( kt == nitiaufin_r ) THEN DEALLOCATE( ssh_bkginc ) ENDIF ! ENDIF }}} = Fix = The code above should be replaced by something like the following: {{{ IF ( ( kt >= nitiaustr_r ).AND.( kt <= nitiaufin_r ) ) THEN ! it = kt - nit000 + 1 zincwgt = wgtiau(it) / rdt ! IAU weight for the current time step ! IF(lwp) THEN WRITE(numout,*) WRITE(numout,*) 'ssh_asm_inc : SSH IAU at time step = ', & & kt,' with IAU weight = ', wgtiau(it) WRITE(numout,*) '~~~~~~~~~~~~' ENDIF ! ! Save the tendency associated with the IAU weighted SSH increment ! (applied in dynspg.*) #if defined key_asminc ssh_iau(:,:) = ssh_bkginc(:,:) * zincwgt #endif IF ( kt == nitiaufin_r ) THEN DEALLOCATE( ssh_bkginc ) ENDIF ! ELSE ! ssh_iau(:,:) = 0.e0 ! ENDIF }}} " Bug closed low OCE v3.6 fixed ASM djlea mattmartin