- Timestamp:
- 2017-07-25T16:38:38+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/thd_ice.F90
r8342 r8369 12 12 USE in_out_manager ! I/O manager 13 13 USE lib_mpp ! MPP library 14 USE ice, ONLY : nlay_i, nlay_s 14 USE ice, ONLY : nlay_i, nlay_s, jpl 15 15 16 16 IMPLICIT NONE … … 19 19 PUBLIC thd_ice_alloc ! Routine called by nemogcm.F90 20 20 21 !!---------------------- -------22 !! * Share1D Module variables23 !!---------------------- -------21 !!---------------------- 22 !! * 1D Module variables 23 !!---------------------- 24 24 !: In ice thermodynamics, to spare memory, the vectors are folded 25 25 !: from 1D to 2D vectors. The following variables, with ending _1d … … 90 90 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: evap_ice_1d !: <==> the 2D evap_ice 91 91 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: qprec_ice_1d !: <==> the 2D qprec_ice 92 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: qevap_ice_1d !: <==> the 3D qevap_ice93 92 ! ! to reintegrate longwave flux inside the ice thermodynamics 94 93 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: i0 !: fraction of radiation transmitted to the ice … … 98 97 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: t_si_1d !: <==> the 2D t_si 99 98 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: a_i_1d !: <==> the 2D a_i 100 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ht_i_1d !: <==> the 2D ht_s 101 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ht_s_1d !: <==> the 2D ht_i 99 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: a_ib_1d !: <==> the 2D a_i_b 100 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ht_i_1d !: <==> the 2D ht_i 101 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ht_ib_1d !: <==> the 2D ht_i_b 102 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ht_s_1d !: <==> the 2D ht_s 102 103 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: fc_su !: Surface Conduction flux 103 104 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: fc_bo_i !: Bottom Conduction flux … … 109 110 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: sm_i_1d !: Ice bulk salinity [ppt] 110 111 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: s_i_new !: Salinity of new ice at the bottom 112 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: a_ip_1d !: 113 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: v_ip_1d !: 114 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: v_i_1d !: 111 115 112 116 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: t_s_1d !: corresponding to the 2D var t_s … … 127 131 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: sss_1d 128 132 133 ! 134 !!---------------------- 135 !! * 2D Module variables 136 !!---------------------- 137 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: a_i_2d 138 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: v_i_2d 139 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: v_s_2d 140 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: oa_i_2d 141 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: smv_i_2d 142 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: a_ip_2d 143 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: v_ip_2d 144 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: t_su_2d 145 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ht_i_2d 146 147 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: a_ib_2d 148 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ht_ib_2d 149 129 150 INTEGER , PUBLIC :: jiindex_1d ! 1D index of debugging point 130 151 … … 141 162 !!---------------------------------------------------------------------! 142 163 INTEGER :: thd_ice_alloc ! return value 143 INTEGER :: ierr( 6), ii164 INTEGER :: ierr(7), ii 144 165 !!---------------------------------------------------------------------! 145 166 ierr(:) = 0 … … 164 185 & wfx_snw_sub_1d(jpij), wfx_ice_sub_1d(jpij), wfx_err_sub_1d(jpij) , & 165 186 & wfx_lam_1d(jpij) , dqns_ice_1d(jpij) , evap_ice_1d (jpij), & 166 & qprec_ice_1d(jpij), qevap_ice_1d(jpij), i0 (jpij) ,&187 & qprec_ice_1d(jpij), i0 (jpij) , & 167 188 & sfx_bri_1d (jpij) , sfx_bog_1d (jpij) , sfx_bom_1d (jpij) , sfx_sum_1d (jpij), & 168 189 & sfx_sni_1d (jpij) , sfx_opw_1d (jpij) , sfx_res_1d (jpij) , sfx_sub_1d (jpij), & … … 170 191 ! 171 192 ii = ii + 1 172 ALLOCATE( t_su_1d (jpij) , t_si_1d (jpij) , a_i_1d (jpij) , ht_i_1d (jpij) ,&173 & ht_ s_1d (jpij) , fc_su (jpij) , fc_bo_i (jpij) ,&174 & dh_s_tot (jpij) , dh_i_surf (jpij) , dh_i_sub (jpij) ,&175 & dh_i_bott (jpij) , dh_snowice(jpij) , sm_i_1d (jpij) , s_i_new (jpij) ,&176 & STAT=ierr(ii) )193 ALLOCATE( t_su_1d (jpij) , t_si_1d (jpij) , a_i_1d (jpij) , a_ib_1d(jpij) , & 194 & ht_i_1d (jpij) , ht_ib_1d (jpij) , ht_s_1d (jpij) , fc_su (jpij) , fc_bo_i(jpij) , & 195 & dh_s_tot (jpij) , dh_i_surf (jpij) , dh_i_sub(jpij) , & 196 & dh_i_bott(jpij) , dh_snowice(jpij) , sm_i_1d (jpij) , s_i_new(jpij) , & 197 & a_ip_1d (jpij) , v_ip_1d (jpij) , v_i_1d (jpij) , STAT=ierr(ii) ) 177 198 ! 178 199 ii = ii + 1 … … 186 207 ii = ii + 1 187 208 ALLOCATE( sst_1d(jpij) , sss_1d(jpij) , STAT=ierr(ii) ) 209 ! 210 ii = ii + 1 211 ALLOCATE( a_i_2d(jpij,jpl) , a_ib_2d(jpij,jpl) , ht_i_2d(jpij,jpl) , ht_ib_2d(jpij,jpl) , & 212 & v_i_2d(jpij,jpl) ,v_s_2d(jpij,jpl) ,oa_i_2d(jpij,jpl) ,smv_i_2d(jpij,jpl) , & 213 & a_ip_2d(jpij,jpl) ,v_ip_2d(jpij,jpl) ,t_su_2d(jpij,jpl) , & 214 & STAT=ierr(ii) ) 188 215 189 216 thd_ice_alloc = MAXVAL( ierr(:) )
Note: See TracChangeset
for help on using the changeset viewer.