1 |
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 |
|
4 |
#include "PTRACERS_OPTIONS.h" |
5 |
#ifdef PTRACERS_ALLOW_DYN_STATE |
6 |
|
7 |
MODULE PTRACERS_DYN_STATE_MOD |
8 |
|
9 |
C ptracers internal state data structures |
10 |
TYPE PTRACERS_ISTATE |
11 |
_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 |
C some compilers do not like empty files, so ... |
52 |
SUBROUTINE PTRACERS_DYN_STATE_MOD_DUMMY |
53 |
RETURN |
54 |
END |
55 |
#endif |
56 |
|