Back to OASIS4 home

Toy simple-mg :
atm : 1 input and 1 output field, only one grid (1:66, 1:34, 1:4)
ocn : 1 input and 1 output field, only one grid
(1:92, 1:51, 1:45)

In the search of intersections, dest is the remote proc with which the comp on the local component has an intersection. It is the process in communicator comm_psmile.
tag == lastag = 100 (defined in psmile.inc)

The new coordinates must cover the same range as the original grid
atm grid in common space : global comp id =   1
Number of grids per process in comp comm:
     2    2
Ranks in psmile communicator
     0    1
Grid extents:
 (-2.8125E+00: 1.8000E+02, -8.7134E+01: 5.5378E+00,  0.0000E+00: 3.5000E+02)
 (-1.8000E+02:-2.8125E+00, -8.7134E+01: 5.5378E+00,  0.0000E+00: 3.5000E+02)
 (-2.8125E+00: 1.8000E+02,  5.5378E+00: 8.7134E+01,  0.0000E+00: 3.5000E+02)
 (-1.8000E+02:-2.8125E+00,  5.5378E+00: 8.7134E+01,  0.0000E+00: 3.5000E+02)

ocn grid in common space : global comp id =   2
Number of grids per process in comp comm:
     2    2    2
Ranks in psmile communicator
     2    3    4
Grid extents:
 (-6.0000E+00: 1.8000E+02, -7.0185E+01:-3.0458E+01,  0.0000E+00: 5.5000E+03)
 (-1.8000E+02:-6.0000E+00, -7.0185E+01:-3.0458E+01,  0.0000E+00: 5.5000E+03)
 (-6.0000E+00: 1.8000E+02, -3.0458E+01: 3.3844E+01,  0.0000E+00: 5.5000E+03)
 (-1.8000E+02:-6.0000E+00, -3.0458E+01: 3.3844E+01,  0.0000E+00: 5.5000E+03)
 (-6.0000E+00: 1.8000E+02,  3.3844E+01: 6.8784E+01,  0.0000E+00: 5.5000E+03)
 (-1.8000E+02:-6.0000E+00,  3.3844E+01: 6.8784E+01,  0.0000E+00: 5.5000E+03)

There are 3 intersections npart after removing common ones.
For the atmosphere proc 0 :
[1] atm: PSMILe_Sel_grid_range eof: grid_id            1 , ierror = 0 ; inter  =            2           65            5           12         1            4
[1] atm: PSMILe_Sel_grid_range eof: grid_id            1 , ierror = 0 ; inter  =            2           65            5           12         1            4
[1] atm: PSMILe_Sel_grid_range eof: grid_id            1 , ierror = 0 ; inter  =            2           65            5           12         1            4
psmile_find_intersect: psmile_rank->dest, tag:            0            2                  100
use of psmile_bsend for msgint : non-blocking sends

[1] atm: PSMILe_Sel_grid_range eof: grid_id            1 , ierror = 0 ; inter  =            2           65            12          18        1            4
[1] atm: PSMILe_Sel_grid_range eof: grid_id            1 , ierror = 0 ; inter  =            2           65            12          18        1            4
[1] atm: PSMILe_Sel_grid_range eof: grid_id            1 , ierror = 0 ; inter  =            2           65            12          18        1            4
psmile_find_intersect: psmile_rank->dest, tag:            0            3                  100
use of psmile_bsend for msgint : non-blocking sends
psmile_mg_setup

For the atmosphere proc 1 :
[2] atm: PSMILe_Sel_grid_range eof: grid_id            1 , ierror = 0 ; inter  =            2           65           19           24       1            4
[2] atm: PSMILe_Sel_grid_range eof: grid_id            1 , ierror = 0 ; inter  =            2           65           19           24       1            4
[2] atm: PSMILe_Sel_grid_range eof: grid_id            1 , ierror = 0 ; inter  =            2           65           19           24       1            4
psmile_find_intersect: psmile_rank->dest, tag:            1            3                  100
use of psmile_bsend for msgint : non-blocking sends

[2] atm: PSMILe_Sel_grid_range eof: grid_id            1 , ierror = 0 ; inter  =            2           65           24           30       1            4
[2] atm: PSMILe_Sel_grid_range eof: grid_id            1 , ierror = 0 ; inter  =            2           65           24           30       1            4
[2] atm: PSMILe_Sel_grid_range eof: grid_id            1 , ierror = 0 ; inter  =            2           65           24           30       1            4
psmile_find_intersect: psmile_rank->dest, tag:            1            4                  100
use of psmile_bsend for msgint : non-blocking sends
psmile_mg_setup

