/[MITgcm]/MITgcm/pkg/ptracers/ptracers_dyn_state_mod.F
ViewVC logotype

Annotation of /MITgcm/pkg/ptracers/ptracers_dyn_state_mod.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (hide annotations) (download)
Thu May 8 19:50:09 2008 UTC (16 years, 2 months ago) by jahn
Branch: MAIN
add second-order moment advection schemes (80 and 81);
this uses a dynamically allocated internal state data structure
(#define PTRACERS_ALLOW_DYN_STATE in PTRACERS_OPTIONS.h)
and requires a fortran 90 compiler

1 jahn 1.1 #include "PTRACERS_OPTIONS.h"
2     #ifdef PTRACERS_ALLOW_DYN_STATE
3    
4     MODULE PTRACERS_DYN_STATE_MOD
5    
6     ! ptracers internal state data structures
7     TYPE PTRACERS_ISTATE
8     _RL, POINTER :: som_P(:,:,:,:,:,:)
9     END TYPE
10    
11     CONTAINS
12     SUBROUTINE PTRACERS_INIT_FIXED_DYNAMIC(
13     & PTR_ISTATE_ARR,
14     & PTRACERS_numInUse,
15     & PTRACERS_SOM_Advection,
16     & sNx, sNy, Nr, OLx, OLy,
17     & nSx, nSy, nSOM,
18     & myThid )
19    
20     IMPLICIT NONE
21    
22     TYPE(PTRACERS_ISTATE), POINTER :: PTR_ISTATE_ARR(:)
23     INTEGER PTRACERS_numInUse
24     LOGICAL PTRACERS_SOM_Advection(PTRACERS_numInUse)
25     INTEGER sNx, sNy, Nr, OLx, OLy, nSx, nSy, nSOM
26     INTEGER myThid
27    
28     INTEGER iPtr
29    
30     ALLOCATE( PTR_ISTATE_ARR(PTRACERS_numInUse) )
31    
32     DO iPtr = 1, PTRACERS_numInUse
33     IF ( PTRACERS_SOM_Advection(iPtr) ) THEN
34     ALLOCATE( PTR_ISTATE_ARR(iPtr)%som_P(1-OLx:sNx+OLx,
35     & 1-OLy:sNy+OLy,
36     & Nr,
37     & nSx,
38     & nSy,
39     & nSOM) )
40     ENDIF
41     ENDDO
42    
43     RETURN
44     END SUBROUTINE
45    
46     END MODULE
47     #else
48     ! Nothing
49     #endif
50    

  ViewVC Help
Powered by ViewVC 1.1.22