- Timestamp:
- 2021-12-03T20:32:50+01:00 (3 years ago)
- Location:
- NEMO/branches/2021/dev_r14318_RK3_stage1
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/dev_r14318_RK3_stage1
- Property svn:externals
-
old new 9 9 10 10 # SETTE 11 ^/utils/CI/sette@14244 sette 11 ^/utils/CI/sette@HEAD sette 12
-
- Property svn:externals
-
NEMO/branches/2021/dev_r14318_RK3_stage1/src/TOP/PISCES/P4Z/p4zagg.F90
r13295 r15574 2 2 !!====================================================================== 3 3 !! *** MODULE p4zagg *** 4 !! TOP : PISCES aggregation of particles 4 !! TOP : PISCES aggregation of particles (DOC, POC, GOC) 5 !! This module is the same for both PISCES and PISCES-QUOTA 5 6 !!====================================================================== 6 7 !! History : 1.0 ! 2004 (O. Aumont) Original code … … 37 38 !! *** ROUTINE p4z_agg *** 38 39 !! 39 !! ** Purpose : Compute aggregation of particles 40 !! ** Purpose : Compute aggregation of particle. Aggregation by 41 !! brownian motion, differential settling and shear 42 !! are considered. 40 43 !! 41 !! ** Method : - ??? 44 !! ** Method : - Aggregation rates are computed assuming a fixed and 45 !! constant size spectrum in the different particulate 46 !! pools. The coagulation rates have been computed 47 !! externally using dedicated programs (O. Aumont). They 48 !! are hard-coded because they can't be changed 49 !! independently of each other. 42 50 !!--------------------------------------------------------------------- 43 51 INTEGER, INTENT(in) :: kt, knt ! … … 56 64 IF( ln_timing ) CALL timing_start('p4z_agg') 57 65 ! 58 ! Exchange between organic matter compartments due to coagulation/disaggregation 66 ! Exchange between organic matter compartments due to 67 ! coagulation/disaggregation 59 68 ! --------------------------------------------------- 69 70 ! PISCES part 60 71 IF( ln_p4z ) THEN 61 72 ! 62 DO_3D( 1, 1, 1, 1, 1, jpkm1 )73 DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 63 74 ! 64 75 zfact = xstep * xdiss(ji,jj,jk) 76 ! Part I : Coagulation dependent on turbulence 77 ! The stickiness has been assumed to be 0.1 65 78 ! Part I : Coagulation dependent on turbulence 66 zagg1 = 25.9* zfact * tr(ji,jj,jk,jppoc,Kbb) * tr(ji,jj,jk,jppoc,Kbb)67 zagg2 = 4452.* zfact * tr(ji,jj,jk,jppoc,Kbb) * tr(ji,jj,jk,jpgoc,Kbb)79 zagg1 = 12.5 * zfact * tr(ji,jj,jk,jppoc,Kbb) * tr(ji,jj,jk,jppoc,Kbb) 80 zagg2 = 169.7 * zfact * tr(ji,jj,jk,jppoc,Kbb) * tr(ji,jj,jk,jpgoc,Kbb) 68 81 69 82 ! Part II : Differential settling 70 71 ! Aggregation of small into large particles72 zagg3 = 47.1 * xstep * tr(ji,jj,jk,jppoc,Kbb) * tr(ji,jj,jk,jpgoc,Kbb)73 zagg4 = 3.3 * xstep * tr(ji,jj,jk,jppoc,Kbb) * tr(ji,jj,jk,jppoc,Kbb)83 ! Aggregation of small into large particles 84 ! The stickiness has been assumed to be 0.1 85 zagg3 = 8.63 * xstep * tr(ji,jj,jk,jppoc,Kbb) * tr(ji,jj,jk,jppoc,Kbb) 86 zagg4 = 132.8 * xstep * tr(ji,jj,jk,jppoc,Kbb) * tr(ji,jj,jk,jpgoc,Kbb) 74 87 75 88 zagg = zagg1 + zagg2 + zagg3 + zagg4 … … 80 93 ! 2nd term is shear aggregation of DOC-POC 81 94 ! 3rd term is differential settling of DOC-POC 82 zaggdoc = ( ( 0.369 * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) + 102.4 * tr(ji,jj,jk,jppoc,Kbb) ) * zfact & 83 & + 2.4 * xstep * tr(ji,jj,jk,jppoc,Kbb) ) * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) 95 ! 1/3 of DOC is supposed to experience aggregation (HMW) 96 zaggdoc = ( ( 12.0 * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) + 9.05 * tr(ji,jj,jk,jppoc,Kbb) ) * zfact & 97 & + 2.49 * xstep * tr(ji,jj,jk,jppoc,Kbb) ) * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) 84 98 ! transfer of DOC to GOC : 85 99 ! 1st term is shear aggregation 86 ! 2nd term is differential settling87 zaggdoc2 = ( 3.53E3 * zfact + 0.1* xstep ) * tr(ji,jj,jk,jpgoc,Kbb) * 0.3 * tr(ji,jj,jk,jpdoc,Kbb)100 ! 1/3 of DOC is supposed to experience aggregation (HMW) 101 zaggdoc2 = ( 1.94 * zfact + 1.37 * xstep ) * tr(ji,jj,jk,jpgoc,Kbb) * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) 88 102 ! tranfer of DOC to POC due to brownian motion 89 zaggdoc3 = 114. * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) *xstep * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) 103 ! The temperature dependency has been omitted. 104 zaggdoc3 = ( 127.8 * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) + 725.7 * tr(ji,jj,jk,jppoc,Kbb) ) * xstep * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) 90 105 91 106 ! Update the trends … … 101 116 END_3D 102 117 ELSE ! ln_p5z 118 ! PISCES-QUOTA part 103 119 ! 104 DO_3D( 1, 1, 1, 1, 1, jpkm1 )120 DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 105 121 ! 106 122 zfact = xstep * xdiss(ji,jj,jk) 107 123 ! Part I : Coagulation dependent on turbulence 124 ! The stickiness has been assumed to be 0.1 108 125 zaggtmp = 25.9 * zfact * tr(ji,jj,jk,jppoc,Kbb) 109 126 zaggpoc1 = zaggtmp * tr(ji,jj,jk,jppoc,Kbb) 110 127 zaggtmp = 4452. * zfact * tr(ji,jj,jk,jpgoc,Kbb) 111 128 zaggpoc2 = zaggtmp * tr(ji,jj,jk,jppoc,Kbb) 112 129 113 130 ! Part II : Differential settling 114 131 ! The stickiness has been assumed to be 0.1 132 115 133 ! Aggregation of small into large particles 116 134 zaggtmp = 47.1 * xstep * tr(ji,jj,jk,jpgoc,Kbb) … … 119 137 zaggpoc4 = zaggtmp * tr(ji,jj,jk,jppoc,Kbb) 120 138 121 zaggpoc 139 zaggpoc = zaggpoc1 + zaggpoc2 + zaggpoc3 + zaggpoc4 122 140 zaggpon = zaggpoc * tr(ji,jj,jk,jppon,Kbb) / ( tr(ji,jj,jk,jppoc,Kbb) + rtrn) 123 141 zaggpop = zaggpoc * tr(ji,jj,jk,jppop,Kbb) / ( tr(ji,jj,jk,jppoc,Kbb) + rtrn) 124 zaggfe = zaggpoc * tr(ji,jj,jk,jpsfe,Kbb) / ( tr(ji,jj,jk,jppoc,Kbb) + rtrn )142 zaggfe = zaggpoc * tr(ji,jj,jk,jpsfe,Kbb) / ( tr(ji,jj,jk,jppoc,Kbb) + rtrn ) 125 143 126 144 ! Aggregation of DOC to POC : … … 128 146 ! 2nd term is shear aggregation of DOC-POC 129 147 ! 3rd term is differential settling of DOC-POC 130 zaggtmp = ( ( 0.369 * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) + 102.4 * tr(ji,jj,jk,jppoc,Kbb) ) * zfact & 131 & + 2.4 * xstep * tr(ji,jj,jk,jppoc,Kbb) ) 148 ! 1/3 of DOC is supposed to experience aggregation (HMW) 149 zaggtmp = ( ( 0.37 * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) + 20.5 * tr(ji,jj,jk,jppoc,Kbb) ) * zfact & 150 & + 0.15 * xstep * tr(ji,jj,jk,jppoc,Kbb) ) 132 151 zaggdoc = zaggtmp * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) 133 152 zaggdon = zaggtmp * 0.3 * tr(ji,jj,jk,jpdon,Kbb) … … 137 156 ! 1st term is shear aggregation 138 157 ! 2nd term is differential settling 139 zaggtmp = ( 3.53E3 * zfact + 0.1 * xstep ) * tr(ji,jj,jk,jpgoc,Kbb) 158 ! 1/3 of DOC is supposed to experience aggregation (HMW) 159 zaggtmp = 655.4 * zfact * tr(ji,jj,jk,jpgoc,Kbb) 140 160 zaggdoc2 = zaggtmp * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) 141 161 zaggdon2 = zaggtmp * 0.3 * tr(ji,jj,jk,jpdon,Kbb) … … 143 163 144 164 ! tranfer of DOC to POC due to brownian motion 145 zaggtmp = ( 114. * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) ) * xstep 165 ! 1/3 of DOC is supposed to experience aggregation (HMW) 166 zaggtmp = ( 260.2 * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) + 418.5 * tr(ji,jj,jk,jppoc,Kbb) ) * xstep 146 167 zaggdoc3 = zaggtmp * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) 147 168 zaggdon3 = zaggtmp * 0.3 * tr(ji,jj,jk,jpdon,Kbb) 148 169 zaggdop3 = zaggtmp * 0.3 * tr(ji,jj,jk,jpdop,Kbb) 170 149 171 150 172 ! Update the trends
Note: See TracChangeset
for help on using the changeset viewer.