| 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 |