[Mitgcm-support] exch r4/r8 tidy up/cd scheme

mitgcm-support at dev.mitgcm.org mitgcm-support at dev.mitgcm.org
Wed Jul 9 15:43:04 EDT 2003


The current exchange routines have a middle level that use
real*4 and real*8 declarations/names:

ls pkg/oldexchange/
CPP_EEMACROS.h     exch_rl_recv_get_x.F  exch_rs_recv_get_y.F  exch_xy_r8.F
exch.F             exch_rl_recv_get_y.F  exch_rs_send_put_x.F  exch_xyz_r4.F
exch_control.F     exch_rl_send_put_x.F  exch_rs_send_put_y.F  exch_xyz_r8.F
exch_recv_get_x.F  exch_rl_send_put_y.F  exch_send_put_x.F
exch_recv_get_y.F  exch_rs.F             exch_send_put_y.F
exch_rl.F          exch_rs_recv_get_x.F  exch_xy_r4.F

even though the lower level routines called by them use the _RS/_RL
form again. That's easily titied up:

ls pkg/newoldexchange/
CPP_EEMACROS.h     exch_rl_recv_get_x.F  exch_rs_recv_get_y.F  exch_xy_rs.F
exch.F             exch_rl_recv_get_y.F  exch_rs_send_put_x.F  exch_xyz_rl.F
exch_control.F     exch_rl_send_put_x.F  exch_rs_send_put_y.F  exch_xyz_rs.F
exch_recv_get_x.F  exch_rl_send_put_y.F  exch_send_put_x.F
exch_recv_get_y.F  exch_rs.F             exch_send_put_y.F
exch_rl.F          exch_rs_recv_get_x.F  exch_xy_rl.F

seems simple enough.


Adding the 8 permutations of exch_rl:

ls pkg/exchange/*_rl.F
exch_centered_rl.F  exch_signed_b_rl.F    exch_unsigned_b_rl.F
exch_nodes_rl.F     exch_signed_c_rl.F    exch_unsigned_c_rl.F
exch_signed_a_rl.F  exch_unsigned_a_rl.F 

but of course there's 8 more for exch_rs and then double that
many macros to deal with _xy and _xyz. Yuck!

Something unexpected:  the CD scheme means we need an exch_signed_d_rl.F
too so that should make 10 permutations, 20 routines and 40 macros!
Thank God we don't need them all...

A.



More information about the MITgcm-support mailing list