[MITgcm-devel] MDSIO questions

Jean-Michel Campin jmc at ocean.mit.edu
Sun Oct 30 11:10:10 EST 2005


Hi Patrick, Dimitri, and others,

I looked to some routines in pkg/mdsio, and have few questions:

1) I don't see the purpose of S/R mdsio_writefield_loc.F
since mdsio_writefield.F (that call mdswritefield_new)
seems to do the same thing (or may be I misses something ?).
In addition, few bugs have been fixed in mdswritefield_new
but not in mdsio_writefield_loc.F, (.e.g.: after lines 186:
#if defined(ALLOW_EXCH2) && !defined(MISSING_TILE_IO)
           DO J=1,Ny
            DO I=1,Nx
             xy_buffer_r4(I,J) = 0.0
            ENDDO
           ENDDO
should in fact be (like in mdswritefield_new):
#if defined(ALLOW_EXCH2) && !defined(MISSING_TILE_IO)
           DO J=1,y_size
            DO I=1,x_size
             xy_buffer_r4(I,J) = 0.0
            ENDDO
           ENDDO
I was wondering if we can simplify the set of mdsio_writefield S/R
(one "main" S/R that really write and few other wrapper S/R that
call the main one).
The main reason would be to change the useSingleCpuIO part to make it
to work with #define RS_IS_REAL4 where _RS & _RL are effectively different.

2) mdsio_write_rl_vec.F & mdsio_write_rs_vec.F do not have the
#ifdef _BYTESWAPIO part,
and don't have the filePrecision option (precFloat32 / precFloat64)

And in mdsio_writevector.F (the only routine that calls those 2 S/R)
filePrecision and _RL,_RS are mixed in a strange way.
It's a little bit confusing, because the implementation
of useSingleCpuIO in mdsio_writevector.F account for both the
_BYTESWAPIO option and a filePrecision option.

Jean-Michel



More information about the MITgcm-devel mailing list