There are 3 intersections npart after removing common ones.
For the ocean proc 0 :
[3] ocn: PSMILe_Sel_grid_range eof: grid_id            1 , ierror = 0 ; inter  =            2           91            2           18         1           17
[3] ocn: PSMILe_Sel_grid_range eof: grid_id            1 , ierror = 0 ; inter  =            2           91            2           18         1           17
[3] ocn: PSMILe_Sel_grid_range eof: grid_id            1 , ierror = 0 ; inter  =            2           91            2           18         1           17
psmile_find_intersect: psmile_rank->dest, tag:            2            0                  100
use of psmile_bsend for msgint : non-blocking sends
psmile_mg_setup

For the ocean proc 1 :
[4] ocn: PSMILe_Sel_grid_range eof: grid_id            1 , ierror = 0 ; inter  =            2           91           19           28        1           17
[4] ocn: PSMILe_Sel_grid_range eof: grid_id            1 , ierror = 0 ; inter  =            2           91           19           28        1           17
[4] ocn: PSMILe_Sel_grid_range eof: grid_id            1 , ierror = 0 ; inter  =            2           91           19           28        1           17
psmile_find_intersect: psmile_rank->dest, tag:            3            0                  100
use of psmile_bsend for msgint : non-blocking sends
psmile_mg_setup

[4] ocn: PSMILe_Sel_grid_range eof: grid_id            1 , ierror = 0 ; inter  =            2           91           28           35        1           17
[4] ocn: PSMILe_Sel_grid_range eof: grid_id            1 , ierror = 0 ; inter  =            2           91           28           35        1           17
[4] ocn: PSMILe_Sel_grid_range eof: grid_id            1 , ierror = 0 ; inter  =            2           91           28           35        1           17
psmile_find_intersect: psmile_rank->dest, tag:            3            1                  100
use of psmile_bsend for msgint : non-blocking sends
psmile_mg_setup

For the ocean proc 2 :
[5] ocn: PSMILe_Sel_grid_range eof: grid_id            1 , ierror = 0 ; inter  =            2           91           36           50        1           17
[5] ocn: PSMILe_Sel_grid_range eof: grid_id            1 , ierror = 0 ; inter  =            2           91           36           50        1           17
[5] ocn: PSMILe_Sel_grid_range eof: grid_id            1 , ierror = 0 ; inter  =            2           91           36           50        1           17
psmile_find_intersect: psmile_rank->dest, tag:            4            1                  100
use of psmile_bsend for msgint : non-blocking sends
psmile_mg_setup

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
For atm proc 0 :
 [1] atm: psmile_get_intersect: ninter   2, nmyint   0, nnull   0
ninter : intersections with 2 different procs (2 and 3 in comm_psmile)
  Posting Irecv request(1)           165 with tag           101
  Posting Irecv request(4)           164 with tag           104
  Posting Irecv request(2)           166 with tag           100
For atm proc 1 :
 [2] atm: psmile_get_intersect: ninter   2, nmyint   0, nnull   0
ninter : intersections with 2 different ocn procs (3 and 4 in comm_psmile)
  Posting Irecv request(1)           165 with tag           101
  Posting Irecv request(4)           164 with tag           104
  Posting Irecv request(2)           166 with tag           100
For the ocean proc 1 :
  [3] ocn: psmile_get_intersect: ninter   1, nmyint   0, nnull   0
ninter : intersections with one atm proc (0 in comm_psmile)
  Posting Irecv request(1)           164 with tag           101
  Posting Irecv request(4)           165 with tag           104
  Posting Irecv request(2)           166 with tag           100
For the ocean proc 1 :
 [4] ocn: psmile_get_intersect: ninter   2, nmyint   0, nnull   0
ninter : intersections with two atm proc (0 and 1 in comm_psmile)
  Posting Irecv request(1)           167 with tag           101
  Posting Irecv request(4)           165 with tag           104
  Posting Irecv request(2)           166 with tag           100
For the ocean proc 2 :
 [5] ocn: psmile_get_intersect: ninter   1, nmyint   0, nnull   0
ninter : intersections with one atm proc (1 in comm_psmile)
  Posting Irecv request(1)           165 with tag           101
  Posting Irecv request(4)           164 with tag           104
  Posting Irecv request(2)           166 with tag           100
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Before MPI_Waitany