Closed HCJung-jbnu closed 1 year ago
!
! Tracer Sources/Sinks.
!
DO i=1,NT(ng)
IF (LtracerSrc(i,ng)) THEN
CALL get_ngfld (ng, iNLM, idRtrc(i), SSF(ng)%ncid, &
# if defined PIO_LIB && defined DISTRIBUTE
& SSF(ng)%pioFile, &
# endif
& 1, SSF(ng), recordless, update(1), &
& 1, Nsrc(ng), N(ng), 2, 1, Nsrc(ng), N(ng), &
& SOURCES(ng) % TsrcG(:,:,:,i))
IF (FoundError(exit_flag, NoError, __LINE__, MyFile)) RETURN
END IF
END DO
!
! Tracer Sources/Sinks.
!
DO itrc=1,NT(ng)
IF (LtracerSrc(itrc,ng)) THEN
CALL set_ngfld (ng, iNLM, idRtrc(itrc), 1, Nsrc(ng), N(ng), &
& 1, Nsrc(ng), N(ng), &
& SOURCES(ng) % TsrcG(:,:,:,itrc), &
& SOURCES(ng) % Tsrc(:,:,itrc), &
& update)
IF (FoundError(exit_flag, NoError, __LINE__, MyFile)) RETURN
END IF
END DO
.....
!
! Apply tracers point sources to the horizontal advection terms,
! if any.
!
! Dsrc(is) = 0, flow across grid cell u-face (positive or negative)
! Dsrc(is) = 1, flow across grid cell v-face (positive or negative)
!
IF (LuvSrc(ng)) THEN
DO is=1,Nsrc(ng)
Isrc=SOURCES(ng)%Isrc(is)
Jsrc=SOURCES(ng)%Jsrc(is)
IF (((Istr.le.Isrc).and.(Isrc.le.Iend+1)).and. &
& ((Jstr.le.Jsrc).and.(Jsrc.le.Jend+1))) THEN
IF (INT(SOURCES(ng)%Dsrc(is)).eq.0) THEN
IF (LtracerSrc(itrc,ng)) THEN
FX(Isrc,Jsrc)=Huon(Isrc,Jsrc,k)* &
& SOURCES(ng)%Tsrc(is,k,itrc)
ELSE
FX(Isrc,Jsrc)=0.0_r8
END IF
ELSE IF (INT(SOURCES(ng)%Dsrc(is)).eq.1) THEN
IF (LtracerSrc(itrc,ng)) THEN
FE(Isrc,Jsrc)=Hvom(Isrc,Jsrc,k)* &
& SOURCES(ng)%Tsrc(is,k,itrc)
ELSE
FE(Isrc,Jsrc)=0.0_r8
END IF
END IF
END IF
END DO
END IF
.....
단위
~/ROMS/Module/mod_source.F