Changeset 2715 for trunk/NEMOGCM/NEMO/OPA_SRC/oce.F90
- Timestamp:
- 2011-03-30T17:58:35+02:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/oce.F90
r2528 r2715 8 8 !! 3.3 ! 2010-09 (C. Ethe) TRA-TRC merge: add ts, gtsu, gtsv 4D arrays 9 9 !!---------------------------------------------------------------------- 10 USE par_oce ! ocean parameters 10 USE par_oce ! ocean parameters 11 USE lib_mpp ! MPP library 11 12 12 13 IMPLICIT NONE 13 14 PRIVATE 14 15 15 LOGICAL , PUBLIC :: l_traldf_rot = .FALSE. !: rotated laplacian operator for lateral diffusion16 PUBLIC oce_alloc ! routine called by nemo_init in nemogcm.F90 16 17 17 !! dynamics and tracer fields ! before ! now ! after ! the after trends becomes the fields 18 !! -------------------------- ! fields ! fields ! trends ! only after tra_zdf and dyn_spg 19 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) :: ub , un , ua !: i-horizontal velocity [m/s] 20 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) :: vb , vn , va !: j-horizontal velocity [m/s] 21 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) :: wn !: vertical velocity [m/s] 22 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) :: rotb , rotn !: relative vorticity [s-1] 23 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) :: hdivb, hdivn !: horizontal divergence [s-1] 24 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) :: tb , tn , ta !: potential temperature [Celcius] 25 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) :: sb , sn , sa !: salinity [psu] 26 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk,jpts) :: tsb , tsn , tsa !: 4D T-S fields [Celcius,psu] 27 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) :: rn2b , rn2 !: brunt-vaisala frequency**2 [s-2] 18 LOGICAL, PUBLIC :: l_traldf_rot = .FALSE. !: rotated laplacian operator for lateral diffusion 19 20 !! dynamics and tracer fields ! before ! now ! after ! the after trends becomes the fields 21 !! -------------------------- ! fields ! fields ! trends ! only after tra_zdf and dyn_spg 22 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ub , un , ua !: i-horizontal velocity [m/s] 23 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: vb , vn , va !: j-horizontal velocity [m/s] 24 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wn !: vertical velocity [m/s] 25 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: rotb , rotn !: relative vorticity [s-1] 26 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: hdivb, hdivn !: horizontal divergence [s-1] 27 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: tb , tn , ta !: potential temperature [Celcius] 28 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sb , sn , sa !: salinity [psu] 29 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: tsb , tsn , tsa !: 4D T-S fields [Celcius,psu] 30 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: rn2b , rn2 !: brunt-vaisala frequency**2 [s-2] 28 31 ! 29 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) :: rhd !: in situ density anomalie rhd=(rho-rau0)/rau0 [no units]30 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) :: rhop !: potential volumic mass [kg/m3]32 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: rhd !: in situ density anomalie rhd=(rho-rau0)/rau0 [no units] 33 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: rhop !: potential volumic mass [kg/m3] 31 34 32 !! free surface ! before ! now ! after!33 !! ------------ ! fields ! fields ! trends!34 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: sshb , sshn , ssha!: sea surface height at t-point [m]35 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: sshu_b , sshu_n , sshu_a!: sea surface height at u-point [m]36 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: sshv_b , sshv_n , sshv_a!: sea surface height at u-point [m]37 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: sshf_n!: sea surface height at f-point [m]35 !! free surface ! before ! now ! after ! 36 !! ------------ ! fields ! fields ! trends ! 37 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshb , sshn , ssha !: sea surface height at t-point [m] 38 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshu_b , sshu_n , sshu_a !: sea surface height at u-point [m] 39 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshv_b , sshv_n , sshv_a !: sea surface height at u-point [m] 40 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshf_n !: sea surface height at f-point [m] 38 41 ! 39 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: spgu, spgv!: horizontal surface pressure gradient42 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: spgu, spgv !: horizontal surface pressure gradient 40 43 41 44 !! interpolated gradient (only used in zps case) 42 45 !! --------------------- 43 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpts) :: gtsu, gtsv !: horizontal gradient of T, S bottom u-point44 REAL(wp), PUBLIC, DIMENSION(jpi,jpj):: gru , grv !: horizontal gradient of rd at bottom u-point46 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: gtsu, gtsv !: horizontal gradient of T, S bottom u-point 47 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: gru , grv !: horizontal gradient of rd at bottom u-point 45 48 46 49 !!---------------------------------------------------------------------- 47 !! NEMO/OPA 3.3 , NEMO Consortium (2010)50 !! NEMO/OPA 4.0 , NEMO Consortium (2011) 48 51 !! $Id$ 49 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 52 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 53 !!---------------------------------------------------------------------- 54 CONTAINS 55 56 INTEGER FUNCTION oce_alloc() 57 !!---------------------------------------------------------------------- 58 !! *** FUNCTION oce_alloc *** 59 !!---------------------------------------------------------------------- 60 INTEGER :: ierr(2) 61 !!---------------------------------------------------------------------- 62 ! 63 ALLOCATE( ub (jpi,jpj,jpk) , un (jpi,jpj,jpk) , ua(jpi,jpj,jpk) , & 64 & vb (jpi,jpj,jpk) , vn (jpi,jpj,jpk) , va(jpi,jpj,jpk) , & 65 & wn (jpi,jpj,jpk) , & 66 & rotb (jpi,jpj,jpk) , rotn (jpi,jpj,jpk) , & 67 & hdivb(jpi,jpj,jpk) , hdivn(jpi,jpj,jpk) , & 68 & tb (jpi,jpj,jpk) , tn (jpi,jpj,jpk) , ta(jpi,jpj,jpk) , & 69 & sb (jpi,jpj,jpk) , sn (jpi,jpj,jpk) , sa (jpi,jpj,jpk) , & 70 & tsb (jpi,jpj,jpk,jpts) , tsn (jpi,jpj,jpk,jpts) , tsa(jpi,jpj,jpk,jpts) , & 71 & rn2b (jpi,jpj,jpk) , rn2 (jpi,jpj,jpk) , STAT=ierr(1) ) 72 ! 73 ALLOCATE(rhd (jpi,jpj,jpk) , & 74 & rhop(jpi,jpj,jpk) , & 75 & sshb (jpi,jpj) , sshn (jpi,jpj) , ssha (jpi,jpj) , & 76 & sshu_b(jpi,jpj) , sshu_n(jpi,jpj) , sshu_a(jpi,jpj) , & 77 & sshv_b(jpi,jpj) , sshv_n(jpi,jpj) , sshv_a(jpi,jpj) , & 78 & sshf_n(jpi,jpj) , & 79 & spgu (jpi,jpj) , spgv(jpi,jpj) , & 80 & gtsu(jpi,jpj,jpts), gtsv(jpi,jpj,jpts), & 81 & gru(jpi,jpj) , grv(jpi,jpj) , STAT=ierr(2) ) 82 ! 83 oce_alloc = MAXVAL( ierr ) 84 IF( oce_alloc /= 0 ) CALL ctl_warn('oce_alloc: failed to allocate arrays') 85 ! 86 END FUNCTION oce_alloc 87 50 88 !!====================================================================== 51 89 END MODULE oce
Note: See TracChangeset
for help on using the changeset viewer.