-
Notifications
You must be signed in to change notification settings - Fork 0
Update to CMIP7 diagnostics #35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
11c446a
63f7641
e146cff
b59601a
19e550d
e49e0eb
50ce815
bc4a51f
86dd0e1
462a1bd
e26beb9
cb3bce8
8ae3a8b
4f24ad2
00dcd15
4f46545
b57d7ec
a9cf7f7
003961c
6daf211
2c26cfc
aec5e8d
77622b3
6eb67cd
8e65dec
8f6f206
fe5e7a0
061fada
d0a7db6
1673cb2
d518ff7
d3c1fa0
0f0df60
db55587
a8c2d26
e081c14
81f2080
f914d6b
60179c8
387dc7b
a6cd05b
15656b4
a426958
34759cd
c549af9
b09a985
1db42f3
5da1061
aafe598
79ad707
62dcb7e
8c7035f
acbecaf
6781f62
d15555b
cf9c0eb
ac52cb6
d8e6797
62fd66f
22dcdf9
edd67f0
cd905a8
3f0f381
d083b62
bf9a479
25150ff
1b8fa36
14e1ecb
a43343a
2a9f9e4
d18bc58
1fe8164
4eccf53
5e378b3
6a912f8
2e8071f
adff66c
fd8ccf3
41c6a64
67863be
eb9583d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -62,14 +62,13 @@ subroutine CICE_Run | |||||||||||||||||||||||||||
| use ice_timers, only: ice_timer_start, & | ||||||||||||||||||||||||||||
| ice_timer_stop, timer_couple, timer_step, & | ||||||||||||||||||||||||||||
| timer_from_atm, timer_into_atm, timer_from_ocn, timer_into_ocn | ||||||||||||||||||||||||||||
| use ice_grid, only: t2ugrid_vector, u2tgrid_vector | ||||||||||||||||||||||||||||
| use ice_grid, only: t2ugrid_vector | ||||||||||||||||||||||||||||
| integer (kind=int_kind) :: time_sec, itap, icpl_ai, tmp_time | ||||||||||||||||||||||||||||
| integer (kind=int_kind) :: rtimestamp_ai, stimestamp_ai | ||||||||||||||||||||||||||||
| integer (kind=int_kind) :: rtimestamp_io, stimestamp_io | ||||||||||||||||||||||||||||
| !receive and send timestamps (seconds) | ||||||||||||||||||||||||||||
| integer (kind=int_kind) :: imon | ||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
| logical :: write_tmp_dump = .true. | ||||||||||||||||||||||||||||
| #endif | ||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
| !-------------------------------------------------------------------- | ||||||||||||||||||||||||||||
|
|
@@ -83,9 +82,12 @@ subroutine CICE_Run | |||||||||||||||||||||||||||
| !-------------------------------------------------------------------- | ||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
| #ifdef ACCESS | ||||||||||||||||||||||||||||
| write(il_out,*)'A <==> I coupling num_cpl_ai = ',num_cpl_ai | ||||||||||||||||||||||||||||
| write(il_out,*)' ice steps per ai interval num_ice_ai = ',num_ice_ai | ||||||||||||||||||||||||||||
| write(il_out,*)' runtime, runtime0 = ',runtime, runtime0 | ||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
| if (my_task == master_task) then | ||||||||||||||||||||||||||||
| write(il_out,*)'A <==> I coupling num_cpl_ai = ',num_cpl_ai | ||||||||||||||||||||||||||||
| write(il_out,*)' ice steps per ai interval num_ice_ai = ',num_ice_ai | ||||||||||||||||||||||||||||
| write(il_out,*)' runtime, runtime0 = ',runtime, runtime0 | ||||||||||||||||||||||||||||
| endif | ||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
| time_sec = 0 | ||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
|
@@ -94,7 +96,7 @@ subroutine CICE_Run | |||||||||||||||||||||||||||
| !receive a2i fields | ||||||||||||||||||||||||||||
| rtimestamp_ai = time_sec | ||||||||||||||||||||||||||||
| !call ice_timer_start(timer_from_atm) ! atm/ice coupling | ||||||||||||||||||||||||||||
| write(il_out,*)' calling from_atm at icpl_ai, time_sec = ', icpl_ai, time_sec | ||||||||||||||||||||||||||||
| ! write(il_out,*)' calling from_atm at icpl_ai, time_sec = ', icpl_ai, time_sec | ||||||||||||||||||||||||||||
| !=========================== | ||||||||||||||||||||||||||||
| call from_atm(rtimestamp_ai) | ||||||||||||||||||||||||||||
| !=========================== | ||||||||||||||||||||||||||||
|
|
@@ -116,8 +118,8 @@ subroutine CICE_Run | |||||||||||||||||||||||||||
| call t2ugrid_vector(io_strsu) | ||||||||||||||||||||||||||||
| call t2ugrid_vector(io_strsv) | ||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
| write(il_out,'(a,3i10)') & | ||||||||||||||||||||||||||||
| ' calling into_ocn at icpl_ai, itap, time_sec = ', icpl_ai, itap, time_sec | ||||||||||||||||||||||||||||
| ! write(il_out,'(a,3i10)') & | ||||||||||||||||||||||||||||
| ! ' calling into_ocn at icpl_ai, itap, time_sec = ', icpl_ai, itap, time_sec | ||||||||||||||||||||||||||||
| !call ice_timer_start(timer_into_ocn) ! atm/ocn coupling | ||||||||||||||||||||||||||||
| !=========================== | ||||||||||||||||||||||||||||
| !call check_iceberg_fields('chk_iceberg_i2o.nc') | ||||||||||||||||||||||||||||
|
|
@@ -161,8 +163,8 @@ subroutine CICE_Run | |||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
| stimestamp_ai = time_sec | ||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
| write(il_out,'(a,3i10)') & | ||||||||||||||||||||||||||||
| ' calling into_atm at icpl_ai, itap, time_sec = ',icpl_ai, itap, time_sec | ||||||||||||||||||||||||||||
| ! write(il_out,'(a,3i10)') & | ||||||||||||||||||||||||||||
| ! ' calling into_atm at icpl_ai, itap, time_sec = ',icpl_ai, itap, time_sec | ||||||||||||||||||||||||||||
| !=========================== | ||||||||||||||||||||||||||||
| call into_atm(stimestamp_ai) | ||||||||||||||||||||||||||||
| !=========================== | ||||||||||||||||||||||||||||
|
|
@@ -292,6 +294,10 @@ subroutine ice_step | |||||||||||||||||||||||||||
| use ice_algae, only: bgc_diags, write_restart_bgc | ||||||||||||||||||||||||||||
| use ice_zbgc, only: init_history_bgc, biogeochemistry | ||||||||||||||||||||||||||||
| use ice_zbgc_shared, only: skl_bgc | ||||||||||||||||||||||||||||
| #ifdef ACCESS | ||||||||||||||||||||||||||||
| use ice_state, only: vsno, aice, tr_pond | ||||||||||||||||||||||||||||
| use ice_flux, only: snowfrac | ||||||||||||||||||||||||||||
| #endif | ||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
| integer (kind=int_kind) :: & | ||||||||||||||||||||||||||||
| iblk , & ! block index | ||||||||||||||||||||||||||||
|
|
@@ -428,20 +434,12 @@ subroutine coupling_prep (iblk) | |||||||||||||||||||||||||||
| use ice_constants, only: c0, c1, puny, rhofresh | ||||||||||||||||||||||||||||
| use ice_coupling, only: top_layer_Tandk_run, sfcflux_to_ocn | ||||||||||||||||||||||||||||
| use ice_domain_size, only: ncat | ||||||||||||||||||||||||||||
| use ice_flux, only: alvdf, alidf, alvdr, alidr, albice, albsno, & | ||||||||||||||||||||||||||||
| albpnd, albcnt, apeff_ai, coszen, fpond, fresh, & | ||||||||||||||||||||||||||||
| alvdf_ai, alidf_ai, alvdr_ai, alidr_ai, fhocn_ai, & | ||||||||||||||||||||||||||||
| fresh_ai, fsalt_ai, fsalt, & | ||||||||||||||||||||||||||||
| fswthru_ai, fhocn, fswthru, scale_factor, & | ||||||||||||||||||||||||||||
| swvdr, swidr, swvdf, swidf, Tf, Tair, Qa, strairxT, strairyt, & | ||||||||||||||||||||||||||||
| fsens, flat, fswabs, flwout, evap, Tref, Qref, faero_ocn, & | ||||||||||||||||||||||||||||
| fsurfn_f, flatn_f, scale_fluxes, frzmlt_init, frzmlt, & | ||||||||||||||||||||||||||||
| snowfrac, snowfracn, evap_ice, evap_snow | ||||||||||||||||||||||||||||
| use ice_flux | ||||||||||||||||||||||||||||
| use ice_grid, only: tmask | ||||||||||||||||||||||||||||
| use ice_ocean, only: oceanmixed_ice, ocean_mixed_layer | ||||||||||||||||||||||||||||
| use ice_shortwave, only: alvdfn, alidfn, alvdrn, alidrn, & | ||||||||||||||||||||||||||||
| albicen, albsnon, albpndn, apeffn | ||||||||||||||||||||||||||||
| use ice_state, only: aicen, aice, aice_init, nbtrcr | ||||||||||||||||||||||||||||
| use ice_state, only: aicen, aice, aice_init, nbtrcr, tr_pond, vsno | ||||||||||||||||||||||||||||
| use ice_therm_shared, only: calc_Tsfc, heat_capacity | ||||||||||||||||||||||||||||
| use ice_timers, only: timer_couple, ice_timer_start, ice_timer_stop | ||||||||||||||||||||||||||||
| use ice_zbgc_shared, only: flux_bio, flux_bio_ai | ||||||||||||||||||||||||||||
|
|
@@ -527,8 +525,19 @@ subroutine coupling_prep (iblk) | |||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
| apeff_ai(i,j,iblk) = apeff_ai(i,j,iblk) & ! for history | ||||||||||||||||||||||||||||
| + apeffn(i,j,n,iblk)*aicen(i,j,n,iblk) | ||||||||||||||||||||||||||||
| snowfrac(i,j,iblk) = snowfrac(i,j,iblk) & ! for history | ||||||||||||||||||||||||||||
| + snowfracn(i,j,n,iblk)*aicen(i,j,n,iblk) | ||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
| if ( .not. tr_pond .and. .not. calc_Tsfc ) then | ||||||||||||||||||||||||||||
| ! calculate a snowfrac diagnostic in the same way the UM does | ||||||||||||||||||||||||||||
| ! set snow fraction using JULES empirical formula based | ||||||||||||||||||||||||||||
| ! on snow volume | ||||||||||||||||||||||||||||
| ! ref: https://github.com/ACCESS-NRI/UM7/blob/6602dadd15c190ee37c6644190f52d428bc66917/umbase_hg3/src/atmosphere/short_wave_radiation/ftsa.F90#L201-L202 | ||||||||||||||||||||||||||||
| if (aice(i,j,iblk) > 2e-4) & | ||||||||||||||||||||||||||||
| snowfrac(i,j,iblk) = c1 - exp(-p2*rhos*(vsno(i,j,iblk) / aice(i,j,iblk))) | ||||||||||||||||||||||||||||
| else | ||||||||||||||||||||||||||||
| snowfrac(i,j,iblk) = snowfrac(i,j,iblk) & ! for history | ||||||||||||||||||||||||||||
| + snowfracn(i,j,n,iblk)*aicen(i,j,n,iblk) | ||||||||||||||||||||||||||||
| endif | ||||||||||||||||||||||||||||
|
Comment on lines
+534
to
+539
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The interpretation of For the
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @anton-seaice what are your thoughts on this one. In the The diagnostics treat it as a grid cell fraction: Lines 520 to 522 in 2e8071f
Lines 2202 to 2204 in 2e8071f
Though we might need to be careful with Lines 2206 to 2212 in 2e8071f
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hi @anton-seaice @blimlim Just went and looked at some of these old conversations which my email system dates from around the 6 Nov so before the sisnconc and sisnthick got dropped from the set up so its probably what is behind the reasoning that we used back then. But I still think we should have a snow thickness its on the list from the observational community key variables, but if we are concerned what snow concentration to use and there are multiple definitions, depending on which version of CICE4/5/6 and then we are dividing snow volume by concentration to get thickness then its awkward. Its about half way down the page after 2206-2212 in 28071f on the definition of sisnthick. |
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
| enddo | ||||||||||||||||||||||||||||
| enddo | ||||||||||||||||||||||||||||
| enddo | ||||||||||||||||||||||||||||
|
|
@@ -555,6 +564,15 @@ subroutine coupling_prep (iblk) | |||||||||||||||||||||||||||
| fsalt_ai (i,j,iblk) = fsalt (i,j,iblk) | ||||||||||||||||||||||||||||
| fhocn_ai (i,j,iblk) = fhocn (i,j,iblk) | ||||||||||||||||||||||||||||
| fswthru_ai(i,j,iblk) = fswthru(i,j,iblk) | ||||||||||||||||||||||||||||
| fsens_ai (i,j,iblk) = fsens(i,j,iblk) | ||||||||||||||||||||||||||||
| flat_ai (i,j,iblk) = flat(i,j,iblk) | ||||||||||||||||||||||||||||
| fswabs_ai (i,j,iblk) = fswabs(i,j,iblk) | ||||||||||||||||||||||||||||
| flwout_ai (i,j,iblk) = flwout(i,j,iblk) | ||||||||||||||||||||||||||||
| evap_ai (i,j,iblk) = evap(i,j,iblk) | ||||||||||||||||||||||||||||
| evap_ice_ai(i,j,iblk) = evap_ice(i,j,iblk) | ||||||||||||||||||||||||||||
| evap_snow_ai(i,j,iblk) = evap_snow(i,j,iblk) | ||||||||||||||||||||||||||||
| fcondtop_ai(i,j,iblk) = fcondtop(i,j,iblk) | ||||||||||||||||||||||||||||
| fsurf_ai(i,j,iblk) = fsurf(i,j,iblk) | ||||||||||||||||||||||||||||
blimlim marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
| if (nbtrcr > 0) then | ||||||||||||||||||||||||||||
| do k = 1, nbtrcr | ||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -668,6 +668,11 @@ subroutine ice_hist_create(ns, ncfile, ncid, var, coord_var, var_nverts, var_nz) | |||||||||
| call check(nf90_put_att(ncid,varid,'cell_measures', & | ||||||||||
| avail_hist_fields(n)%vcellmeas), & | ||||||||||
| 'put att cell_measures '//avail_hist_fields(n)%vname) | ||||||||||
| if (avail_hist_fields(n)%vcomment /= "none") then | ||||||||||
| call check(nf90_put_att(ncid,varid,'comment', & | ||||||||||
| avail_hist_fields(n)%vcomment), & | ||||||||||
| 'put att comment '//avail_hist_fields(n)%vname) | ||||||||||
| endif | ||||||||||
anton-seaice marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||
| call check(nf90_put_att(ncid,varid,'missing_value',spval), & | ||||||||||
| 'put att missing_value '//avail_hist_fields(n)%vname) | ||||||||||
| call check(nf90_put_att(ncid,varid,'_FillValue',spval), & | ||||||||||
|
|
@@ -679,9 +684,20 @@ subroutine ice_hist_create(ns, ncfile, ncid, var, coord_var, var_nverts, var_nz) | |||||||||
| if (hist_avg) then | ||||||||||
| if (TRIM(avail_hist_fields(n)%vname)/='sig1' .or. & | ||||||||||
| TRIM(avail_hist_fields(n)%vname)/='sig2') then | ||||||||||
|
|
||||||||||
| call check(nf90_put_att(ncid,varid,'cell_methods','time: mean'), & | ||||||||||
| if (avail_hist_fields(n)%avg_ice_present) then | ||||||||||
| call check(nf90_put_att(ncid,varid,'cell_methods',& | ||||||||||
| 'area: time: mean where sea_ice (mask=siconc)'), & | ||||||||||
| 'put att cell methods time mean '//avail_hist_fields(n)%vname) | ||||||||||
| else | ||||||||||
| if (TRIM(avail_hist_fields(n)%vname(1:2))/='si') then !native diags | ||||||||||
| call check(nf90_put_att(ncid,varid,'cell_methods','time: mean'), & | ||||||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Probably not hugely important, but would this also slightly alter the cell methods for Lines 455 to 458 in 16e26c8
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yeah it will, this is a bit hacky, it really needs an extra cell_methods field added to
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Would there be problems caused by swapping over everything to the CMIP style cell methods?
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Its possibly ok, as all native diags use a time:mean over all timesteps.
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @anton-seaice should I defer this to a separate issue?
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 'area: mean where sea time: mean' is ok for
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yeah good to leave as is! |
||||||||||
| 'put att cell methods time mean '//avail_hist_fields(n)%vname) | ||||||||||
| else !cmip diags | ||||||||||
| call check(nf90_put_att(ncid,varid,'cell_methods', & | ||||||||||
| 'area: mean where sea time: mean'), & | ||||||||||
| 'put att cell methods time mean '//avail_hist_fields(n)%vname) | ||||||||||
| endif | ||||||||||
| endif | ||||||||||
|
Comment on lines
+687
to
+700
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This change should mean cell_methods are unchanged for native diagnostics, but for cmip diagnostics, they now include area:mean information as well |
||||||||||
| endif | ||||||||||
| endif | ||||||||||
|
|
||||||||||
|
|
@@ -739,6 +755,11 @@ subroutine ice_hist_create(ns, ncfile, ncid, var, coord_var, var_nverts, var_nz) | |||||||||
| avail_hist_fields(n)%vcellmeas) | ||||||||||
| if (status /= nf90_noerr) call abort_ice( & | ||||||||||
| 'Error defining cell measures for '//avail_hist_fields(n)%vname) | ||||||||||
| if (avail_hist_fields(n)%vcomment /= "none") then | ||||||||||
| call check(nf90_put_att(ncid,varid,'comment', & | ||||||||||
| avail_hist_fields(n)%vcomment), & | ||||||||||
| 'put att comment '//avail_hist_fields(n)%vname) | ||||||||||
| endif | ||||||||||
| status = nf90_put_att(ncid,varid,'missing_value',spval) | ||||||||||
| if (status /= nf90_noerr) call abort_ice( & | ||||||||||
| 'Error defining missing_value for '//avail_hist_fields(n)%vname) | ||||||||||
|
|
@@ -802,6 +823,11 @@ subroutine ice_hist_create(ns, ncfile, ncid, var, coord_var, var_nverts, var_nz) | |||||||||
| avail_hist_fields(n)%vcellmeas) | ||||||||||
| if (status /= nf90_noerr) call abort_ice( & | ||||||||||
| 'Error defining cell measures for '//avail_hist_fields(n)%vname) | ||||||||||
| if (avail_hist_fields(n)%vcomment /= "none") then | ||||||||||
| call check(nf90_put_att(ncid,varid,'comment', & | ||||||||||
| avail_hist_fields(n)%vcomment), & | ||||||||||
| 'put att comment '//avail_hist_fields(n)%vname) | ||||||||||
| endif | ||||||||||
| status = nf90_put_att(ncid,varid,'missing_value',spval) | ||||||||||
| if (status /= nf90_noerr) call abort_ice( & | ||||||||||
| 'Error defining missing_value for '//avail_hist_fields(n)%vname) | ||||||||||
|
|
@@ -851,6 +877,11 @@ subroutine ice_hist_create(ns, ncfile, ncid, var, coord_var, var_nverts, var_nz) | |||||||||
| avail_hist_fields(n)%vcellmeas) | ||||||||||
| if (status /= nf90_noerr) call abort_ice( & | ||||||||||
| 'Error defining cell measures for '//avail_hist_fields(n)%vname) | ||||||||||
| if (avail_hist_fields(n)%vcomment /= "none") then | ||||||||||
| call check(nf90_put_att(ncid,varid,'comment', & | ||||||||||
| avail_hist_fields(n)%vcomment), & | ||||||||||
| 'put att comment '//avail_hist_fields(n)%vname) | ||||||||||
| endif | ||||||||||
| status = nf90_put_att(ncid,varid,'missing_value',spval) | ||||||||||
| if (status /= nf90_noerr) call abort_ice( & | ||||||||||
| 'Error defining missing_value for '//avail_hist_fields(n)%vname) | ||||||||||
|
|
@@ -901,6 +932,11 @@ subroutine ice_hist_create(ns, ncfile, ncid, var, coord_var, var_nverts, var_nz) | |||||||||
| avail_hist_fields(n)%vcellmeas) | ||||||||||
| if (status /= nf90_noerr) call abort_ice( & | ||||||||||
| 'Error defining cell measures for '//avail_hist_fields(n)%vname) | ||||||||||
| if (avail_hist_fields(n)%vcomment /= "none") then | ||||||||||
| call check(nf90_put_att(ncid,varid,'comment', & | ||||||||||
| avail_hist_fields(n)%vcomment), & | ||||||||||
| 'put att comment '//avail_hist_fields(n)%vname) | ||||||||||
| endif | ||||||||||
| status = nf90_put_att(ncid,varid,'missing_value',spval) | ||||||||||
| if (status /= nf90_noerr) call abort_ice( & | ||||||||||
| 'Error defining missing_value for '//avail_hist_fields(n)%vname) | ||||||||||
|
|
@@ -966,6 +1002,11 @@ subroutine ice_hist_create(ns, ncfile, ncid, var, coord_var, var_nverts, var_nz) | |||||||||
| avail_hist_fields(n)%vcellmeas) | ||||||||||
| if (status /= nf90_noerr) call abort_ice( & | ||||||||||
| 'Error defining cell measures for '//avail_hist_fields(n)%vname) | ||||||||||
| if (avail_hist_fields(n)%vcomment /= "none") then | ||||||||||
| call check(nf90_put_att(ncid,varid,'comment', & | ||||||||||
| avail_hist_fields(n)%vcomment), & | ||||||||||
| 'put att comment '//avail_hist_fields(n)%vname) | ||||||||||
| endif | ||||||||||
| status = nf90_put_att(ncid,varid,'missing_value',spval) | ||||||||||
| if (status /= nf90_noerr) call abort_ice( & | ||||||||||
| 'Error defining missing_value for '//avail_hist_fields(n)%vname) | ||||||||||
|
|
@@ -1031,6 +1072,11 @@ subroutine ice_hist_create(ns, ncfile, ncid, var, coord_var, var_nverts, var_nz) | |||||||||
| avail_hist_fields(n)%vcellmeas) | ||||||||||
| if (status /= nf90_noerr) call abort_ice( & | ||||||||||
| 'Error defining cell measures for '//avail_hist_fields(n)%vname) | ||||||||||
| if (avail_hist_fields(n)%vcomment /= "none") then | ||||||||||
| call check(nf90_put_att(ncid,varid,'comment', & | ||||||||||
| avail_hist_fields(n)%vcomment), & | ||||||||||
| 'put att comment '//avail_hist_fields(n)%vname) | ||||||||||
| endif | ||||||||||
| status = nf90_put_att(ncid,varid,'missing_value',spval) | ||||||||||
| if (status /= nf90_noerr) call abort_ice( & | ||||||||||
| 'Error defining missing_value for '//avail_hist_fields(n)%vname) | ||||||||||
|
|
@@ -1094,9 +1140,10 @@ subroutine ice_hist_create(ns, ncfile, ncid, var, coord_var, var_nverts, var_nz) | |||||||||
| call check(nf90_put_att(ncid,nf90_global,'comment2',title), & | ||||||||||
| 'global attribute comment2') | ||||||||||
|
|
||||||||||
| title = 'CF-1.0' | ||||||||||
| call check(nf90_put_att(ncid,nf90_global,'conventions',title), & | ||||||||||
| 'global attribute conventions') | ||||||||||
| ! TO-DO: Update output for CF compliance ! | ||||||||||
| ! title = 'CF-1.0' | ||||||||||
anton-seaice marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||
| ! call check(nf90_put_att(ncid,nf90_global,'conventions',title), & | ||||||||||
| ! 'global attribute conventions') | ||||||||||
anton-seaice marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||
|
|
||||||||||
| call date_and_time(date=current_date, time=current_time) | ||||||||||
| write(start_time,1000) current_date(1:4), current_date(5:6), & | ||||||||||
|
|
||||||||||
Uh oh!
There was an error while loading. Please reload this page.