Opened 17 years ago
Closed 17 years ago
#286 closed defect (WorksForMe)
_FillValue and side effects
| Reported by: | crode1968 | Owned by: | arango |
|---|---|---|---|
| Priority: | minor | Milestone: | Release ROMS/TOMS 3.2 |
| Component: | Nonlinear | Version: | 3.2 |
| Keywords: | _FillValue, ocean_his, restart | Cc: |
Description (last modified by )
Since the _FillValue has been introduced to mark land points in the ocean_his output files, one can not use them directly to restart the model (assuming the ocean_his files containing all relevant data). Since grid points' values located on land are set to _FillValue, ROMS stops during initialization by reporting unreasonable input values.
Setting the _FillValues to zero (like in the old case) resolves the problem but might be not intended. Therefore I would suggest, if the checking of unreasonable values might be improved and is restricted only on ocean points by using the existing masks.
Thanks in advance
Change History (1)
comment:1 by , 17 years ago
| Description: | modified (diff) |
|---|---|
| Resolution: | → WorksForMe |
| Status: | new → closed |

No, this is not the case. All _FillValues are replaced with zero in all the nf_fread* routines. For example, in nf_fread2d.F we have:
status=nf90_get_var(ncid, ncvarid, wrk, start, total) IF (status.eq.nf90_noerr) THEN Amin=spval Amax=-spval DO i=1,Npts IF (ABS(wrk(i)).ge.ABS(Aspval)) THEN wrk(i)=0.0_r8 ! masked with _FillValue ELSE ... END IF END DO END IFThis will remove any _FillValue at input. We cannot apply land/sea mask here because this type of coding is not adjointable. Anyway, the mask multiplication takes place in ini_fields for all the model state variables.
Therefore, I don't see the problem that you are reporting.