Bugfixes in trcbc.F90
This commit is contained in:
parent
933932fd6a
commit
ce9a302883
@ -75,7 +75,9 @@ CONTAINS
|
|||||||
!
|
!
|
||||||
CHARACTER(len=100) :: cn_dir_sbc, cn_dir_cbc, cn_dir_obc
|
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), 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_trcsbc ! surface
|
||||||
TYPE(FLD_N), DIMENSION(jpmaxtrc) :: sn_trccbc ! coastal
|
TYPE(FLD_N), DIMENSION(jpmaxtrc) :: sn_trccbc ! coastal
|
||||||
REAL(wp) , DIMENSION(jpmaxtrc) :: rn_trofac ! multiplicative factor for tracer values
|
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 *!
|
IF( ln_trc_obc(jn) ) THEN !* Initialise from external data *!
|
||||||
jl = n_trc_indobc(jn)
|
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))
|
slf_i(jl)%clvar = TRIM(cn_tronam(jn))
|
||||||
rf_trofac(jl) = rn_trofac(jn)
|
rf_trofac(jl) = rn_trofac(jn)
|
||||||
ALLOCATE( sf_trcobc(jl,ib)%fnow(nblen,1,jpk) , STAT=ierr2 )
|
ALLOCATE( sf_trcobc(jl,ib)%fnow(nblen,1,jpk) , STAT=ierr2 )
|
||||||
@ -218,7 +221,7 @@ CONTAINS
|
|||||||
ENDIF
|
ENDIF
|
||||||
trcdta_bdy(jn,ib)%trc => sf_trcobc(jl,ib)%fnow(:,1,:)
|
trcdta_bdy(jn,ib)%trc => sf_trcobc(jl,ib)%fnow(:,1,:)
|
||||||
trcdta_bdy(jn,ib)%rn_fac = rf_trofac(jl)
|
trcdta_bdy(jn,ib)%rn_fac = rf_trofac(jl)
|
||||||
ELSE !* Initialise obc arrays from initial conditions *!
|
ELSE !* Initialise obc arrays from initial conditions *!
|
||||||
ALLOCATE ( trcdta_bdy(jn,ib)%trc(nblen,jpk) )
|
ALLOCATE ( trcdta_bdy(jn,ib)%trc(nblen,jpk) )
|
||||||
DO ibd = 1, nblen
|
DO ibd = 1, nblen
|
||||||
DO ik = 1, jpkm1
|
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
|
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_2D( 0, 0, 0, 1 )
|
||||||
DO jk = 1, nk_rnf(ji,jj)
|
DO jk = 1, nk_rnf(ji,jj)
|
||||||
zfact = rn_rfact / ( e1e2t(ji,jj) * h_rnf(ji,jj) * rn_cbc_time )
|
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
|
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 DO
|
||||||
END_2D
|
END_2D
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user