1 |
C $Header: /u/gcmpack/models/MITgcmUV/eesupp/src/memsync.F,v 1.4 2001/02/04 14:38:44 cnh Exp $ |
2 |
C $Name: $ |
3 |
|
4 |
#include "CPP_EEOPTIONS.h" |
5 |
CBOP |
6 |
|
7 |
C !ROUTINE: MEMSYNC |
8 |
|
9 |
C !INTERFACE: |
10 |
SUBROUTINE MEMSYNC |
11 |
IMPLICIT NONE |
12 |
|
13 |
C !DESCRIPTION: |
14 |
C *==========================================================* |
15 |
C | SUBROUTINE MEMSYNC |
16 |
C | o Place holder for memory sync routine |
17 |
C *==========================================================* |
18 |
C | This routine is called wherever the code requires |
19 |
C | that writes performed by one thread or process must |
20 |
C | be guaranteed visible to other processes and or threads. |
21 |
C | On SPARC this routine would implement a |
22 |
C | asm("membar #LoadStore|#StoreStore"); |
23 |
C | On ALPHA |
24 |
C | asm("mb"); |
25 |
C | Note: I have yet to show this is necessary although |
26 |
C | the Memory Channel writes must need something like |
27 |
C | this. |
28 |
C *==========================================================* |
29 |
CEOP |
30 |
|
31 |
END |