- Timestamp:
- 2017-09-18T16:54:04+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/iceforcing.F90
r8531 r8534 8 8 #if defined key_lim3 9 9 !!---------------------------------------------------------------------- 10 !! 'key_lim3' : LIM 3.0sea-ice model10 !! 'key_lim3' : ESIM sea-ice model 11 11 !!---------------------------------------------------------------------- 12 12 USE oce ! ocean dynamics and tracers 13 13 USE dom_oce ! ocean space and time domain 14 USE ice ! sea-ice variables14 USE ice ! sea-ice: variables 15 15 USE sbc_oce ! Surface boundary condition: ocean fields 16 16 USE sbc_ice ! Surface boundary condition: ice fields 17 USE usrdef_sbc ! user defined: surface boundary condition17 USE usrdef_sbc ! Surface boundary condition: user defined 18 18 USE sbcblk ! Surface boundary condition: bulk 19 19 USE sbccpl ! Surface boundary condition: coupled interface 20 USE icealb ! icealbedo20 USE icealb ! sae-ice: albedo 21 21 ! 22 USE in_out_manager ! I/O manager 22 23 USE iom ! I/O manager library 23 USE in_out_manager ! I/O manager24 USE lbclnk ! lateral boundary condition - MPP link25 24 USE lib_mpp ! MPP library 26 USE lib_fortran ! 25 USE lib_fortran ! fortran utilities (glob_sum + no signed zero) 26 USE lbclnk ! lateral boundary conditions (or mpp links) 27 27 USE timing ! Timing 28 28 … … 44 44 45 45 SUBROUTINE ice_forcing_tau( kt, ksbc, utau_ice, vtau_ice ) 46 !!------------------------------------------------------------------- --46 !!------------------------------------------------------------------- 47 47 !! *** ROUTINE ice_forcing_tau *** 48 48 !! … … 51 51 !! ** Action : It provides the following fields: 52 52 !! utau_ice, vtau_ice : surface ice stress (U- & V-points) [N/m2] 53 !!------------------------------------------------------------------- --53 !!------------------------------------------------------------------- 54 54 INTEGER, INTENT(in) :: kt ! ocean time step 55 55 INTEGER, INTENT(in) :: ksbc ! type of sbc flux ( 1 = user defined formulation, … … 60 60 INTEGER :: ji, jj ! dummy loop index 61 61 REAL(wp), DIMENSION(jpi,jpj) :: zutau_ice, zvtau_ice 62 !!------------------------------------------------------------------- ---63 64 IF( nn_timing == 1 ) CALL timing_start('ice_forcing _tau')62 !!------------------------------------------------------------------- 63 64 IF( nn_timing == 1 ) CALL timing_start('ice_forcing') 65 65 66 66 IF( kt == nit000 .AND. lwp ) THEN … … 87 87 ENDIF 88 88 89 IF( nn_timing == 1 ) CALL timing_stop('ice_forcing _tau')89 IF( nn_timing == 1 ) CALL timing_stop('ice_forcing') 90 90 ! 91 91 END SUBROUTINE ice_forcing_tau … … 93 93 94 94 SUBROUTINE ice_forcing_flx( kt, ksbc ) 95 !!------------------------------------------------------------------- --95 !!------------------------------------------------------------------- 96 96 !! *** ROUTINE ice_forcing_flx *** 97 97 !! … … 112 112 !! tprecip = total precipitation [Kg/m2/s] 113 113 !! alb_ice = albedo above sea ice 114 !!------------------------------------------------------------------- --114 !!------------------------------------------------------------------- 115 115 INTEGER, INTENT(in) :: kt ! ocean time step 116 116 INTEGER, INTENT(in) :: ksbc ! flux formulation (user defined, bulk or Pure Coupled) … … 119 119 REAL(wp), DIMENSION(jpi,jpj,jpl) :: zalb_os, zalb_cs ! ice albedo under overcast/clear sky 120 120 REAL(wp), DIMENSION(jpi,jpj) :: zalb ! 2D workspace 121 !!-------------------------------------------------------------------- --122 ! 123 IF( nn_timing == 1 ) CALL timing_start('ice_forcing _flx')121 !!-------------------------------------------------------------------- 122 ! 123 IF( nn_timing == 1 ) CALL timing_start('ice_forcing') 124 124 125 125 IF( kt == nit000 .AND. lwp ) THEN … … 164 164 ENDIF 165 165 ! 166 IF( nn_timing == 1 ) CALL timing_stop('ice_forcing _flx')166 IF( nn_timing == 1 ) CALL timing_stop('ice_forcing') 167 167 ! 168 168 END SUBROUTINE ice_forcing_flx … … 170 170 171 171 SUBROUTINE ice_flx_dist( ptn_ice, palb_ice, pqns_ice, pqsr_ice, pdqn_ice, pevap_ice, pdevap_ice, k_iceflx ) 172 !!------------------------------------------------------------------- --172 !!------------------------------------------------------------------- 173 173 !! *** ROUTINE ice_flx_dist *** 174 174 !! … … 184 184 !! using T-ice and albedo sensitivity 185 185 !! = 2 Redistribute a single flux over categories 186 !!------------------------------------------------------------------- --186 !!------------------------------------------------------------------- 187 187 INTEGER , INTENT(in ) :: k_iceflx ! redistributor 188 188 REAL(wp), DIMENSION(:,:,:), INTENT(in ) :: ptn_ice ! ice surface temperature … … 206 206 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: ztem_m ! Mean temperature over all categories 207 207 !!---------------------------------------------------------------------- 208 !209 IF( nn_timing == 1 ) CALL timing_start('ice_flx_dist')210 208 ! 211 209 WHERE ( at_i (:,:) > 0._wp ) ; z1_at_i(:,:) = 1._wp / at_i (:,:) … … 253 251 ! 254 252 END SELECT 255 !256 IF( nn_timing == 1 ) CALL timing_stop('ice_flx_dist')257 253 ! 258 254 END SUBROUTINE ice_flx_dist … … 315 311 #else 316 312 !!---------------------------------------------------------------------- 317 !! Default option : Empty module NO LIM sea-ice model313 !! Default option : Empty module NO ESIM sea-ice model 318 314 !!---------------------------------------------------------------------- 319 315 #endif
Note: See TracChangeset
for help on using the changeset viewer.