New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
trcice_pisces.F90 in branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/TOP_SRC/PISCES – NEMO

source: branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/TOP_SRC/PISCES/trcice_pisces.F90 @ 7953

Last change on this file since 7953 was 7646, checked in by timgraham, 7 years ago

Merge of dev_merge_2016 into trunk. UPDATE TO ARCHFILES NEEDED for XIOS2.
LIM_SRC_s/limrhg.F90 to follow in next commit due to change of kind (I'm unable to do it in this commit).
Merged using the following steps:

1) svn merge --reintegrate svn+ssh://forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/trunk .
2) Resolve minor conflicts in sette.sh and namelist_cfg for ORCA2LIM3 (due to a change in trunk after branch was created)
3) svn commit
4) svn switch svn+ssh://forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/trunk
5) svn merge svn+ssh://forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/branches/2016/dev_merge_2016 .
6) At this stage I checked out a clean copy of the branch to compare against what is about to be committed to the trunk.
6) svn commit #Commit code to the trunk

In this commit I have also reverted a change to Fcheck_archfile.sh which was causing problems on the Paris machine.

File size: 13.3 KB
Line 
1MODULE trcice_pisces
2   !!======================================================================
3   !!                         ***  MODULE trcice_pisces  ***
4   !! TOP :   initialisation of the PISCES biochemical model
5   !!======================================================================
6   !! History :  3.5  ! 2013    (M. Vancoppenolle, O. Aumont, G. Madec), original code
7   !!----------------------------------------------------------------------
8   !! trc_ice_pisces   : PISCES fake sea ice model setting
9   !!----------------------------------------------------------------------
10   USE par_trc         ! TOP parameters
11   USE par_pisces      ! PISCES parameters
12   USE oce_trc         ! Shared variables between ocean and passive tracers
13   USE trc             ! Passive tracers common variables
14   USE sms_pisces      ! PISCES Source Minus Sink variables
15   USE in_out_manager
16
17   IMPLICIT NONE
18   PRIVATE
19
20   PUBLIC   trc_ice_ini_pisces ! called by trcini.F90 module
21
22CONTAINS
23
24
25   SUBROUTINE trc_ice_ini_pisces
26      !!----------------------------------------------------------------------
27      !!                   ***  ROUTINE trc_ini_pisces ***
28      !!
29      !! ** Purpose :   Initialisation of the PISCES biochemical model
30      !!----------------------------------------------------------------------
31
32      IF( ln_p4z .OR. ln_p5z ) THEN  ;   CALL p4z_ice_ini   !  PISCES
33      ELSE                           ;   CALL p2z_ice_ini   !  LOBSTER
34      ENDIF
35
36   END SUBROUTINE trc_ice_ini_pisces
37
38
39   SUBROUTINE p4z_ice_ini
40      !!----------------------------------------------------------------------
41      !!                   ***  ROUTINE p4z_ice_ini ***
42      !!
43      !! ** Purpose :   PISCES fake sea ice model setting
44      !!    Method  :   Assign prescribe values to tracer concentrations in sea ice
45      !!
46      !! For levitating sea ice, constant ocean tracer concentrations also have to be defined.
47      !! This is done specifically for Global, Arctic, Antarctic and Baltic regions
48      !!
49      !! Sea ice concentrations are by default prescribed as follows
50      !!  trc_i = zratio * trc_o
51      !!
52      !! This formulation is modulated by the namelist parameter trc_ice_ratio
53      !!
54      !! trc_ice_ratio  * betw 0 and 1: prescribed ice/ocean tracer concentration ratio
55      !!                * -1 => the ice-ocean tracer concentration ratio follows the
56      !!                         ice-ocean salinity ratio
57      !!                * -2 => no ice-ocean tracer concentration is used
58      !!                        instead, the tracer concentration in sea ice
59      !!                        is prescribed to trc_ice_prescr
60      !!
61      !! cn_trc_o  specifies which disinctions are made for prescribed tracer concentration
62      !!                * 'GL' use global ocean values making distinction for Baltic Sea only
63      !!                * 'AA' use Arctic/Antarctic contrasted values, + Baltic
64      !!
65      !!----------------------------------------------------------------------
66
67                                        !--- Dummy variables
68      REAL(wp), DIMENSION(jpmaxtrc,2) :: zratio  ! effective ice-ocean tracer cc ratio
69      REAL(wp), DIMENSION(jpmaxtrc,4) :: zpisc   ! prescribes concentration
70      !                                            !  1:global, 2:Arctic, 3:Antarctic, 4:Baltic
71
72      REAL(wp), DIMENSION(2) :: zrs  ! ice-ocean salinity ratio, 1 - global, 2- Baltic
73      REAL(wp) :: zsice_bal          ! prescribed ice salinity in the Baltic
74      REAL(wp) :: zsoce_bal          ! prescribed ocean salinity in the Baltic
75      REAL(wp) :: zfeoce_glo         ! prescribed iron concentration in the global ocean
76      REAL(wp) :: zfeoce_bal         ! prescribed iron concentration in the global ocean
77      INTEGER  :: jn                 ! dummy loop index
78
79      !!----------------------------------------------------------------------
80
81      IF(lwp) WRITE(numout,*)
82      IF(lwp) WRITE(numout,*) ' trc_ice_ini_pisces: Prescribed sea ice biogeochemistry '
83      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~~~~~~'
84
85      !--------------------------------------------
86      ! Initialize ocean prescribed concentrations
87      !--------------------------------------------
88      ! values taken from a 500 yr equilibrium run
89      ! used only in the levitating sea ice case with virtual salt / tracer
90      ! fluxes
91
92      !--- Global values
93      zpisc(jpdic,1) =  1.99e-3_wp 
94      zpisc(jpdoc,1) =  2.04e-5_wp 
95      zpisc(jptal,1) =  2.31e-3_wp 
96      zpisc(jpoxy,1) =  2.47e-4_wp
97      zpisc(jpcal,1) =  1.04e-8_wp
98      zpisc(jppo4,1) =  5.77e-7_wp / po4r 
99      zpisc(jppoc,1) =  1.27e-6_wp 
100      zpisc(jpgoc,1) =  5.23e-8_wp 
101      zpisc(jpbfe,1) =  9.84e-13_wp 
102      zpisc(jpsil,1) =  7.36e-6_wp 
103      zpisc(jpdsi,1) =  1.07e-7_wp 
104      zpisc(jpgsi,1) =  1.53e-8_wp
105      zpisc(jpphy,1) =  9.57e-8_wp
106      zpisc(jpdia,1) =  4.24e-7_wp
107      zpisc(jpzoo,1) =  6.07e-7_wp
108      zpisc(jpmes,1) =  3.44e-7_wp
109      zpisc(jpfer,1) =  4.06e-10_wp
110      zpisc(jpsfe,1) =  2.51e-11_wp
111      zpisc(jpdfe,1) =  6.57e-12_wp
112      zpisc(jpnfe,1) =  1.76e-11_wp
113      zpisc(jpnch,1) =  1.67e-7_wp
114      zpisc(jpdch,1) =  1.02e-7_wp
115      zpisc(jpno3,1) =  5.79e-6_wp / rno3 
116      zpisc(jpnh4,1) =  3.22e-7_wp / rno3
117
118      ! ln_p5z
119      zpisc(jppic,1) =  9.57e-8_wp
120      zpisc(jpnpi,1) =  9.57e-8_wp
121      zpisc(jpppi,1) =  9.57e-8_wp
122      zpisc(jppfe,1) =  1.76e-11_wp
123      zpisc(jppch,1) =  1.67e-7_wp
124      zpisc(jpnph,1) =  9.57e-8_wp
125      zpisc(jppph,1) =  9.57e-8_wp
126      zpisc(jpndi,1) =  4.24e-7_wp
127      zpisc(jppdi,1) =  4.24e-7_wp
128      zpisc(jppon,1) =  9.57e-8_wp
129      zpisc(jppop,1) =  9.57e-8_wp
130      zpisc(jpdon,1) =  2.04e-5_wp
131      zpisc(jpdop,1) =  2.04e-5_wp
132      zpisc(jpgon,1) =  5.23e-8_wp
133      zpisc(jpgop,1) =  5.23e-8_wp
134
135      !--- Arctic specificities (dissolved inorganic & DOM)
136      zpisc(jpdic,2) =  1.98e-3_wp 
137      zpisc(jpdoc,2) =  6.00e-6_wp 
138      zpisc(jptal,2) =  2.13e-3_wp 
139      zpisc(jpoxy,2) =  3.65e-4_wp 
140      zpisc(jpcal,2) =  1.50e-9_wp 
141      zpisc(jppo4,2) =  4.09e-7_wp / po4r 
142      zpisc(jppoc,2) =  4.05e-7_wp 
143      zpisc(jpgoc,2) =  2.84e-8_wp 
144      zpisc(jpbfe,2) =  7.03e-13_wp 
145      zpisc(jpsil,2) =  6.87e-6_wp 
146      zpisc(jpdsi,2) =  1.73e-7_wp 
147      zpisc(jpgsi,2) =  7.93e-9_wp
148      zpisc(jpphy,2) =  5.25e-7_wp 
149      zpisc(jpdia,2) =  7.75e-7_wp 
150      zpisc(jpzoo,2) =  3.34e-7_wp
151      zpisc(jpmes,2) =  2.49e-7_wp 
152      zpisc(jpfer,2) =  1.43e-9_wp 
153      zpisc(jpsfe,2) =  2.21e-11_wp 
154      zpisc(jpdfe,2) =  2.04e-11_wp 
155      zpisc(jpnfe,2) =  1.75e-11_wp 
156      zpisc(jpnch,2) =  1.46e-07_wp 
157      zpisc(jpdch,2) =  2.36e-07_wp 
158      zpisc(jpno3,2) =  3.51e-06_wp / rno3 
159      zpisc(jpnh4,2) =  6.15e-08_wp / rno3 
160
161      ! ln_p5z
162      zpisc(jppic,2) =  5.25e-7_wp
163      zpisc(jpnpi,2) =  5.25e-7_wp
164      zpisc(jpppi,2) =  5.25e-7_wp
165      zpisc(jppfe,2) =  1.75e-11_wp
166      zpisc(jppch,2) =  1.46e-07_wp
167      zpisc(jpnph,2) =  5.25e-7_wp
168      zpisc(jppph,2) =  5.25e-7_wp
169      zpisc(jpndi,2) =  7.75e-7_wp
170      zpisc(jppdi,2) =  7.75e-7_wp
171      zpisc(jppon,2) =  4.05e-7_wp
172      zpisc(jppop,2) =  4.05e-7_wp
173      zpisc(jpdon,2) =  6.00e-6_wp
174      zpisc(jpdop,2) =  6.00e-6_wp
175      zpisc(jpgon,2) =  2.84e-8_wp
176      zpisc(jpgop,2) =  2.84e-8_wp
177
178      !--- Antarctic specificities (dissolved inorganic & DOM)
179      zpisc(jpdic,3) =  2.20e-3_wp 
180      zpisc(jpdoc,3) =  7.02e-6_wp 
181      zpisc(jptal,3) =  2.37e-3_wp 
182      zpisc(jpoxy,3) =  3.42e-4_wp 
183      zpisc(jpcal,3) =  3.17e-9_wp 
184      zpisc(jppo4,3) =  1.88e-6_wp / po4r 
185      zpisc(jppoc,3) =  1.13e-6_wp 
186      zpisc(jpgoc,3) =  2.89e-8_wp 
187      zpisc(jpbfe,3) =  5.63e-13_wp 
188      zpisc(jpsil,3) =  4.96e-5_wp 
189      zpisc(jpdsi,3) =  5.63e-7_wp 
190      zpisc(jpgsi,3) =  5.35e-8_wp
191      zpisc(jpphy,3) =  8.10e-7_wp 
192      zpisc(jpdia,3) =  5.77e-7_wp 
193      zpisc(jpzoo,3) =  6.68e-7_wp
194      zpisc(jpmes,3) =  3.55e-7_wp 
195      zpisc(jpfer,3) =  1.62e-10_wp
196      zpisc(jpsfe,3) =  2.29e-11_wp 
197      zpisc(jpdfe,3) =  8.75e-12_wp
198      zpisc(jpnfe,3) =  1.48e-11_wp 
199      zpisc(jpnch,3) =  2.02e-7_wp 
200      zpisc(jpdch,3) =  1.60e-7_wp 
201      zpisc(jpno3,3) =  2.64e-5_wp / rno3 
202      zpisc(jpnh4,3) =  3.39e-7_wp / rno3 
203
204      ! ln_p5z
205      zpisc(jppic,3) =  8.10e-7_wp
206      zpisc(jpnpi,3) =  8.10e-7_wp
207      zpisc(jpppi,3) =  8.10e-7_wp 
208      zpisc(jppfe,3) =  1.48e-11_wp
209      zpisc(jppch,3) =  2.02e-7_wp
210      zpisc(jpnph,3) =  9.57e-8_wp
211      zpisc(jppph,3) =  9.57e-8_wp
212      zpisc(jpndi,3) =  5.77e-7_wp
213      zpisc(jppdi,3) =  5.77e-7_wp
214      zpisc(jppon,3) =  1.13e-6_wp
215      zpisc(jppop,3) =  1.13e-6_wp
216      zpisc(jpdon,3) =  7.02e-6_wp
217      zpisc(jpdop,3) =  7.02e-6_wp
218      zpisc(jpgon,3) =  2.89e-8_wp
219      zpisc(jpgop,3) =  2.89e-8_wp
220
221
222      !--- Baltic Sea particular case for ORCA configurations
223      zpisc(jpdic,4) = 1.14e-3_wp
224      zpisc(jpdoc,4) = 1.06e-5_wp
225      zpisc(jptal,4) = 1.16e-3_wp
226      zpisc(jpoxy,4) = 3.71e-4_wp
227      zpisc(jpcal,4) = 1.51e-9_wp
228      zpisc(jppo4,4) = 2.85e-9_wp / po4r
229      zpisc(jppoc,4) = 4.84e-7_wp
230      zpisc(jpgoc,4) = 1.05e-8_wp
231      zpisc(jpbfe,4) = 4.97e-13_wp
232      zpisc(jpsil,4) = 4.91e-5_wp
233      zpisc(jpdsi,4) = 3.25e-7_wp
234      zpisc(jpgsi,4) = 1.93e-8_wp
235      zpisc(jpphy,4) = 6.64e-7_wp
236      zpisc(jpdia,4) = 3.41e-7_wp
237      zpisc(jpzoo,4) = 3.83e-7_wp
238      zpisc(jpmes,4) = 0.225e-6_wp
239      zpisc(jpfer,4) = 2.45e-9_wp
240      zpisc(jpsfe,4) = 3.89e-11_wp
241      zpisc(jpdfe,4) = 1.33e-11_wp
242      zpisc(jpnfe,4) = 2.62e-11_wp
243      zpisc(jpnch,4) = 1.17e-7_wp
244      zpisc(jpdch,4) = 9.69e-8_wp
245      zpisc(jpno3,4) = 5.36e-5_wp / rno3
246      zpisc(jpnh4,4) = 7.18e-7_wp / rno3
247
248      ! ln_p5z
249      zpisc(jppic,4) =  6.64e-7_wp
250      zpisc(jpnpi,4) =  6.64e-7_wp
251      zpisc(jpppi,4) =  6.64e-7_wp
252      zpisc(jppfe,4) =  3.89e-11_wp
253      zpisc(jppch,4) =  1.17e-7_wp
254      zpisc(jpnph,4) =  6.64e-7_wp
255      zpisc(jppph,4) =  6.64e-7_wp
256      zpisc(jpndi,4) =  3.41e-7_wp
257      zpisc(jppdi,4) =  3.41e-7_wp
258      zpisc(jppon,4) =  4.84e-7_wp
259      zpisc(jppop,4) =  4.84e-7_wp
260      zpisc(jpdon,4) =  1.06e-5_wp
261      zpisc(jpdop,4) =  1.06e-5_wp
262      zpisc(jpgon,4) =  1.05e-8_wp
263      zpisc(jpgop,4) =  1.05e-8_wp
264 
265      DO jn = jp_pcs0, jp_pcs1
266         IF( cn_trc_o(jn) == 'GL ' ) trc_o(:,:,jn) = zpisc(jn,1)  ! Global case
267         IF( cn_trc_o(jn) == 'AA ' ) THEN
268            WHERE( gphit(:,:) >= 0._wp ) ; trc_o(:,:,jn) = zpisc(jn,2) ; END WHERE ! Arctic
269            WHERE( gphit(:,:) <  0._wp ) ; trc_o(:,:,jn) = zpisc(jn,3) ; END WHERE ! Antarctic
270         ENDIF
271         IF( cn_cfg == "orca" ) THEN     !  Baltic Sea particular case for ORCA configurations
272             WHERE( 14._wp <= glamt(:,:) .AND. glamt(:,:) <= 32._wp .AND.    &
273                    54._wp <= gphit(:,:) .AND. gphit(:,:) <= 66._wp )
274                    trc_o(:,:,jn) = zpisc(jn,4)
275            END WHERE
276         ENDIF
277      ENDDO
278
279
280
281      !-----------------------------
282      ! Assign ice-ocean cc ratios
283      !-----------------------------
284      ! 0 means zero concentration in sea ice
285      ! 1 means same concentration in the sea ice as in the ocean
286
287      ! Ice ocean salinity ratio
288      zsoce_bal   = 4. ; zsice_bal   = 2. !! Baltic ocean and sea ice salinities
289      zrs(1) = sice / soce                !! ice-ocean salinity ratio, global case
290      zrs(2) = zsice_bal / zsoce_bal      !! ice-ocean salinity ratio, Baltic case
291
292      DO jn = jp_pcs0, jp_pcs1
293         IF( trc_ice_ratio(jn) >= 0._wp )  zratio(jn,:) = trc_ice_ratio(jn)
294         IF( trc_ice_ratio(jn) == -1._wp ) zratio(jn,:) = zrs(:)
295         IF( trc_ice_ratio(jn) == -2._wp ) zratio(jn,:) = -9999.99_wp
296      END DO
297
298      !-------------------------------
299      ! Sea ice tracer concentrations
300      !-------------------------------
301      DO jn = jp_pcs0, jp_pcs1
302         !-- Everywhere but in the Baltic
303         IF ( trc_ice_ratio(jn) >= -1._wp ) THEN ! no prescribed conc. ; typically everything but iron)
304            trc_i(:,:,jn) = zratio(jn,1) * trc_o(:,:,jn) 
305         ELSE                                    ! prescribed concentration
306            trc_i(:,:,jn) = trc_ice_prescr(jn)
307         ENDIF
308       
309         !-- Baltic
310         IF( cn_cfg == "orca" ) THEN  ! Baltic treated seperately for ORCA configs
311            IF ( trc_ice_ratio(jn) >= - 1._wp ) THEN ! no prescribed conc. ; typically everything but iron)
312               WHERE( 14._wp <= glamt(:,:) .AND. glamt(:,:) <= 32._wp .AND.    &
313                      54._wp <= gphit(:,:) .AND. gphit(:,:) <= 66._wp )
314                     trc_i(:,:,jn) = zratio(jn,2) * trc_o(:,:,jn) 
315               END WHERE
316            ELSE                                 ! prescribed tracer concentration in ice
317               WHERE( 14._wp <= glamt(:,:) .AND. glamt(:,:) <= 32._wp .AND.    &
318                   54._wp <= gphit(:,:) .AND. gphit(:,:) <= 66._wp )
319                     trc_i(:,:,jn) = trc_ice_prescr(jn)
320               END WHERE
321            ENDIF ! trc_ice_ratio
322         ENDIF
323      !
324      END DO ! jn
325      !
326   END SUBROUTINE p4z_ice_ini
327
328   SUBROUTINE p2z_ice_ini
329      !!----------------------------------------------------------------------
330      !!                   ***  ROUTINE p2z_ice_ini ***
331      !!
332      !! ** Purpose :   Initialisation of the LOBSTER biochemical model
333      !!----------------------------------------------------------------------
334   END SUBROUTINE p2z_ice_ini
335
336
337   !!======================================================================
338END MODULE trcice_pisces
Note: See TracBrowser for help on using the repository browser.