Opened 14 years ago
Closed 14 years ago
#583 closed Bug (fixed)
[solved] problem with IOF in 1/12° configs
Reported by: | rdussin | Owned by: | smasson |
---|---|---|---|
Priority: | low | Milestone: | |
Component: | OCE | Version: | v3.1 |
Severity: | Keywords: | IOF | |
Cc: |
Description
When using NATL12 in nemo3.1 with IOF and ln_2m = true, I had the error :
Floating-point zero divide PROG=sbcblk_core.turb_core_2z
To solve this :
in fldread.F90, I've changed the end loop indices to nlcj and nlci instead of jpi and jpj
in sbcblk_core.F90, I added the following line in the main loop of the TURB_CORE_2Z routine ( after ! Updating virtual potential temperature at zu) :
T_vpot_u=max(T_vpot_u,1e-15)
Commit History (1)
Changeset | Author | Time | ChangeLog |
---|---|---|---|
1955 | sga | 2010-06-25T09:58:46+02:00 | NEMO trunk: fldread.F90 change extent of data read in from weights file to jpi,jpj so output array has valid value everywhere see ticket #583 |
Attachments (3)
Change History (8)
Changed 14 years ago by rdussin
Changed 14 years ago by rdussin
comment:1 Changed 14 years ago by smasson
- Owner changed from NEMO team to smasson
comment:2 Changed 14 years ago by smasson
- Status changed from new to assigned
Changed 14 years ago by sga
comment:3 Changed 14 years ago by sga
comment:4 Changed 14 years ago by smasson
This looks ok to me, except 2 minors points
- I think you should use jpdom_data instead of jpdom_autoglo
- We usually simply use ":" instead of "1:jpi" -> ref_wgts(nxt_wgt)%data_jpi(:,:,:)
Could you commit your changes and close the ticket?
seb
comment:5 Changed 14 years ago by sga
- Resolution set to fixed
- Status changed from assigned to closed
Above changes (including Sebastien's suggestions) committed to trunk, revision 1955
Hello Sebastien.
My belief is that this problem is really to do with how IOF handles extra rows between nlcj and jpj when using mpp and nlcj<jpj.
The current version of fldread leaves the weights and the input data indices as zeroes in this strip, and the resulting interpolated arrays produced by fld_interp have also rows of zeroes. I've tested this with a run of ORCA1, but I cannot reproduce Raphael's problem of zero divides.
My solution (see attached file) is just to use jpdom_autoglo in the iom_get's used for the weights file. This means that any extra rows outside nlcj are given valid values, and the resulting interpolated arrays have identical rows nlcj and jpj when nlcj<jpj.
Any routine which performs calculations upto jpj should therefore have valid values.
Steven