Changeset 15459 for NEMO/trunk/src/TOP/PISCES/P4Z/p4zint.F90
- Timestamp:
- 2021-10-29T10:19:18+02:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/TOP/PISCES/P4Z/p4zint.F90
r15090 r15459 1 1 MODULE p4zint 2 !!====================================================================== 2 !!========================================================================= 3 3 !! *** MODULE p4zint *** 4 4 !! TOP : PISCES interpolation and computation of various accessory fields 5 !!====================================================================== 5 !!========================================================================= 6 6 !! History : 1.0 ! 2004-03 (O. Aumont) Original code 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 … … 37 37 INTEGER, INTENT( in ) :: Kbb, Kmm ! time level indices 38 38 ! 39 INTEGER :: ji, jj 40 REAL(wp) :: z var ! local variable39 INTEGER :: ji, jj, jk ! dummy loop indices 40 REAL(wp) :: zrum, zcodel, zargu, zvar 41 41 !!--------------------------------------------------------------------- 42 42 ! … … 45 45 ! Computation of phyto and zoo metabolic rate 46 46 ! ------------------------------------------- 47 tgfunc (:,:,:) = EXP( 0.063913 * ts(:,:,:,jp_tem,Kmm) ) 48 tgfunc2(:,:,:) = EXP( 0.07608 * ts(:,:,:,jp_tem,Kmm) ) 47 ! Generic temperature dependence (Eppley, 1972) 48 tgfunc (:,:,:) = EXP( 0.0631 * ts(:,:,:,jp_tem,Kmm) ) 49 ! Temperature dependence of mesozooplankton (Buitenhuis et al. (2005)) 50 tgfunc2(:,:,:) = EXP( 0.0761 * ts(:,:,:,jp_tem,Kmm) ) 51 49 52 50 53 ! Computation of the silicon dependant half saturation constant for silica uptake 51 ! --------------------------------------------------- 54 ! This is based on an old study by Pondaven et al. (1998) 55 ! -------------------------------------------------------------------------------- 52 56 DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 53 57 zvar = tr(ji,jj,1,jpsil,Kbb) * tr(ji,jj,1,jpsil,Kbb) … … 55 59 END_2D 56 60 ! 61 ! At the end of each year, the half saturation constant for silica is 62 ! updated as this is based on the highest concentration reached over 63 ! the year 64 ! ------------------------------------------------------------------- 57 65 IF( nday_year == nyear_len(1) ) THEN 58 66 xksi (:,:) = xksimax(:,:) 59 67 xksimax(:,:) = 0._wp 60 68 ENDIF 69 ! 70 ! compute the day length depending on latitude and the day 71 ! Astronomical parameterization taken from HAMOCC3 72 zrum = REAL( nday_year - 80, wp ) / REAL( nyear_len(1), wp ) 73 zcodel = ASIN( SIN( zrum * rpi * 2._wp ) * SIN( rad * 23.5_wp ) ) 74 75 ! day length in hours 76 strn(:,:) = 0. 77 DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 78 zargu = TAN( zcodel ) * TAN( gphit(ji,jj) * rad ) 79 zargu = MAX( -1., MIN( 1., zargu ) ) 80 strn(ji,jj) = MAX( 0.0, 24. - 2. * ACOS( zargu ) / rad / 15. ) 81 END_2D 82 ! 83 DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 84 ! denitrification factor computed from O2 levels 85 ! This factor diagnoses below which level of O2 denitrification 86 ! is active 87 nitrfac(ji,jj,jk) = MAX( 0.e0, 0.4 * ( 6.e-6 - tr(ji,jj,jk,jpoxy,Kbb) ) & 88 & / ( oxymin + tr(ji,jj,jk,jpoxy,Kbb) ) ) 89 nitrfac(ji,jj,jk) = MIN( 1., nitrfac(ji,jj,jk) ) 90 ! 91 ! redox factor computed from NO3 levels 92 ! This factor diagnoses below which level of NO3 additional redox 93 ! reactions are taking place. 94 nitrfac2(ji,jj,jk) = MAX( 0.e0, ( 1.E-6 - tr(ji,jj,jk,jpno3,Kbb) ) & 95 & / ( 1.E-6 + tr(ji,jj,jk,jpno3,Kbb) ) ) 96 nitrfac2(ji,jj,jk) = MIN( 1., nitrfac2(ji,jj,jk) ) 97 END_3D 61 98 ! 62 99 IF( ln_timing ) CALL timing_stop('p4z_int')
Note: See TracChangeset
for help on using the changeset viewer.