- Timestamp:
- 2020-01-27T15:31:53+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zlys.F90
r12258 r12340 35 35 REAL(wp) :: calcon = 1.03E-2 ! mean calcite concentration [Ca2+] in sea water [mole/kg solution] 36 36 37 !! * Substitutions 38 # include "do_loop_substitute.h90" 37 39 !!---------------------------------------------------------------------- 38 40 !! NEMO/TOP 4.0 , NEMO Consortium (2018) … … 73 75 CALL solve_at_general( zhinit, zhi, Kbb ) 74 76 75 DO jk = 1, jpkm1 76 DO jj = 1, jpj 77 DO ji = 1, jpi 78 zco3(ji,jj,jk) = tr(ji,jj,jk,jpdic,Kbb) * ak13(ji,jj,jk) * ak23(ji,jj,jk) / (zhi(ji,jj,jk)**2 & 79 & + ak13(ji,jj,jk) * zhi(ji,jj,jk) + ak13(ji,jj,jk) * ak23(ji,jj,jk) + rtrn ) 80 hi (ji,jj,jk) = zhi(ji,jj,jk) * rhop(ji,jj,jk) / 1000. 81 END DO 82 END DO 83 END DO 77 DO_3D_11_11( 1, jpkm1 ) 78 zco3(ji,jj,jk) = tr(ji,jj,jk,jpdic,Kbb) * ak13(ji,jj,jk) * ak23(ji,jj,jk) / (zhi(ji,jj,jk)**2 & 79 & + ak13(ji,jj,jk) * zhi(ji,jj,jk) + ak13(ji,jj,jk) * ak23(ji,jj,jk) + rtrn ) 80 hi (ji,jj,jk) = zhi(ji,jj,jk) * rhop(ji,jj,jk) / 1000. 81 END_3D 84 82 85 83 ! --------------------------------------------------------- … … 89 87 ! --------------------------------------------------------- 90 88 91 DO jk = 1, jpkm1 92 DO jj = 1, jpj 93 DO ji = 1, jpi 89 DO_3D_11_11( 1, jpkm1 ) 94 90 95 96 97 98 99 100 91 ! DEVIATION OF [CO3--] FROM SATURATION VALUE 92 ! Salinity dependance in zomegaca and divide by rhop/1000 to have good units 93 zcalcon = calcon * ( salinprac(ji,jj,jk) / 35._wp ) 94 zfact = rhop(ji,jj,jk) / 1000._wp 95 zomegaca = ( zcalcon * zco3(ji,jj,jk) ) / ( aksp(ji,jj,jk) * zfact + rtrn ) 96 zco3sat(ji,jj,jk) = aksp(ji,jj,jk) * zfact / ( zcalcon + rtrn ) 101 97 102 103 104 105 98 ! SET DEGREE OF UNDER-/SUPERSATURATION 99 excess(ji,jj,jk) = 1._wp - zomegaca 100 zexcess0 = MAX( 0., excess(ji,jj,jk) ) 101 zexcess = zexcess0**nca 106 102 107 ! AMOUNT CACO3 (12C) THAT RE-ENTERS SOLUTION 108 ! (ACCORDING TO THIS FORMULATION ALSO SOME PARTICULATE 109 ! CACO3 GETS DISSOLVED EVEN IN THE CASE OF OVERSATURATION) 110 zdispot = kdca * zexcess * tr(ji,jj,jk,jpcal,Kbb) 111 ! CHANGE OF [CO3--] , [ALK], PARTICULATE [CACO3], 112 ! AND [SUM(CO2)] DUE TO CACO3 DISSOLUTION/PRECIPITATION 113 zcaldiss(ji,jj,jk) = zdispot * rfact2 / rmtss ! calcite dissolution 114 ! 115 tr(ji,jj,jk,jptal,Krhs) = tr(ji,jj,jk,jptal,Krhs) + 2. * zcaldiss(ji,jj,jk) 116 tr(ji,jj,jk,jpcal,Krhs) = tr(ji,jj,jk,jpcal,Krhs) - zcaldiss(ji,jj,jk) 117 tr(ji,jj,jk,jpdic,Krhs) = tr(ji,jj,jk,jpdic,Krhs) + zcaldiss(ji,jj,jk) 118 END DO 119 END DO 120 END DO 103 ! AMOUNT CACO3 (12C) THAT RE-ENTERS SOLUTION 104 ! (ACCORDING TO THIS FORMULATION ALSO SOME PARTICULATE 105 ! CACO3 GETS DISSOLVED EVEN IN THE CASE OF OVERSATURATION) 106 zdispot = kdca * zexcess * tr(ji,jj,jk,jpcal,Kbb) 107 ! CHANGE OF [CO3--] , [ALK], PARTICULATE [CACO3], 108 ! AND [SUM(CO2)] DUE TO CACO3 DISSOLUTION/PRECIPITATION 109 zcaldiss(ji,jj,jk) = zdispot * rfact2 / rmtss ! calcite dissolution 110 ! 111 tr(ji,jj,jk,jptal,Krhs) = tr(ji,jj,jk,jptal,Krhs) + 2. * zcaldiss(ji,jj,jk) 112 tr(ji,jj,jk,jpcal,Krhs) = tr(ji,jj,jk,jpcal,Krhs) - zcaldiss(ji,jj,jk) 113 tr(ji,jj,jk,jpdic,Krhs) = tr(ji,jj,jk,jpdic,Krhs) + zcaldiss(ji,jj,jk) 114 END_3D 121 115 ! 122 116
Note: See TracChangeset
for help on using the changeset viewer.