Changeset 12537 for NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p4zsink.F90
- Timestamp:
- 2020-03-11T16:02:54+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p4zsink.F90
r10425 r12537 2 2 !!====================================================================== 3 3 !! *** MODULE p4zsink *** 4 !! TOP : PISCES vertical flux of particulate matter due to gravitational sinking 4 !! TOP : PISCES vertical flux of particulate matter due to 5 !! gravitational sinking 6 !! This module is the same for both PISCES and PISCES-QUOTA 5 7 !!====================================================================== 6 8 !! History : 1.0 ! 2004 (O. Aumont) Original code … … 8 10 !! 3.4 ! 2011-06 (O. Aumont, C. Ethe) Change aggregation formula 9 11 !! 3.5 ! 2012-07 (O. Aumont) Introduce potential time-splitting 12 !! 4.0 ! 2019 (O. Aumont) an external subroutine is called 13 !! to compute the impact of sinking 10 14 !!---------------------------------------------------------------------- 11 15 !! p4z_sink : Compute vertical flux of particulate matter due to gravitational sinking … … 25 29 26 30 PUBLIC p4z_sink ! called in p4zbio.F90 27 PUBLIC p4z_sink_init ! called in trc sms_pisces.F9028 PUBLIC p4z_sink_alloc 31 PUBLIC p4z_sink_init ! called in trcini_pisces.F90 32 PUBLIC p4z_sink_alloc ! called in trcini_pisces.F90 29 33 30 34 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sinking, sinking2 !: POC sinking fluxes 31 35 ! ! (different meanings depending on the parameterization) 32 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sinkingn, sinking2n !: PO Csinking fluxes33 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sinkingp, sinking2p !: PO Csinking fluxes36 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sinkingn, sinking2n !: PON sinking fluxes 37 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sinkingp, sinking2p !: POP sinking fluxes 34 38 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sinkcal, sinksil !: CaCO3 and BSi sinking fluxes 35 39 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sinkfer !: Small BFe sinking fluxes … … 45 49 CONTAINS 46 50 47 !!----------------------------------------------------------------------48 !! 'standard sinking parameterisation' ???49 !!----------------------------------------------------------------------50 51 51 SUBROUTINE p4z_sink ( kt, knt ) 52 52 !!--------------------------------------------------------------------- … … 54 54 !! 55 55 !! ** Purpose : Compute vertical flux of particulate matter due to 56 !! gravitational sinking 57 !! 58 !! ** Method : - ??? 56 !! gravitational sinking. 57 !! 58 !! ** Method : - An external advection subroutine is called to compute 59 !! the impact of sinking on the particles. The tracers 60 !! concentrations are updated in this subroutine which 61 !! is mandatory to deal with negative concentrations 59 62 !!--------------------------------------------------------------------- 60 63 INTEGER, INTENT(in) :: kt, knt … … 75 78 consgoc(:,:,:) = 0. 76 79 77 ! 78 ! Sinking speeds of detritus is increased with depth as shown 79 ! by data and from the coagulation theory 80 ! ----------------------------------------------------------- 80 ! Sinking speeds of big detritus is increased with depth as shown 81 ! by data and from the coagulation theory. This is controled by 82 ! wsbio2max and wsbio2scale. If wsbio2max is set to wsbio2, then 83 ! sinking speed is constant with depth. 84 ! CaCO3 and bSi are supposed to sink at the big particles speed 85 ! due to their high density 86 ! --------------------------------------------------------------- 81 87 DO jk = 1, jpkm1 82 88 DO jj = 1, jpj … … 89 95 END DO 90 96 91 ! limit the values of the sinking speeds to avoid numerical instabilities97 ! Sinking speed of the small particles is constant 92 98 wsbio3(:,:,:) = wsbio 93 99 94 ! 95 ! Initializa to zero all the sinking arrays 96 ! ----------------------------------------- 100 ! Initialize to zero all the sinking arrays 101 ! ----------------------------------------- 97 102 sinking (:,:,:) = 0.e0 98 103 sinking2(:,:,:) = 0.e0 … … 102 107 sinkfer2(:,:,:) = 0.e0 103 108 104 ! Compute the sedimentation term using p4zsink2for all the sinking particles105 ! 109 ! Compute the sedimentation term using trc_sink for all the sinking particles 110 ! --------------------------------------------------------------------------- 106 111 CALL trc_sink( kt, wsbio3, sinking , jppoc, rfact2 ) 107 112 CALL trc_sink( kt, wsbio3, sinkfer , jpsfe, rfact2 ) … … 111 116 CALL trc_sink( kt, wsbio4, sinkcal , jpcal, rfact2 ) 112 117 118 ! PISCES-QUOTA part 113 119 IF( ln_p5z ) THEN 114 120 sinkingn (:,:,:) = 0.e0 … … 117 123 sinking2p(:,:,:) = 0.e0 118 124 119 ! Compute the sedimentation term using p4zsink2for all the sinking particles120 ! 125 ! Compute the sedimentation term using trc_sink for all the sinking particles 126 ! --------------------------------------------------------------------------- 121 127 CALL trc_sink( kt, wsbio3, sinkingn , jppon, rfact2 ) 122 128 CALL trc_sink( kt, wsbio3, sinkingp , jppop, rfact2 ) … … 186 192 !!---------------------------------------------------------------------- 187 193 !! *** ROUTINE p4z_sink_init *** 194 !! 195 !! ** Purpose : Initialization of sinking parameters 196 !! 197 !! ** Method : 198 !! 199 !! ** input : 188 200 !!---------------------------------------------------------------------- 189 201 INTEGER :: jk
Note: See TracChangeset
for help on using the changeset viewer.