source: branches/2016/dev_v3.20_2016_platelet/SOURCES/source_3.20/ice_output.f @ 34

Last change on this file since 34 was 29, checked in by vancop, 8 years ago

Add ice_sal_adv routine for GN13

File size: 41.3 KB
Line 
1      SUBROUTINE ice_output(nlay_i,nlay_s)
2
3!=============================================================================!
4! ice_output : Creates and write in the ice output file
5! (c) Martin Vancoppenolle, Xavier Fettweis, UCL-ASTR, June 2007
6!=============================================================================!
7
8      INCLUDE 'type.com'
9      INCLUDE 'para.com'
10      INCLUDE 'const.com'
11      INCLUDE 'ice.com'
12      INCLUDE 'thermo.com'
13      INCLUDE 'bio.com'
14      INCLUDE 'forcing.com'
15
16      CHARACTER(len=10) :: 
17     &   filenc='ice.out.nc'
18      CHARACTER(len=1) ::
19     &   c1
20      CHARACTER(len=4) ::
21     &   c4
22
23      REAL, DIMENSION(nend)     :: dimval
24      REAL, DIMENSION(nlay_i)   :: dimval2
25      REAL, DIMENSION(nlay_bio) :: dimval3
26      REAL, DIMENSION(nlay_s)   :: dimval4
27      REAL, DIMENSION(nlay_i)   :: dummy_vector
28
29!=============================================================================!
30
31      WRITE(numout,*) ' ice_output : '
32      WRITE(numout,*) ' ~~~~~~~~~~ : '
33      WRITE(numout,*)                    , c_bio_model
34!
35!-----------------------------------------------------------------------------!
36! 1) File definition
37!-----------------------------------------------------------------------------!
38!
39      IF ( numit .EQ. nstart ) THEN
40
41         WRITE(numout,*) ' Initialization of the NetCdf file : '
42         !---------------------
43         ! File initialization
44         !---------------------
45         CALL CF_INI_FILE(filenc,"Output NETCDF for LIM1D")
46
47         !---------------------
48         ! Dimensions creation
49         !---------------------
50         ! time
51         !------
52         DO i = nstart , nend
53            dimval(i) = REAL(i) 
54         ENDDO
55      !  WRITE(numout,*) ' dimval : ', ( dimval(i), i = nstart, nend )
56         IF ( ddtb .EQ. 60 ) 
57     &      CALL CF_CREATE_DIM("time"    ,"min"     ,nitrun,
58     &      dimval(nstart:nend))
59         IF ( ddtb .EQ. 600) 
60     &      CALL CF_CREATE_DIM("time"    ,"10min"     ,nitrun,
61     &      dimval(nstart:nend))
62         IF ( ddtb .EQ. 3600 ) 
63     &      CALL CF_CREATE_DIM("time"    ,"hours"     ,nitrun,
64     &      dimval(nstart:nend))
65         IF ( ddtb .EQ. 86400 ) 
66     &      CALL CF_CREATE_DIM("time"    ,"days"     ,nitrun,
67     &      dimval(nstart:nend))
68         IF ( ddtb .EQ. 21600 ) 
69     &      CALL CF_CREATE_DIM("time"    ,"6h"      ,nitrun,
70     &      dimval(nstart:nend))
71         WRITE(numout,*) ' time dimension created '
72
73         ! snow vertical coordinate (moving)
74         !-----------------------------------
75         DO i = 1, nlay_s
76            dimval4(i) = REAL(i)
77         ENDDO
78         CALL CF_CREATE_DIM("z_s_p"   ,"m"       ,nlay_s,
79     &   dimval4(1:nlay_s))
80         WRITE(numout,*) ' z_s_p dimension created '
81
82         ! physical vertical coordinate (moving)
83         !---------------------------------------
84         DO i = 1, nlay_i
85            dimval2(i) = REAL(i)
86         ENDDO
87         CALL CF_CREATE_DIM("z_i_p"   ,"m"       ,nlay_i,
88     &   dimval2(1:nlay_i))
89         WRITE(numout,*) ' z_i_p dimension created '
90
91!        ! biological vertical coordinate (moving)
92!        !-----------------------------------------
93         DO i = 1, nlay_bio 
94            dimval3(i) = REAL(i)
95         ENDDO
96         CALL CF_CREATE_DIM("z_i_b"   ,"m"       ,nlay_bio,
97     &   dimval3(1:nlay_bio))
98         WRITE(numout,*) ' z_i_b dimension created '
99
100         !--------------------
101         ! Variables creation
102         !--------------------
103         ! Times
104         !-------
105         CALL CF_CREATE_VAR("numt","Time step",
106     .                   "nts","time","-","-","-" )
107
108         CALL CF_CREATE_VAR("doy","Day Of Year",
109     .                   "nts","time","-","-","-" )
110
111         CALL CF_CREATE_VAR("ts_m","Time step in months",
112     .                   "mon","time","-","-","-" )
113
114         CALL CF_CREATE_VAR("ts_d","Time step in days",
115     .                   "y","time","-","-","-" )
116
117         ! Grids
118         !-------
119         CALL CF_CREATE_VAR("z_ip","Vertical cote, physics",
120     .                   "m","time","z_i_p","-","-" )
121
122         CALL CF_CREATE_VAR("z_ib","Vertical cote, biology",
123     .                   "m","time","z_i_b","-","-" )
124
125         IF ( ( c_grid .EQ. 'SL' ) .OR. ( c_grid .EQ. 'BA' ) ) 
126     &      CALL CF_CREATE_VAR("hbio","Biologically active layer",
127     &                   "m","time","-","-","-" )
128       
129
130         ! Ice / snow thickness and variations
131         !-------------------------------------
132         CALL CF_CREATE_VAR("h_i","Ice thickness",
133     .                   "m","time","-","-","-" )
134         WRITE(numout,*) ' h_i dimension created '
135
136         CALL CF_CREATE_VAR("dhib","Bottom accretion",
137     .                   "cm/day","time","-","-","-" )
138
139         CALL CF_CREATE_VAR("dhisu","Surface ice melt",
140     .                   "cm/day","time","-","-","-" )
141
142         CALL CF_CREATE_VAR("dhisi","Snow ice formation",
143     .                   "cm/day","time","-","-","-" )
144
145         CALL CF_CREATE_VAR("dhs","Snow variations",
146     .                   "cm/day","time","-","-","-" )
147
148         CALL CF_CREATE_VAR("h_s","Snow depth   ",
149     .                   "m","time","-","-","-" )
150         WRITE(numout,*) ' h_s dimension created '
151
152         CALL CF_CREATE_VAR("uml","Surface ocean layer",
153     .                   "m","time","-","-","-" )
154         WRITE(numout,*) ' uml dimension created '
155
156         ! Inner ice variables 
157         !---------------------
158         CALL CF_CREATE_VAR("t_i","Ice Temperature",
159     .                   "C","time","z_i_p","-","-" )
160         WRITE(numout,*) ' t_i dimension created '
161
162         CALL CF_CREATE_VAR("s_i","Ice Salinity",
163     .                   "g/kg","time","z_i_p","-","-" )
164         WRITE(numout,*) ' s_i dimension created '
165
166         CALL CF_CREATE_VAR("e_i","Brine volume",
167     .                   "%","time","z_i_p","-","-" )
168         WRITE(numout,*) ' e_i dimension created '
169
170         CALL CF_CREATE_VAR("e_i_bio","Brine volume bio",
171     .                   "%","time","z_i_p","-","-" )
172         WRITE(numout,*) ' e_i_bio dimension created '
173
174         CALL CF_CREATE_VAR("t_i_bio","Temperature bio",
175     .                   "C","time","z_i_p","-","-" )
176         WRITE(numout,*) ' t_i_bio dimension created '
177
178         CALL CF_CREATE_VAR("s_i_bio","Salinity bio",
179     .                   "g/kg","time","z_i_p","-","-" )
180         WRITE(numout,*) ' s_i_bio dimension created '
181
182         CALL CF_CREATE_VAR("sbr_bio","Sbr bio",
183     .                   "g/kg","time","z_i_p","-","-" )
184         WRITE(numout,*) ' sbr_bio dimension created '
185
186         CALL CF_CREATE_VAR("ra","Rayleigh number",
187     .                   "-","time","z_i_p","-","-" )
188         WRITE(numout,*) ' Ra dimension created '
189
190         CALL CF_CREATE_VAR("diff","Salt diffusivity", 
191     .                   "m2/s","time","z_i_p","-","-" )
192         WRITE(numout,*) ' Diff dimension created '
193
194         CALL CF_CREATE_VAR("perm_eff","Effective permeability", 
195     .                   "m2","time","z_i_p","-","-" )
196         WRITE(numout,*) ' perm_eff dimension created '
197
198         CALL CF_CREATE_VAR("w_adv_br","Upwelling Darcy velocity",
199     .                   "m/s","time","z_i_p","-","-" )
200         WRITE(numout,*) ' w_adv_br dimension created '
201
202      ! fsupw2 upwelling salt flux into layer k
203      ! fsupw1 upwelling salt flux from layer k into layer k-1
204      ! fsdwn  downwelling salt flux from layer k (brine channels)
205      ! dzdsdt = rate of change in salt content
206
207         CALL CF_CREATE_VAR("fsupw2","Salt flux from lower layer",
208     .                   "g/kg.m/s","time","z_i_p","-","-" )
209         WRITE(numout,*) ' fsupw2 dimension created '
210
211         CALL CF_CREATE_VAR("fsupw1","Salt flux to upper layer",
212     .                   "g/kg.m/s","time","z_i_p","-","-" )
213         WRITE(numout,*) ' fsupw1 dimension created '
214
215         CALL CF_CREATE_VAR("fsdwn","Salt flux into channels",
216     .                   "g/kg.m/s","time","z_i_p","-","-" )
217         WRITE(numout,*) ' fsdwn dimension created '
218
219         CALL CF_CREATE_VAR("dzdsdt","Change in salt content",
220     .                   "g/kg.m/s","time","z_i_p","-","-" )
221         WRITE(numout,*) ' dzdsdt dimension created '
222
223         CALL CF_CREATE_VAR("t_s","Snow Temperature",
224     .                   "C","time","z_s_p","-","-" )
225         WRITE(numout,*) ' t_s dimension created '
226
227         CALL CF_CREATE_VAR("t_su","Surface Temperature",
228     .                   "C","time","-","-","-" )
229         WRITE(numout,*) ' t_su dimension created '
230
231         CALL CF_CREATE_VAR("fsb","Ice-ocean bd salt flux",
232     .                   "kgNaCl/m2/s","time","-","-","-" )
233         WRITE(numout,*) ' fsb  dimension created '
234
235         CALL CF_CREATE_VAR("fsbp","Ice-ocean se salt flux",
236     .                   "kgNaCl/m2/s","time","-","-","-" )
237         WRITE(numout,*) ' fsbp dimension created '
238
239         CALL CF_CREATE_VAR("s_w","Ocean Salinity",
240     .                   "kgNaCl/dm3","time","-","-","-" )
241         WRITE(numout,*) ' s_w dimension created '
242
243         ! Forcing
244         !---------
245         CALL CF_CREATE_VAR("albe","Surface albedo",
246     .                   "/","time","-","-","-" )
247         CALL CF_CREATE_VAR("F_sw","Incoming solar",
248     .                   "W.m-2","time","-","-","-" )
249         CALL CF_CREATE_VAR("Fswn","Net solar",
250     .                   "W.m-2","time","-","-","-" )
251         CALL CF_CREATE_VAR("Flwd","Incoming longwave",
252     .                   "W.m-2","time","-","-","-" )
253         CALL CF_CREATE_VAR("Flwu","Emitted longwave",
254     .                   "W.m-2","time","-","-","-" )
255         CALL CF_CREATE_VAR("F_sh","Sensible heat flux",
256     .                   "W.m-2","time","-","-","-" )
257         CALL CF_CREATE_VAR("F_lh","Latent heat flux",
258     .                   "W.m-2","time","-","-","-" )
259         CALL CF_CREATE_VAR("Tair","Air temperature ",
260     .                   "C","time","-","-","-" )
261         CALL CF_CREATE_VAR("qair","Air humidity    ",
262     .                   "kg/kg","time","-","-","-" )
263         CALL CF_CREATE_VAR("wspd","Wind speed",
264     .                   "m/s","time","-","-","-" )
265         CALL CF_CREATE_VAR("qsfc","Surface humidity", 
266     .                   "kg/kg","time","-","-","-" )
267         CALL CF_CREATE_VAR("tdew","Relative air humidity", 
268     .                   "%","time","-","-","-" )
269         CALL CF_CREATE_VAR("cldf","Cloud fraction",
270     .                   "0-1","time","-","-","-" )
271         CALL CF_CREATE_VAR("sfal","Snowfall rate",
272     .                   "m/s","time","-","-","-" )
273         CALL CF_CREATE_VAR("pres","Atmospheric pressure", 
274     .                   "Pa","time","-","-","-" )
275
276         ! Radiative transfer
277         !--------------------
278         CALL CF_CREATE_VAR("T_is","Transmitted rad flx through ice",
279     .                   "W.m-2","time","-","-","-" )
280
281         CALL CF_CREATE_VAR("T_oc","Transmitted rad flux to ocean",
282     .                   "W.m-2","time","-","-","-" )
283
284         CALL CF_CREATE_VAR("A_s","Absorbed rad flux by snow",
285     .                   "W.m-2","time","z_s_p","-","-" )
286
287         CALL CF_CREATE_VAR("A_ib","Absorbed rad in ice by algae",
288     .                   "W.m-2","time","z_i_p","-","-" )
289
290         CALL CF_CREATE_VAR("A_ip","Absorbed rad in ice physically",
291     .                   "W.m-2","time","z_i_p","-","-" )
292
293         IF ( c_bio_model .EQ. 'KRILL' ) THEN
294
295         ! Biological variables
296         !----------------------
297         DO jn = 1, ntra_bio
298
299         IF ( flag_diff(jn) .AND. flag_active(jn) ) THEN
300         WRITE(numout,*) ' Tracer number : ', jn
301         CALL CF_CREATE_VAR(TRIM(biotr_i_nam(jn))//"d",
302     &        "Brine cc., "//TRIM(biotr_i_nam(jn)),
303     &        TRIM(biotr_i_uni(jn)),"time","z_i_b","-","-" )
304         WRITE(numout,*) ' Brine tracer conc created ', 
305     &   TRIM(biotr_i_nam(jn))//"d"
306         ENDIF
307
308         IF ( flag_active(jn) ) THEN
309         WRITE(numout,*) ' Tracer number : ', jn
310         CALL CF_CREATE_VAR(TRIM(biotr_i_nam(jn))//"b",
311     &        "Bulk cc., "//TRIM(biotr_i_nam(jn)),
312     &        TRIM(biotr_i_uni(jn)),"time","z_i_b","-","-" )
313         WRITE(numout,*) ' Brine tracer conc created ',
314     &   TRIM(biotr_i_nam(jn))//"b"
315         ENDIF
316
317         IF ( flag_active(jn) ) THEN
318         WRITE(numout,*) ' Tracer number : ', jn
319         CALL CF_CREATE_VAR(TRIM(biotr_i_nam(jn))//"t",
320     &        "Total content, "//TRIM(biotr_i_nam(jn)),
321     &        TRIM(biotr_i_uni(jn))//".m","time","-","-","-" )
322         WRITE(numout,*) ' Total tracer content created ',
323     &   TRIM(biotr_i_nam(jn))//"t"
324         ENDIF
325
326         IF ( flag_active(jn) ) THEN
327         WRITE(numout,*) ' Tracer number : ', jn
328         CALL CF_CREATE_VAR(TRIM(biotr_i_nam(jn))//"w",
329     &        "UML cc., "//TRIM(biotr_i_nam(jn)),
330     &        TRIM(biotr_i_uni(jn))//"m","time","-","-","-" )
331         WRITE(numout,*) ' UML tracer cc. created ',
332     &   TRIM(biotr_i_nam(jn))//"w"
333         ENDIF
334
335         IF ( flag_active(jn) ) THEN
336         WRITE(numout,*) ' Tracer number : ', jn
337         CALL CF_CREATE_VAR("F"//TRIM(biotr_i_nam(jn)),
338     &        "Ice-ocean "//TRIM(biotr_i_nam(jn))//" diffusive flux",
339     &        TRIM(biotr_i_uni(jn))//".m/s","time","-","-","-")
340         WRITE(numout,*) ' Tracer flux dimension created ',
341     &   TRIM(biotr_i_nam(jn))//"t"
342         ENDIF
343
344         IF ( flag_active(jn) ) THEN
345         WRITE(numout,*) ' Tracer number : ', jn
346         CALL CF_CREATE_VAR("F"//TRIM(biotr_i_nam(jn))//"b",
347     &        "Ice-ocean "//TRIM(biotr_i_nam(jn))//" basal flux",
348     &        TRIM(biotr_i_uni(jn))//".m/s","time","-","-","-")
349         WRITE(numout,*) ' Tracer flux dimension created ',
350     &   TRIM(biotr_i_nam(jn))//"t"
351         ENDIF
352
353         IF ( flag_active(jn) ) THEN
354         WRITE(numout,*) ' Tracer number : ', jn
355         CALL CF_CREATE_VAR("F"//TRIM(biotr_i_nam(jn))//"si",
356     &        "Ice-ocean "//TRIM(biotr_i_nam(jn))//" snow ice flux",
357     &        TRIM(biotr_i_uni(jn))//".m/s","time","-","-","-")
358         WRITE(numout,*) ' Tracer flux dimension created ',
359     &   TRIM(biotr_i_nam(jn))//"t"
360         ENDIF
361
362         IF ( flag_active(jn) ) THEN
363         WRITE(numout,*) ' Tracer number : ', jn
364         CALL CF_CREATE_VAR("F"//TRIM(biotr_i_nam(jn))//"bmax",
365     &        "Ice-ocean "//TRIM(biotr_i_nam(jn))//" maximal flux",
366     &        TRIM(biotr_i_uni(jn))//".m/s","time","-","-","-")
367         WRITE(numout,*) ' Tracer flux dimension created ',
368     &   TRIM(biotr_i_nam(jn))//"t"
369         ENDIF
370
371         ! Gas flux
372         IF ( flag_active(jn) .AND. ( biotr_i_typ(jn) .EQ. 'gas' ) )
373     &   THEN
374
375         WRITE(numout,*) ' Tracer number : ', jn
376         CALL CF_CREATE_VAR(TRIM(biotr_i_nam(jn))//"bub",
377     &        "Bubble cc., "//biotr_i_nam(jn),
378     &        TRIM(biotr_i_uni(jn)),"time","z_i_b","-","-" )
379         WRITE(numout,*) ' Bubble concentration dimension created ',
380     &   TRIM(biotr_i_nam(jn))//"bu_bub"
381
382         WRITE(numout,*) ' Tracer number : ', jn
383         CALL CF_CREATE_VAR("F"//TRIM(biotr_i_nam(jn))//"_atm",
384     &        "Ice-atmos "//TRIM(biotr_i_nam(jn))//" diffusive flux",
385     &        biotr_i_uni(jn)//"/m2/s","time","-","-","-")
386         WRITE(numout,*) ' Tracer gas flux dimension created ',
387     &   TRIM(biotr_i_nam(jn))//"flux"
388     
389         WRITE(numout,*) ' Tracer number : ', jn
390         CALL CF_CREATE_VAR("F"//TRIM(biotr_i_nam(jn))//"_bub",
391     &        "Ice-atmos, "//TRIM(biotr_i_nam(jn))//" bubble flux",
392     &        TRIM(biotr_i_uni(jn))//"/m2/s","time","-","-","-")
393         WRITE(numout,*) 'Surface bubble flux dimension created ',
394     &   TRIM(biotr_i_nam(jn))//"bub_flux"
395
396         WRITE(numout,*) ' Tracer number : ', jn
397         CALL CF_CREATE_VAR(TRIM(biotr_i_nam(jn))//"_trvel",
398     &        "Ice-atmos "//TRIM(biotr_i_nam(jn))//" transfer velocity",
399     &        TRIM(biotr_i_uni(jn))//"m/s","time","-","-","-")
400         WRITE(numout,*) ' At-ice gas transfer vel. dimension created ',
401     &   TRIM(biotr_i_nam(jn))//"_trvel"
402
403         WRITE(numout,*) ' Tracer number : ', jn
404         CALL CF_CREATE_VAR(TRIM(biotr_i_nam(jn))//"pc_sat",
405     &        "%sat, "//TRIM(biotr_i_nam(jn)),
406     &        TRIM(biotr_i_uni(jn)),"time","z_i_b","-","-" )
407         WRITE(numout,*) ' %sat dimension created ',
408     &   TRIM(biotr_i_nam(jn))//"pc_sat"
409
410         ENDIF ! gases
411
412         END DO ! jn
413
414         !------------------
415         ! Carbonate system
416         !------------------
417         IF ( ln_carbon ) THEN
418
419         CALL CF_CREATE_VAR("CO2aq", "Bulk aqueous CO2 concentration", 
420     .                   "mmol m-3","time","z_i_b","-","-" )
421         WRITE(numout,*) ' CO2aq created '
422
423         CALL CF_CREATE_VAR("CO32m", "Bulk CO32- concentration", 
424     .                   "mmol m-3","time","z_i_b","-","-" )
425         WRITE(numout,*) ' CO32m created '
426
427         CALL CF_CREATE_VAR("HCO3m", "Bulk HCO3m concentration", 
428     .                   "mmol m-3","time","z_i_b","-","-" )
429         WRITE(numout,*) ' HCO3m created '
430
431         CALL CF_CREATE_VAR("pH",    "Brine pH",
432     .                   "-","time","z_i_b","-","-" )
433         WRITE(numout,*) ' brine pH created'
434
435         CALL CF_CREATE_VAR("pCO2",  "Brine pCO2",
436     .                   "-","time","z_i_b","-","-" )
437         WRITE(numout,*) ' brine pCO2 created'
438
439         ENDIF
440
441
442         ! Chlorophyll a
443         CALL CF_CREATE_VAR("Chla_bio", "Chlorophyll a on bio grid",
444     &        "mmol.m-3","time","z_i_b","-","-")
445         WRITE(numout,*) ' Chla bio created '
446
447         ! Chlorophyll a
448         CALL CF_CREATE_VAR("ChlC_bio", "Chl/C",
449     &        "mmol.m-3","time","z_i_b","-","-")
450         WRITE(numout,*) ' ChlC_bio created '
451
452         CALL CF_CREATE_VAR("Chla_phy", "Chlorophyll a on phy grid",
453     &        "mmol.m-3","time","z_i_p","-","-" )
454         WRITE(numout,*) ' Chla phy created '
455
456         ! PAR
457         CALL CF_CREATE_VAR("PAR","PAR on phy grid - top of layers",
458     &                      "µE.m-2.s-1","time","z_i_p","-","-" )
459         WRITE(numout,*) ' PAR created '
460
461         ! PAR
462         CALL CF_CREATE_VAR("PAR_bio","PAR on bio grid - top of layers",
463     &                      "µE.m-2.s-1","time","z_i_b","-","-" )
464         WRITE(numout,*) ' PAR_BIO created '
465
466         ENDIF ! c_bio_model
467
468         IF ( c_bio_model .EQ. 'KRILL' ) THEN
469
470         IF ( ln_ikaite ) THEN
471         
472         CALL CF_CREATE_VAR("ika_rate","CaCO3 precip/dissol rate",
473     .                   "mmol CaCO3 m-3 s-1","time","z_i_b","-","-" )
474         WRITE(numout,*) ' CaCO3 precip/dissol rate created '
475
476         CALL CF_CREATE_VAR("ika_omega","CaCO3 saturation state",
477     .                   "-","time","z_i_b","-","-" )
478         WRITE(numout,*) ' CaCO3 saturation state created '
479
480         ENDIF
481
482         IF ( flag_active(4) ) THEN
483         ! Sources and sinks
484         CALL CF_CREATE_VAR("syn","Algal synthesis",
485     .                   "mmol C m-3 s-1","time","z_i_b","-","-" )
486         WRITE(numout,*) ' Algal growth created '
487
488         CALL CF_CREATE_VAR("rsp","Algal respiration",
489     .                   "mmol C m-3 s-1","time","z_i_b","-","-" )
490         WRITE(numout,*) ' Algal respiration created '
491
492         CALL CF_CREATE_VAR("lys","Algal lysis",
493     .                   "mmol C m-3 s-1","time","z_i_b","-","-" )
494         WRITE(numout,*) ' Algal lysis created '
495
496         CALL CF_CREATE_VAR("rem","Remineralization",
497     .                   "mmol C m-3 s-1","time","z_i_b","-","-" )
498         WRITE(numout,*) ' Remineralization created '
499
500         CALL CF_CREATE_VAR("lim_lig","Light limitation",
501     .                   "-","time","z_i_b","-","-" )
502         WRITE(numout,*) ' Light limitation created '
503
504         CALL CF_CREATE_VAR("lim_dsi","DSi limitation",
505     .                   "-","time","z_i_b","-","-" )
506         WRITE(numout,*) ' DSi limitation created '
507
508         CALL CF_CREATE_VAR("lim_no3","NO3 limitation",
509     .                   "-","time","z_i_b","-","-" )
510         WRITE(numout,*) ' NO3 limitation created '
511
512         CALL CF_CREATE_VAR("lim_po4","PO4 limitation",
513     .                   "-","time","z_i_b","-","-" )
514         WRITE(numout,*) ' NO3 limitation created '
515
516         CALL CF_CREATE_VAR("lim_tem","Temp limitation",
517     .                   "-","time","z_i_b","-","-" )
518         WRITE(numout,*) ' Temp limitation created '
519
520         CALL CF_CREATE_VAR("lim_sal","Sal limitation",
521     .                   "-","time","z_i_b","-","-" )
522         WRITE(numout,*) ' Sal limitation created '
523         
524         CALL CF_CREATE_VAR("divf_si","Flux divergence silicate",
525     .                   "mmol Si m-3 s-1","time","z_i_b","-","-" )
526         WRITE(numout,*) ' Flux divergence silicate created '
527
528         CALL CF_CREATE_VAR("divf_n","Flux divergence nitrate",
529     .                   "mmol N m-3 s-1","time","z_i_b","-","-" )
530         WRITE(numout,*) ' Flux divergence nitrate created '
531
532         ENDIF ! flag_active
533
534         ENDIF ! c_bio_model
535
536         !---------------
537         ! File creation
538         !---------------
539         CALL CF_CREATE_FILE(filenc)
540
541      ENDIF
542
543!
544!-----------------------------------------------------------------------------!
545! 2) Write in the netcdf
546!-----------------------------------------------------------------------------!
547!
548      WRITE(numout,*) ' Write into the NetCdf file '
549      ji = 1
550      !-----------
551      ! Open file
552      !-----------
553      CALL CF_OPEN  (filenc,id)
554      !-------------------
555      ! Write in the file
556      !-------------------
557      ! Time
558      !------
559      CALL CF_WRITE (filenc, 'numt', numit-nstart+1, 
560     &               1, 1, 1, REAL(numit))
561      CALL CF_WRITE (filenc, 'doy', numit-nstart+1, 
562     &               1, 1, 1, REAL(doy))
563      CALL CF_WRITE (filenc, 'ts_m', numit-nstart+1, 
564     &               1, 1, 1, REAL(numit)/86400.0*REAL(ddtb)/30.0)
565      CALL CF_WRITE (filenc, 'ts_d', numit-nstart+1, 
566     &               1, 1, 1, REAL(numit)/86400.*REAL(ddtb) )
567
568      ! Grids
569      !-------
570      ! vertical cotes, physical
571      DO layer = 1, nlay_i
572         dummy_vector(layer) = REAL( ht_i_b(ji) ) / REAL( nlay_i ) * 
573     &                       ( REAL( layer ) - 1./2. )
574      END DO
575      CALL CF_WRITE (filenc, 'z_ip', numit-nstart+1, nlay_i, 1, 1, 
576     &               dummy_vector )
577
578      ! vertical cotes, biological
579      DO layer = 1, nlay_bio
580         dummy_vector(layer) = REAL( z_i_bio(layer) )
581      END DO
582      CALL CF_WRITE (filenc, 'z_ib', numit-nstart+1, nlay_bio, 1, 1, 
583     &               dummy_vector )
584
585      IF ( ( c_grid .EQ. 'SL' ) .OR. ( c_grid .EQ. 'BA' ) ) 
586     &   CALL CF_WRITE (filenc, 'hbio ', numit-nstart+1, 
587     &               1, 1, 1, REAL(h_bio))
588
589      ! Ice / snow thickness and variations
590      !-------------------------------------
591      CALL CF_WRITE (filenc, 'h_i ', numit-nstart+1, 
592     &               1, 1, 1, REAL(ht_i_b(ji)))
593      CALL CF_WRITE (filenc, 'dhib', numit-nstart+1, 
594     &               1, 1, 1, 
595     &               REAL(dh_i_bott(ji) / ddtb * 86400.0 * 100.0) )
596      CALL CF_WRITE (filenc, 'dhisu', numit-nstart+1, 
597     &               1, 1, 1, 
598     &               REAL(dh_i_surf(ji) / ddtb * 86400.0 * 100.0) )
599      WRITE(numout,*) ' ice output, dh_snowice1: ', dh_snowice(ji)
600      CALL CF_WRITE (filenc, 'dhisi', numit-nstart+1, 
601     &               1, 1, 1, 
602     &               REAL(dh_snowice(ji) / ddtb * 86400.0 * 100.0) )
603      WRITE(numout,*) ' ice output, dh_snowice2: ', 
604     &               REAL(dh_snowice(ji) / ddtb * 86400.0 * 100.0)
605
606      CALL CF_WRITE (filenc, 'h_s ', numit-nstart+1, 
607     &               1, 1, 1, REAL(ht_s_b(ji)))
608      CALL CF_WRITE (filenc, 'dhs', numit-nstart+1, 
609     &               1, 1, 1, 
610     &               REAL(dh_s_tot(ji) / ddtb * 86400.0 * 100.0) )
611      CALL CF_WRITE (filenc, 'uml ', numit-nstart+1, 
612     &               1, 1, 1, REAL(ht_w_b(ji)))
613      CALL CF_WRITE (filenc, 't_su', numit-nstart+1, 
614     &               1, 1, 1, REAL(t_su_b(ji) - 
615     &               273.16) )
616      CALL CF_WRITE (filenc, 'fsb', numit-nstart+1, 
617     &               1, 1, 1, REAL(fsb) )
618      CALL CF_WRITE (filenc, 'fsbp', numit-nstart+1, 
619     &               1, 1, 1, REAL(fsbp) )
620
621      CALL CF_WRITE (filenc, 's_w', numit-nstart+1, 
622     &               1, 1, 1, REAL(s_w) )
623
624      ! Forcing
625      !---------
626      CALL CF_WRITE (filenc, 'Flwd', numit-nstart+1, 1, 1, 1, 
627     &               REAL( ratbqb(ji) ) )
628      CALL CF_WRITE (filenc, 'Flwu', numit-nstart+1, 1, 1, 1, 
629     &               - REAL(fratsb(ji) - ratbqb(ji)) )
630      CALL CF_WRITE (filenc, 'F_sw', numit-nstart+1, 1, 1, 1, 
631     &               REAL(fsolgb(ji) / ( 1.0 - albgb(ji) ) ) )
632      CALL CF_WRITE (filenc, 'Fswn', numit-nstart+1, 1, 1, 1, 
633     &               REAL(fsolgb(ji) ) )
634      CALL CF_WRITE (filenc, 'F_sh', numit-nstart+1, 1, 1, 1, 
635     &               REAL(fcsb(ji)) )
636      CALL CF_WRITE (filenc, 'F_lh', numit-nstart+1, 1, 1, 1, 
637     &               REAL(fleb(ji)) )
638      CALL CF_WRITE (filenc, 'albe', numit-nstart+1, 1, 1, 1, 
639     &               REAL(albgb(ji)) )
640
641      CALL CF_WRITE (filenc, 'Tair', numit-nstart+1, 1, 1, 1, 
642     &               REAL(tabqb(ji) - 273.15 ))
643      CALL CF_WRITE (filenc, 'qair', numit-nstart+1, 1, 1, 1, 
644     &               REAL(qabqb(ji)) )
645      CALL CF_WRITE (filenc, 'wspd', numit-nstart+1, 1, 1, 1, 
646     &               REAL(vabqb(ji)) )
647      CALL CF_WRITE (filenc, 'qsfc', numit-nstart+1, 1, 1, 1, 
648     &               REAL(qsfcb(ji)) )
649      CALL CF_WRITE (filenc, 'tdew', numit-nstart+1, 1, 1, 1, 
650     &               REAL(tdewb(ji))*100.0 )
651      CALL CF_WRITE (filenc, 'cldf', numit-nstart+1, 1, 1, 1, 
652     &               REAL(cldqb(ji)) )
653      CALL CF_WRITE (filenc, 'sfal', numit-nstart+1, 1, 1, 1, 
654     &               REAL(hnpbqb(ji)/ddtb) )
655      CALL CF_WRITE (filenc, 'pres', numit-nstart+1, 1, 1, 1, 
656     &               REAL(psbqb(ji)) )
657
658      ! Inner ice variables 
659      !---------------------
660      ! temperatures
661      DO layer = 1, nlay_i
662         dummy_vector(layer) = REAL(t_i_b(ji,layer) - 273.16 )
663      END DO
664      CALL CF_WRITE (filenc, 't_i ', numit-nstart+1, nlay_i, 1, 1, 
665     &               dummy_vector )
666
667      ! salinity
668      DO layer = 1, nlay_i
669         dummy_vector(layer) = REAL( s_i_b(ji,layer) )
670      END DO
671      CALL CF_WRITE (filenc, 's_i ', numit-nstart+1, nlay_i, 1, 1, 
672     &               dummy_vector )
673
674      ! brine volume
675      DO layer = 1, nlay_i
676         dummy_vector(layer) = REAL ( - tmut * s_i_b(ji,layer) / 
677     &                         ( t_i_b(ji,layer) - 273.16) ) * 100.0
678      END DO
679      CALL CF_WRITE (filenc, 'e_i ', numit-nstart+1, nlay_i, 1, 1, 
680     &               dummy_vector )
681
682      ! brine volume bio
683      DO layer = 1, nlay_bio
684         dummy_vector(layer) = REAL ( - tmut * s_i_bio(layer) / 
685     &                         ( t_i_bio(layer) - 273.16) ) * 100.0
686      END DO
687      CALL CF_WRITE (filenc, 'e_i_bio ', numit-nstart+1, nlay_bio, 1, 1, 
688     &               dummy_vector )
689     
690      ! temperature bio
691      DO layer = 1, nlay_bio
692         dummy_vector(layer) = t_i_bio(layer) - 273.16
693      END DO
694      CALL CF_WRITE (filenc, 't_i_bio ', numit-nstart+1, nlay_bio, 1, 1, 
695     &               dummy_vector )
696
697      ! brine volume bio
698      DO layer = 1, nlay_bio
699         dummy_vector(layer) = s_i_bio(layer)
700      END DO
701      CALL CF_WRITE (filenc, 's_i_bio ', numit-nstart+1, nlay_bio, 1, 1, 
702     &               dummy_vector )
703
704      ! brine salinity bio
705      DO layer = 1, nlay_bio
706!        dummy_vector(layer) = - ( t_i_bio(layer) - 273.16 ) / tmut
707         ztc = ( t_i_bio(layer) - 273.15 )
708         zt2 = ztc * ztc            ;   zt3 = zt2 * ztc
709         dummy_vector(layer) = -21.4*ztc -0.886*zt2 - 0.0170*zt3
710      END DO
711      CALL CF_WRITE (filenc, 'sbr_bio ', numit-nstart+1, nlay_bio, 1, 1, 
712     &               dummy_vector )
713
714      ! Rayleigh number
715      DO layer = 1, nlay_i
716         dummy_vector(layer) = rayleigh(layer)
717      END DO
718      CALL CF_WRITE (filenc, 'ra', numit-nstart+1, nlay_i, 1, 1, 
719     &               dummy_vector )
720     
721      ! Salt diffusivity in brine
722      DO layer = 1, nlay_i
723         dummy_vector(layer) = diff_br(layer)
724      END DO
725      CALL CF_WRITE (filenc, 'diff', numit-nstart+1, nlay_i, 1, 1, 
726     &               dummy_vector )
727
728      ! Effective permeability
729      DO layer = 1, nlay_i
730         dummy_vector(layer) = perm_eff(layer)
731      END DO
732      CALL CF_WRITE (filenc, 'perm_eff', numit-nstart+1, nlay_i, 1, 1, 
733     &               dummy_vector )
734
735      ! Advection velocity
736      DO layer = 1, nlay_i
737         dummy_vector(layer) = w_adv_br(layer)
738      END DO
739      CALL CF_WRITE (filenc, 'w_adv_br', numit-nstart+1, nlay_i, 1, 1, 
740     &               dummy_vector )
741
742      ! Upwelling salt flux from lower layer
743      DO layer = 1, nlay_i
744         dummy_vector(layer) = fsupw2(layer)
745      END DO
746      CALL CF_WRITE (filenc, 'fsupw2', numit-nstart+1, nlay_i, 1, 1, 
747     &               dummy_vector )
748
749      ! Upwelling salt flux to upper layer
750      DO layer = 1, nlay_i
751         dummy_vector(layer) = fsupw1(layer)
752      END DO
753      CALL CF_WRITE (filenc, 'fsupw1', numit-nstart+1, nlay_i, 1, 1, 
754     &               dummy_vector )
755
756      ! Downwelling salt flux into brine channels
757      DO layer = 1, nlay_i
758         dummy_vector(layer) = fsdwn(layer)
759      END DO
760      CALL CF_WRITE (filenc, 'fsdwn', numit-nstart+1, nlay_i, 1, 1, 
761     &               dummy_vector )
762
763      ! Change in salt content
764      DO layer = 1, nlay_i
765         dummy_vector(layer) = dzdsdt(layer)
766      END DO
767      CALL CF_WRITE (filenc, 'dzdsdt', numit-nstart+1, nlay_i, 1, 1, 
768     &               dummy_vector )
769
770      ! snow temperature
771      DO layer = 1, nlay_s
772         dummy_vector(layer) = REAL(t_s_b(ji,layer) - 273.16 )
773      END DO
774      CALL CF_WRITE (filenc, 't_s ', numit-nstart+1, nlay_s, 1, 1, 
775     &               dummy_vector )
776
777      ! Radiative transfer
778      !--------------------
779      ! Transmitted radiation in the ice
780      CALL CF_WRITE (filenc, 'T_is', numit-nstart+1, 
781     &               1, 1, 1, REAL(ftrice) )
782      CALL CF_WRITE (filenc, 'T_oc', numit-nstart+1, 
783     &               1, 1, 1, REAL(ftroce) )
784      ! Absorbed radiation in snow, physically
785      DO layer = 1, nlay_s
786         dummy_vector(layer) = REAL(radab_s(layer))
787      END DO
788      CALL CF_WRITE (filenc, 'A_s', numit-nstart+1, nlay_s, 1, 1, 
789     &               dummy_vector )
790      ! Absorbed radiation in ice, physically
791      DO layer = 1, nlay_i
792         dummy_vector(layer) = REAL(radab_phy_i(layer))
793      END DO
794      CALL CF_WRITE (filenc, 'A_ip', numit-nstart+1, nlay_i, 1, 1, 
795     &               dummy_vector )
796      ! Absorbed radiation in ice, biologically
797      DO layer = 1, nlay_i
798         dummy_vector(layer) = REAL(radab_alg_i(layer))
799      END DO
800      CALL CF_WRITE (filenc, 'A_ib', numit-nstart+1, nlay_i, 1, 1, 
801     &               dummy_vector )
802
803      IF ( c_bio_model .EQ. 'KRILL' ) THEN 
804
805      ! Biological variables 
806      !----------------------
807      ! tracer brine concentration
808      DO jn = 1, ntra_bio
809
810         ! tracer brine concentration
811         IF ( flag_diff(jn) .AND. flag_active(jn) ) THEN
812            DO layer = 1, nlay_bio
813               dummy_vector(layer) = REAL( c_i_bio(jn,layer) )
814            END DO
815            WRITE(numout,*) ' Tracer number : ', jn
816            WRITE(numout,*) ' dummy_vector : ', 
817     &                      ( dummy_vector(layer), layer = 1, nlay_bio )
818            CALL CF_WRITE (filenc, TRIM(biotr_i_nam(jn))//"d", 
819     &                     numit-nstart+1, nlay_bio, 1, 1, 
820     &                     dummy_vector )
821         ENDIF
822
823         ! tracer bulk ice concentration
824         IF ( flag_active(jn) ) THEN
825         DO layer = 1, nlay_bio
826            dummy_vector(layer) = REAL( cbu_i_bio(jn,layer) )
827         END DO
828
829         WRITE(numout,*) ' Tracer number : ', jn
830         WRITE(numout,*) ' dummy_vector : ', 
831     &                   ( dummy_vector(layer), layer = 1, nlay_bio )
832
833         CALL CF_WRITE (filenc, TRIM(biotr_i_nam(jn))//"b", 
834     &                  numit-nstart+1, nlay_bio, 1, 1, 
835     &                  dummy_vector )
836
837         WRITE(numout,*) ' Tracer number : ', jn
838         WRITE(numout,*) ' dummy_vector : ', 
839     &                   REAL( ct_i_bio(jn) )
840
841         CALL CF_WRITE (filenc, TRIM(biotr_i_nam(jn))//"t",
842     &                  numit-nstart+1, 1, 1, 1, 
843     &                  REAL( ct_i_bio(jn) ) )
844     
845         WRITE(numout,*) ' Tracer number : ', jn
846         WRITE(numout,*) ' dummy_vector : ', 
847     &                   REAL( c_w_bio(jn) )
848
849         CALL CF_WRITE (filenc, TRIM(biotr_i_nam(jn))//"w",
850     &                  numit-nstart+1, 1, 1, 1, 
851     &                  REAL( c_w_bio(jn) ) )
852
853         WRITE(numout,*) ' Tracer number : ', jn
854         WRITE(numout,*) ' dummy_vector : ', 
855     &                   REAL( fcb(jn) )
856
857         CALL CF_WRITE (filenc, "F"//TRIM(biotr_i_nam(jn)),
858     &                  numit-nstart+1, 1, 1, 1, 
859     &                  REAL( fcb(jn) ) )
860
861         WRITE(numout,*) ' Tracer number : ', jn
862         WRITE(numout,*) ' dummy_vector : ', 
863     &                   REAL( fcbp(jn) )
864
865         CALL CF_WRITE (filenc, "F"//TRIM(biotr_i_nam(jn))//"b",
866     &                  numit-nstart+1, 1, 1, 1, 
867     &                  REAL( fcbp(jn) ) )
868
869         WRITE(numout,*) ' Tracer number : ', jn
870         WRITE(numout,*) ' dummy_vector : ', 
871     &                   REAL( fcsi(jn) )
872
873         CALL CF_WRITE (filenc, "F"//TRIM(biotr_i_nam(jn))//"si",
874     &                  numit-nstart+1, 1, 1, 1, 
875     &                  REAL( fcsi(jn) ) )
876
877         WRITE(numout,*) ' Tracer number : ', jn
878         WRITE(numout,*) ' dummy_vector : ', 
879     &                   REAL( fcb_max(jn) )
880
881         CALL CF_WRITE (filenc, "F"//TRIM(biotr_i_nam(jn))//"bmax",
882     &                  numit-nstart+1, 1, 1, 1, 
883     &                  REAL( fcb_max(jn) ) )
884
885         IF ( biotr_i_typ(jn) .EQ. 'gas' ) THEN
886            WRITE(numout,*) ' GAS '
887            WRITE(numout,*) ' Tracer number : ', jn
888            WRITE(numout,*) ' dummy_vector : ', 
889     &                      REAL( fgas(jn) )
890
891            CALL CF_WRITE (filenc, "F"//TRIM(biotr_i_nam(jn))//"_atm",
892     &                     numit-nstart+1, 1, 1, 1, 
893     &                     REAL( fgas(jn) ) )
894
895            DO layer = 1, nlay_bio
896               dummy_vector(layer) = REAL( cbub_i_bio(jn,layer) )
897            END DO
898            WRITE(numout,*) ' Tracer number : ', jn
899            WRITE(numout,*) ' dummy_vector : ', 
900     &                      ( dummy_vector(layer), layer = 1, nlay_bio )
901            CALL CF_WRITE (filenc, TRIM(biotr_i_nam(jn))//"bub", 
902     &                     numit-nstart+1, nlay_bio, 1, 1, 
903     &                     dummy_vector )
904     
905            DO layer = 1, nlay_bio
906               dummy_vector(layer) = REAL( pc_sat(jn,layer) )
907            END DO
908            WRITE(numout,*) ' Tracer number : ', jn
909            WRITE(numout,*) ' dummy_vector : ', 
910     &                      ( dummy_vector(layer), layer = 1, nlay_bio )
911            CALL CF_WRITE (filenc, TRIM(biotr_i_nam(jn))//"pc_sat", 
912     &                     numit-nstart+1, nlay_bio, 1, 1, 
913     &                     dummy_vector )
914
915            WRITE(numout,*) ' GAS '
916            WRITE(numout,*) ' Tracer number : ', jn
917            WRITE(numout,*) ' dummy_vector : ', 
918     &                      REAL( f_bub(jn) )
919
920            CALL CF_WRITE (filenc, "F"//TRIM(biotr_i_nam(jn))//"_bub",
921     &                     numit-nstart+1, 1, 1, 1, 
922     &                     REAL( f_bub(jn) ) )
923
924            WRITE(numout,*) ' GAS '
925            WRITE(numout,*) ' Tracer number : ', jn
926            WRITE(numout,*) ' dummy_vector : ', 
927     &                      REAL( gas_trvel(jn) )
928
929            CALL CF_WRITE (filenc, TRIM(biotr_i_nam(jn))//"_trvel",
930     &                     numit-nstart+1, 1, 1, 1, 
931     &                     REAL( gas_trvel(jn) ) )
932
933         ENDIF ! biotr_i_typ
934
935         ENDIF ! flag_active
936      END DO ! jn
937
938      !------------------
939      ! Carbonate system
940      !------------------
941      IF ( ln_carbon ) THEN
942
943         DO layer = 1, nlay_bio
944            dummy_vector(layer) = REAL(CO2aq(layer))
945         END DO
946         CALL CF_WRITE (filenc, 'CO2aq', numit-nstart+1, nlay_i, 1, 1,
947     &                  dummy_vector )
948
949         DO layer = 1, nlay_bio
950            dummy_vector(layer) = REAL(CO32m(layer))
951         END DO
952         CALL CF_WRITE (filenc, 'CO32m', numit-nstart+1, nlay_i, 1, 1,
953     &                  dummy_vector )
954
955         DO layer = 1, nlay_bio
956            dummy_vector(layer) = REAL(HCO3m(layer))
957         END DO
958         CALL CF_WRITE (filenc, 'HCO3m', numit-nstart+1, nlay_i, 1, 1,
959     &                  dummy_vector )
960
961         DO layer = 1, nlay_bio
962            dummy_vector(layer) = REAL(pH(layer))
963         END DO
964         CALL CF_WRITE (filenc, 'pH', numit-nstart+1, nlay_i, 1, 1,
965     &                  dummy_vector )
966
967         DO layer = 1, nlay_bio
968            dummy_vector(layer) = REAL(pCO2(layer))
969         END DO
970         CALL CF_WRITE (filenc, 'pCO2', numit-nstart+1, nlay_i, 1, 1,
971     &                  dummy_vector )
972
973      ENDIF
974
975      ! Chla, physical grid
976      DO layer = 1, nlay_i
977         dummy_vector(layer) = REAL(chla_i(layer))
978      END DO
979      CALL CF_WRITE (filenc, 'Chla_phy', numit-nstart+1, nlay_i, 1, 1, 
980     &               dummy_vector )
981
982      ! ChlC_bio           
983      DO layer = 1, nlay_bio
984         dummy_vector(layer) = REAL(ChlC_bio(layer))
985      END DO
986      CALL CF_WRITE (filenc, 'ChlC_bio', numit-nstart+1, nlay_i, 1, 1, 
987     &               dummy_vector )
988
989      ! Chla, biological grid
990      DO layer = 1, nlay_bio
991         dummy_vector(layer) = REAL(chla_i_bio(layer))
992      END DO
993      CALL CF_WRITE (filenc, 'Chla_bio', numit-nstart+1, nlay_bio, 1, 1,
994     &               dummy_vector )
995
996      ! PAR
997      DO layer = 1, nlay_i
998         dummy_vector(layer) = REAL(par(layer))
999      END DO
1000      CALL CF_WRITE (filenc, 'PAR', numit-nstart+1, nlay_i, 1, 1, 
1001     &               dummy_vector )
1002
1003      ! PAR_bio
1004      DO layer = 1, nlay_bio
1005         dummy_vector(layer) = REAL(par_bio(layer))
1006      END DO
1007      CALL CF_WRITE (filenc, 'PAR_bio', numit-nstart+1, nlay_bio, 1, 1, 
1008     &               dummy_vector )
1009
1010      ENDIF
1011
1012
1013      IF ( c_bio_model .EQ. 'KRILL' ) THEN
1014
1015      !-------------------
1016      ! Sources and sinks
1017      !-------------------
1018     
1019      IF ( ln_ikaite ) THEN
1020
1021      ! CaCO3 precipitation / dissolution rate
1022      DO layer = 1, nlay_bio
1023         dummy_vector(layer) = REAL(ika_rate(layer))
1024      END DO
1025      CALL CF_WRITE (filenc, 'ika_rate', numit-nstart+1, nlay_bio, 1,1, 
1026     &               dummy_vector )
1027
1028      ! CaCO3 saturation state
1029      DO layer = 1, nlay_bio
1030         dummy_vector(layer) = REAL(ika_omega(layer))
1031      END DO
1032      CALL CF_WRITE (filenc, 'ika_omega', numit-nstart+1, nlay_bio, 1,1,
1033     &               dummy_vector )
1034
1035      ENDIF ! ln_ikaite
1036
1037      IF ( flag_active(4) ) THEN
1038
1039      ! synthesis
1040      DO layer = 1, nlay_bio
1041         dummy_vector(layer) = REAL(syn_bio(layer))
1042      END DO
1043      CALL CF_WRITE (filenc, 'syn', numit-nstart+1, nlay_bio, 1, 1, 
1044     &               dummy_vector )
1045
1046      ! respiration
1047      DO layer = 1, nlay_bio
1048         dummy_vector(layer) = REAL(rsp_bio(layer))
1049      END DO
1050      CALL CF_WRITE (filenc, 'rsp', numit-nstart+1, nlay_bio, 1, 1, 
1051     &               dummy_vector )
1052
1053      ! lysis
1054      DO layer = 1, nlay_bio
1055         dummy_vector(layer) = REAL(lys_bio(layer))
1056      END DO
1057      CALL CF_WRITE (filenc, 'lys', numit-nstart+1, nlay_bio, 1, 1, 
1058     &               dummy_vector )
1059
1060      ! remineralization
1061      DO layer = 1, nlay_bio
1062         dummy_vector(layer) = REAL(rem_bio(layer))
1063      END DO
1064      CALL CF_WRITE (filenc, 'rem', numit-nstart+1, nlay_bio, 1, 1, 
1065     &               dummy_vector )
1066
1067      ! Light limitation
1068      DO layer = 1, nlay_bio
1069         dummy_vector(layer) = REAL(lim_lig(layer))
1070      END DO
1071      CALL CF_WRITE (filenc, 'lim_lig', numit-nstart+1, nlay_bio, 1, 1, 
1072     &               dummy_vector )
1073
1074      ! DSi limitation
1075      DO layer = 1, nlay_bio
1076         dummy_vector(layer) = REAL(lim_dsi(layer))
1077      END DO
1078      CALL CF_WRITE (filenc, 'lim_dsi', numit-nstart+1, nlay_bio, 1, 1, 
1079     &               dummy_vector )
1080
1081      ! NO3 limitation
1082      DO layer = 1, nlay_bio
1083         dummy_vector(layer) = REAL(lim_no3(layer))
1084      END DO
1085      CALL CF_WRITE (filenc, 'lim_no3', numit-nstart+1, nlay_bio, 1, 1, 
1086     &               dummy_vector )
1087
1088      ! PO4 limitation
1089      DO layer = 1, nlay_bio
1090         dummy_vector(layer) = REAL(lim_po4(layer))
1091      END DO
1092      CALL CF_WRITE (filenc, 'lim_po4', numit-nstart+1, nlay_bio, 1, 1, 
1093     &               dummy_vector )
1094
1095      ! Temperature limitation
1096      DO layer = 1, nlay_bio
1097         dummy_vector(layer) = REAL(lim_tem(layer))
1098      END DO
1099      CALL CF_WRITE (filenc, 'lim_tem', numit-nstart+1, nlay_bio, 1, 1, 
1100     &               dummy_vector )
1101
1102      ! Salinity limitation
1103      DO layer = 1, nlay_bio
1104         dummy_vector(layer) = REAL(lim_sal(layer))
1105      END DO
1106      CALL CF_WRITE (filenc, 'lim_sal', numit-nstart+1, nlay_bio, 1, 1, 
1107     &               dummy_vector )
1108
1109      ! Flux divergence, silicate
1110      DO layer = 1, nlay_bio
1111         dummy_vector(layer) = REAL(diag_divf_bio(1,layer))
1112      END DO
1113      CALL CF_WRITE (filenc, 'divf_si', numit-nstart+1, nlay_bio, 1, 1, 
1114     &               dummy_vector )
1115
1116      ! Flux divergence, nitrate
1117      DO layer = 1, nlay_bio
1118         dummy_vector(layer) = REAL(diag_divf_bio(7,layer))
1119      END DO
1120      CALL CF_WRITE (filenc, 'divf_n', numit-nstart+1, nlay_bio, 1, 1, 
1121     &               dummy_vector )
1122
1123      ENDIF ! flag_active
1124
1125      ENDIF ! c_bio_model
1126
1127      !------------
1128      ! Close file
1129      !------------
1130      CALL CF_CLOSE (filenc)
1131!
1132!-----------------------------------------------------------------------------!
1133!
1134      WRITE(numout,*) 
1135
1136      END SUBROUTINE
Note: See TracBrowser for help on using the repository browser.