[888] | 1 | MODULE sbc_ice |
---|
| 2 | !!====================================================================== |
---|
| 3 | !! *** MODULE sbc_ice *** |
---|
[2613] | 4 | !! Surface module - LIM-3: parameters & variables defined in memory |
---|
[888] | 5 | !!====================================================================== |
---|
[2613] | 6 | !! History : 3.0 ! 2006-08 (G. Madec) Surface module |
---|
| 7 | !! 3.2 ! 2009-06 (S. Masson) merge with ice_oce |
---|
| 8 | !! 4.0 ! 2011-01 (A. R. Porter, STFC Daresbury) dynamical allocation |
---|
[888] | 9 | !!---------------------------------------------------------------------- |
---|
| 10 | #if defined key_lim3 || defined key_lim2 |
---|
| 11 | !!---------------------------------------------------------------------- |
---|
[2528] | 12 | !! 'key_lim2' or 'key_lim3' : LIM-2 or LIM-3 sea-ice model |
---|
[888] | 13 | !!---------------------------------------------------------------------- |
---|
| 14 | USE par_oce ! ocean parameters |
---|
[1465] | 15 | # if defined key_lim3 |
---|
[2613] | 16 | USE par_ice ! LIM-3 parameters |
---|
[1465] | 17 | # endif |
---|
| 18 | # if defined key_lim2 |
---|
[2613] | 19 | USE par_ice_2 ! LIM-2 parameters |
---|
[1465] | 20 | # endif |
---|
[2620] | 21 | USE lib_mpp ! MPP library |
---|
| 22 | USE in_out_manager ! I/O manager |
---|
[888] | 23 | |
---|
| 24 | IMPLICIT NONE |
---|
| 25 | PRIVATE |
---|
| 26 | |
---|
[2620] | 27 | PUBLIC sbc_ice_alloc ! called in iceini(_2).F90 |
---|
[2590] | 28 | |
---|
[1465] | 29 | # if defined key_lim2 |
---|
[2528] | 30 | LOGICAL , PUBLIC, PARAMETER :: lk_lim2 = .TRUE. !: LIM-2 ice model |
---|
| 31 | LOGICAL , PUBLIC, PARAMETER :: lk_lim3 = .FALSE. !: no LIM-3 |
---|
| 32 | # if defined key_lim2_vp |
---|
| 33 | CHARACTER(len=1), PUBLIC, PARAMETER :: cp_ice_msh = 'I' !: VP : 'I'-grid ice-velocity (B-grid lower left corner) |
---|
| 34 | # else |
---|
| 35 | CHARACTER(len=1), PUBLIC, PARAMETER :: cp_ice_msh = 'C' !: EVP: 'C'-grid ice-velocity |
---|
| 36 | # endif |
---|
[1465] | 37 | # endif |
---|
| 38 | # if defined key_lim3 |
---|
[2528] | 39 | LOGICAL , PUBLIC, PARAMETER :: lk_lim2 = .FALSE. !: no LIM-2 |
---|
| 40 | LOGICAL , PUBLIC, PARAMETER :: lk_lim3 = .TRUE. !: LIM-3 ice model |
---|
| 41 | CHARACTER(len=1), PUBLIC, PARAMETER :: cp_ice_msh = 'C' !: 'C'-grid ice-velocity |
---|
[1465] | 42 | # endif |
---|
| 43 | |
---|
[2613] | 44 | REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: qns_ice !: non solar heat flux over ice [W/m2] |
---|
| 45 | REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: qsr_ice !: solar heat flux over ice [W/m2] |
---|
| 46 | REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: qla_ice !: latent flux over ice [W/m2] |
---|
| 47 | REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: dqla_ice !: latent sensibility over ice [W/m2/K] |
---|
| 48 | REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: dqns_ice !: non solar heat flux over ice (LW+SEN+LA) [W/m2/K] |
---|
| 49 | REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: tn_ice !: ice surface temperature [K] |
---|
[2590] | 50 | REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: alb_ice !: albedo of ice |
---|
[888] | 51 | |
---|
[2620] | 52 | REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: utau_ice !: atmos-ice u-stress. VP: I-pt ; EVP: U,V-pts [N/m2] |
---|
| 53 | REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: vtau_ice !: atmos-ice v-stress. VP: I-pt ; EVP: U,V-pts [N/m2] |
---|
| 54 | REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fr1_i0 !: 1st Qsr fraction penetrating inside ice cover [-] |
---|
| 55 | REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fr2_i0 !: 2nd Qsr fraction penetrating inside ice cover [-] |
---|
| 56 | REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: emp_ice !: sublimation-snow budget over ice [kg/m2] |
---|
[888] | 57 | |
---|
[1465] | 58 | # if defined key_lim3 |
---|
[2590] | 59 | REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tatm_ice !: air temperature |
---|
[1465] | 60 | # endif |
---|
| 61 | |
---|
[2613] | 62 | !!---------------------------------------------------------------------- |
---|
| 63 | !! NEMO/OPA 4.0 , NEMO Consortium (2011) |
---|
| 64 | !! $Id$ |
---|
| 65 | !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) |
---|
| 66 | !!---------------------------------------------------------------------- |
---|
[2590] | 67 | CONTAINS |
---|
| 68 | |
---|
[2620] | 69 | INTEGER FUNCTION sbc_ice_alloc() |
---|
[2613] | 70 | !!---------------------------------------------------------------------- |
---|
[2620] | 71 | !! *** FUNCTION sbc_ice_alloc *** |
---|
[2613] | 72 | !!---------------------------------------------------------------------- |
---|
| 73 | ALLOCATE( qns_ice (jpi,jpj,jpl) , qsr_ice (jpi,jpj,jpl) , & |
---|
| 74 | & qla_ice (jpi,jpj,jpl) , dqla_ice(jpi,jpj,jpl) , & |
---|
| 75 | & dqns_ice(jpi,jpj,jpl) , tn_ice (jpi,jpj,jpl) , & |
---|
| 76 | & alb_ice (jpi,jpj,jpl) , & |
---|
| 77 | & utau_ice(jpi,jpj) , vtau_ice(jpi,jpj) , & |
---|
| 78 | & fr1_i0 (jpi,jpj) , fr2_i0 (jpi,jpj) , & |
---|
[2620] | 79 | & emp_ice(jpi,jpj) , STAT=sbc_ice_alloc ) |
---|
| 80 | ! |
---|
| 81 | IF( lk_mpp ) CALL mpp_sum ( sbc_ice_alloc ) |
---|
| 82 | IF( sbc_ice_alloc > 0 ) CALL ctl_warn('sbc_ice_alloc: allocation of arrays failed') |
---|
| 83 | END FUNCTION sbc_ice_alloc |
---|
[2590] | 84 | |
---|
[888] | 85 | #else |
---|
| 86 | !!---------------------------------------------------------------------- |
---|
[1465] | 87 | !! Default option NO LIM 2.0 or 3.0 sea-ice model |
---|
[888] | 88 | !!---------------------------------------------------------------------- |
---|
[2528] | 89 | LOGICAL , PUBLIC, PARAMETER :: lk_lim2 = .FALSE. !: no LIM-2 ice model |
---|
| 90 | LOGICAL , PUBLIC, PARAMETER :: lk_lim3 = .FALSE. !: no LIM-3 ice model |
---|
| 91 | CHARACTER(len=1), PUBLIC, PARAMETER :: cp_ice_msh = '-' !: no grid ice-velocity |
---|
[888] | 92 | #endif |
---|
| 93 | |
---|
[1469] | 94 | !!====================================================================== |
---|
[888] | 95 | END MODULE sbc_ice |
---|