Bugfixes in trcbc.F90

This commit is contained in:
Robinson Hordoir 2026-04-15 10:38:18 +02:00
parent 933932fd6a
commit ce9a302883

View File

@ -75,7 +75,9 @@ CONTAINS
!
CHARACTER(len=100) :: cn_dir_sbc, cn_dir_cbc, cn_dir_obc
TYPE(FLD_N), ALLOCATABLE, DIMENSION(:) :: slf_i ! local array of namelist informations on the fields to read
TYPE(FLD_N), DIMENSION(jp_bdy) :: sn_trcobc ! open
!!! TYPE(FLD_N), DIMENSION(jp_bdy) :: sn_trcobc ! open
TYPE(FLD_N), DIMENSION(jpmaxtrc) :: sn_trcobc ! open Robinson
!!!
TYPE(FLD_N), DIMENSION(jpmaxtrc) :: sn_trcsbc ! surface
TYPE(FLD_N), DIMENSION(jpmaxtrc) :: sn_trccbc ! coastal
REAL(wp) , DIMENSION(jpmaxtrc) :: rn_trofac ! multiplicative factor for tracer values
@ -208,7 +210,8 @@ CONTAINS
!
IF( ln_trc_obc(jn) ) THEN !* Initialise from external data *!
jl = n_trc_indobc(jn)
slf_i(jl) = sn_trcobc(ib)
!!slf_i(jl) = sn_trcobc(ib)
slf_i(jl) = sn_trcobc(jn) !Robinson
slf_i(jl)%clvar = TRIM(cn_tronam(jn))
rf_trofac(jl) = rn_trofac(jn)
ALLOCATE( sf_trcobc(jl,ib)%fnow(nblen,1,jpk) , STAT=ierr2 )
@ -217,8 +220,8 @@ CONTAINS
CALL ctl_stop( 'trc_bc_ini : unable to allocate passive tracer OBC data arrays' ) ; RETURN
ENDIF
trcdta_bdy(jn,ib)%trc => sf_trcobc(jl,ib)%fnow(:,1,:)
trcdta_bdy(jn,ib)%rn_fac = rf_trofac(jl)
ELSE !* Initialise obc arrays from initial conditions *!
trcdta_bdy(jn,ib)%rn_fac = rf_trofac(jl)
ELSE !* Initialise obc arrays from initial conditions *!
ALLOCATE ( trcdta_bdy(jn,ib)%trc(nblen,jpk) )
DO ibd = 1, nblen
DO ik = 1, jpkm1
@ -415,8 +418,8 @@ CONTAINS
sf_trccbc(jl)%fnow(:,:,1) = MAX( rtrn, sf_trccbc(jl)%fnow(:,:,1) ) ! avoid nedgative value due to interpolation
DO_2D( 0, 0, 0, 1 )
DO jk = 1, nk_rnf(ji,jj)
zfact = rn_rfact / ( e1e2t(ji,jj) * h_rnf(ji,jj) * rn_cbc_time )
ptr(ji,jj,jk,jn,Krhs) = ptr(ji,jj,jk,jn,Krhs) + rf_trcfac(jl) * sf_trccbc(jl)%fnow(ji,jj,1) * zfact
zfact = rn_rfact / ( e1e2t(ji,jj) * h_rnf(ji,jj) * rn_cbc_time )
ptr(ji,jj,jk,jn,Krhs) = ptr(ji,jj,jk,jn,Krhs) + rf_trcfac(jl) * sf_trccbc(jl)%fnow(ji,jj,1) * zfact
END DO
END_2D
ENDIF