diff --git a/src/TOP/trcbc.F90 b/src/TOP/trcbc.F90 index c92053c..b4bc66d 100755 --- a/src/TOP/trcbc.F90 +++ b/src/TOP/trcbc.F90 @@ -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