MODULE trcsms_pisces !!====================================================================== !! *** MODULE trcsms_pisces *** !! TOP : PISCES Source Minus Sink manager !!====================================================================== !! History : 1.0 ! 2004-03 (O. Aumont) Original code !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 !!---------------------------------------------------------------------- #if defined key_pisces !!---------------------------------------------------------------------- !! 'key_pisces' PISCES bio-model !!---------------------------------------------------------------------- !! trcsms_pisces : Time loop of passive tracers sms !!---------------------------------------------------------------------- USE oce_trc ! USE trp_trc USE sms USE lbclnk USE lib_mpp USE p4zint ! USE p4zche ! USE p4zbio ! USE p4zsed ! USE p4zlys ! USE p4zflx ! IMPLICIT NONE PRIVATE PUBLIC trc_sms_pisces ! called in trcsms.F90 !!---------------------------------------------------------------------- !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007) !! $Header:$ !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) !!---------------------------------------------------------------------- CONTAINS SUBROUTINE trc_sms_pisces( kt ) !!--------------------------------------------------------------------- !! *** ROUTINE trc_sms_pisces *** !! !! ** Purpose : Managment of the call to Biological sources and sinks !! routines of PISCES bio-model !! !! ** Method : - at each new day ... !! - several calls of bio and sed ??? !! - ... !!--------------------------------------------------------------------- INTEGER, INTENT( in ) :: kt ! ocean time-step index !! INTEGER :: jnt, jn INTEGER :: iyy, imm, idd !!--------------------------------------------------------------------- iyy = ndastp/10000 imm = (ndastp - iyy*10000)/100 idd = (ndastp - iyy*10000 - imm*100) IF( ndayflxtr /= idd) THEN ! New days ! ndayflxtr = idd CALL p4z_che ! computation of chemical constants CALL p4z_int ! computation of various rates for biogeochemistry ! ENDIF DO jnt = 1, nrdttrc ! Potential time splitting if requested ! CALL p4z_bio (kt, jnt) ! Compute soft tissue production (POC) CALL p4z_sed (kt, jnt) ! compute soft tissue remineralisation ! trb(:,:,:,:) = trn(:,:,:,:) ! END DO CALL p4z_lys( kt ) ! Compute CaCO3 saturation CALL p4z_flx( kt ) ! Compute surface fluxes DO jn = jp_pcs0, jp_pcs1 CALL lbc_lnk( trn(:,:,:,jn), 'T', 1. ) CALL lbc_lnk( trb(:,:,:,jn), 'T', 1. ) CALL lbc_lnk( tra(:,:,:,jn), 'T', 1. ) END DO ! END SUBROUTINE trc_sms_pisces #else !!====================================================================== !! Dummy module : No PISCES bio-model !!====================================================================== CONTAINS SUBROUTINE trc_sms_pisces( kt ) ! Empty routine INTEGER, INTENT( in ) :: kt WRITE(*,*) 'trc_sms_pisces: You should not have seen this print! error?', kt END SUBROUTINE trc_sms_pisces #endif !!====================================================================== END MODULE trcsms_pisces