1 |
C $Header: /u/gcmpack/MITgcm/pkg/atm_ocn_coupler/atm_to_ocn_maprunoff.F,v 1.4 2014/07/19 23:01:48 jmc Exp $ |
2 |
C $Name: $ |
3 |
|
4 |
#include "CPP_OPTIONS.h" |
5 |
|
6 |
CBOP 0 |
7 |
C !ROUTINE: ATM_TO_OCN_MAPRUNOFF |
8 |
|
9 |
C !INTERFACE: |
10 |
SUBROUTINE ATM_TO_OCN_MAPRUNOFF( |
11 |
I fld_atm, |
12 |
O fld_ocn, |
13 |
U add2ocn ) |
14 |
|
15 |
C !DESCRIPTION: |
16 |
C *==========================================================* |
17 |
C | SUBROUTINE ATM_TO_OCN_MAPRUNOFF |
18 |
C | o maps RunOff from atmos. grid (land) to ocean grid |
19 |
C | and Incorporate (substract) to ocean FreshWater flux |
20 |
C *==========================================================* |
21 |
|
22 |
C !USES: |
23 |
IMPLICIT NONE |
24 |
C == Global variables == |
25 |
#include "ATMSIZE.h" |
26 |
#include "OCNSIZE.h" |
27 |
#include "CPL_MAP2GRIDS.h" |
28 |
|
29 |
C !INPUT/OUTPUT PARAMETERS: |
30 |
C fld_atm :: Atmos. grid Run-Off field |
31 |
C fld_ocn :: Ocean grid Run-Off field (atmos field will be mapped to this) |
32 |
C add2ocn :: Ocean grid FreshWater field to update by substracting Run-Off |
33 |
_RL fld_atm(Nx_atm*Ny_atm) |
34 |
_RL fld_ocn(Nx_ocn*Ny_ocn) |
35 |
_RL add2ocn(Nx_ocn*Ny_ocn) |
36 |
CEOP |
37 |
|
38 |
C !LOCAL VARIABLES: |
39 |
INTEGER n, ijo, ija |
40 |
|
41 |
C Set to zero everywhere |
42 |
DO ijo=1,Nx_ocn*Ny_ocn |
43 |
fld_ocn(ijo) = 0. |
44 |
ENDDO |
45 |
|
46 |
C Maps Runoff from land grid point to ocean grid point |
47 |
C and update oceanic FreshWater flux (substract RunOff) |
48 |
DO n=1,nROmap |
49 |
ijo=ijROocn(n) |
50 |
ija=ijROatm(n) |
51 |
fld_ocn(ijo) = fld_ocn(ijo) |
52 |
& + fld_atm(ija)*arROmap(n) |
53 |
add2ocn(ijo) = add2ocn(ijo) |
54 |
& - fld_atm(ija)*arROmap(n) |
55 |
ENDDO |
56 |
|
57 |
RETURN |
58 |
END |