1 |
jmc |
1.4 |
C $Header: /u/gcmpack/MITgcm/pkg/ptracers/ptracers_dyn_state_mod.F,v 1.3 2008/05/09 19:57:04 jahn Exp $ |
2 |
|
|
C $Name: $ |
3 |
jahn |
1.3 |
|
4 |
jahn |
1.1 |
#include "PTRACERS_OPTIONS.h" |
5 |
|
|
#ifdef PTRACERS_ALLOW_DYN_STATE |
6 |
|
|
|
7 |
|
|
MODULE PTRACERS_DYN_STATE_MOD |
8 |
|
|
|
9 |
jahn |
1.3 |
C ptracers internal state data structures |
10 |
jmc |
1.4 |
TYPE PTRACERS_ISTATE |
11 |
jahn |
1.1 |
_RL, POINTER :: som_P(:,:,:,:,:,:) |
12 |
|
|
END TYPE |
13 |
|
|
|
14 |
|
|
CONTAINS |
15 |
|
|
SUBROUTINE PTRACERS_INIT_FIXED_DYNAMIC( |
16 |
|
|
& PTR_ISTATE_ARR, |
17 |
|
|
& PTRACERS_numInUse, |
18 |
|
|
& PTRACERS_SOM_Advection, |
19 |
|
|
& sNx, sNy, Nr, OLx, OLy, |
20 |
|
|
& nSx, nSy, nSOM, |
21 |
|
|
& myThid ) |
22 |
|
|
|
23 |
|
|
IMPLICIT NONE |
24 |
|
|
|
25 |
|
|
TYPE(PTRACERS_ISTATE), POINTER :: PTR_ISTATE_ARR(:) |
26 |
|
|
INTEGER PTRACERS_numInUse |
27 |
|
|
LOGICAL PTRACERS_SOM_Advection(PTRACERS_numInUse) |
28 |
|
|
INTEGER sNx, sNy, Nr, OLx, OLy, nSx, nSy, nSOM |
29 |
|
|
INTEGER myThid |
30 |
|
|
|
31 |
|
|
INTEGER iPtr |
32 |
|
|
|
33 |
|
|
ALLOCATE( PTR_ISTATE_ARR(PTRACERS_numInUse) ) |
34 |
|
|
|
35 |
|
|
DO iPtr = 1, PTRACERS_numInUse |
36 |
|
|
IF ( PTRACERS_SOM_Advection(iPtr) ) THEN |
37 |
|
|
ALLOCATE( PTR_ISTATE_ARR(iPtr)%som_P(1-OLx:sNx+OLx, |
38 |
|
|
& 1-OLy:sNy+OLy, |
39 |
|
|
& Nr, |
40 |
|
|
& nSx, |
41 |
|
|
& nSy, |
42 |
|
|
& nSOM) ) |
43 |
|
|
ENDIF |
44 |
|
|
ENDDO |
45 |
|
|
|
46 |
|
|
RETURN |
47 |
|
|
END SUBROUTINE |
48 |
|
|
|
49 |
|
|
END MODULE |
50 |
|
|
#else |
51 |
jahn |
1.3 |
C some compilers do not like empty files, so ... |
52 |
jahn |
1.2 |
SUBROUTINE PTRACERS_DYN_STATE_MOD_DUMMY |
53 |
|
|
RETURN |
54 |
jmc |
1.4 |
END |
55 |
jahn |
1.1 |
#endif |
56 |
|
|
|