[MITgcm-devel] MDSIO questions
Patrick Heimbach
heimbach at MIT.EDU
Sun Oct 30 18:31:30 EST 2005
Hi there,
re. 1.
the original difference between
mdsio_writefield and mdsio_writefield_loc was
that one would use the mdsioLocalDir variable (if defined),
and the other wouldn't. On machines with distributed memory
and fast access to local memory one would then have written
a lot of temporary stuff (e.g. for the adjoint) to
"mdsioLocalDir" and the other stuff to ".".
This seems to have gotten mixed up down the road.
re. 2.
you're right, I have hacked mdsio_*vector.F to
include the SingleCpuIO option which had been missing there.
I haven't covered all the cases.
AFAIR(emember), the useSingleCpuIO doesn't work with real*8
anyways for any of the mdsio routines, or does it?
I haven't checked anything within EXCH2, since I've never
used it so far.
-Patrick
On Sun, 2005-10-30 at 11:10, Jean-Michel Campin wrote:
> 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
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel
--
--------------------------------------------------------
Patrick Heimbach Massachusetts Institute of Technology
FON: +1/617/253-5259 EAPS, Room 54-1518
FAX: +1/617/253-4464 77 Massachusetts Avenue
mailto:heimbach at mit.edu Cambridge MA 02139
http://www.mit.edu/~heimbach/ USA
More information about the MITgcm-devel
mailing list