1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- MODULE p4zint
- !!======================================================================
- !! *** MODULE p4zint ***
- !! TOP : PISCES interpolation and computation of various accessory fields
- !!======================================================================
- !! 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
- !!----------------------------------------------------------------------
- !! p4z_int : interpolation and computation of various accessory fields
- !!----------------------------------------------------------------------
- USE oce_trc ! shared variables between ocean and passive tracers
- USE trc ! passive tracers common variables
- USE sms_pisces ! PISCES Source Minus Sink variables
- USE iom
- IMPLICIT NONE
- PRIVATE
- PUBLIC p4z_int
- REAL(wp) :: xksilim = 16.5e-6_wp ! Half-saturation constant for the Si half-saturation constant computation
- !!----------------------------------------------------------------------
- !! NEMO/TOP 3.3 , NEMO Consortium (2010)
- !! $Id: p4zint.F90 2750 2016-01-12 10:42:05Z ufla $
- !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
- !!----------------------------------------------------------------------
- CONTAINS
- SUBROUTINE p4z_int( kt )
- !!---------------------------------------------------------------------
- !! *** ROUTINE p4z_int ***
- !!
- !! ** Purpose : interpolation and computation of various accessory fields
- !!
- !!---------------------------------------------------------------------
- !
- INTEGER, INTENT( in ) :: kt ! ocean time-step index
- !
- INTEGER :: ji, jj ! dummy loop indices
- REAL(wp) :: zvar ! local variable
- !!---------------------------------------------------------------------
- !
- IF( nn_timing == 1 ) CALL timing_start('p4z_int')
- !
- ! Computation of phyto and zoo metabolic rate
- ! -------------------------------------------
- tgfunc (:,:,:) = EXP( 0.063913 * tsn(:,:,:,jp_tem) )
- tgfunc2(:,:,:) = EXP( 0.07608 * tsn(:,:,:,jp_tem) )
- ! Computation of the silicon dependant half saturation constant for silica uptake
- ! ---------------------------------------------------
- DO ji = 1, jpi
- DO jj = 1, jpj
- zvar = trb(ji,jj,1,jpsil) * trb(ji,jj,1,jpsil)
- xksimax(ji,jj) = MAX( xksimax(ji,jj), ( 1.+ 7.* zvar / ( xksilim * xksilim + zvar ) ) * 1e-6 )
- END DO
- END DO
- !
- IF( nday_year == nyear_len(1) ) THEN
- xksi (:,:) = xksimax(:,:)
- xksimax(:,:) = 0._wp
- ENDIF
- !
- IF( nn_timing == 1 ) CALL timing_stop('p4z_int')
- !
- END SUBROUTINE p4z_int
- #else
- !!======================================================================
- !! Dummy module : No PISCES bio-model
- !!======================================================================
- CONTAINS
- SUBROUTINE p4z_int ! Empty routine
- WRITE(*,*) 'p4z_int: You should not have seen this print! error?'
- END SUBROUTINE p4z_int
- #endif
- !!======================================================================
- END MODULE p4zint
|