Changeset 8885
- Timestamp:
- 2017-12-04T10:41:40+01:00 (7 years ago)
- Location:
- branches/2017/dev_CNRS_2017/NEMOGCM/NEMO
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/LIM_SRC_3/icedyn_adv_umx.F90
r8882 r8885 24 24 USE lib_fortran ! fortran utilities (glob_sum + no signed zero) 25 25 USE lbclnk ! lateral boundary conditions (or mpp links) 26 USE timing ! Timing27 26 28 27 IMPLICIT NONE … … 261 260 !!---------------------------------------------------------------------- 262 261 ! 263 !! IF( nn_timing == 1 ) CALL timing_start('macho')264 !265 262 IF( MOD( (kt - 1) / nn_fsbc , 2 ) == 0 ) THEN !== odd ice time step: adv_x then adv_y ==! 266 263 ! … … 301 298 ENDIF 302 299 ! 303 !! IF( nn_timing == 1 ) CALL timing_stop('macho')304 !305 300 END SUBROUTINE macho 306 301 … … 327 322 REAL(wp), DIMENSION(jpi,jpj) :: ztu1, ztu2, ztu3, ztu4 328 323 !!---------------------------------------------------------------------- 329 !330 !! IF( nn_timing == 1 ) CALL timing_start('ultimate_x')331 324 ! 332 325 ! !-- Laplacian in i-direction --! … … 423 416 END SELECT 424 417 ! 425 !! IF( nn_timing == 1 ) CALL timing_stop('ultimate_x')426 !427 418 END SUBROUTINE ultimate_x 428 419 … … 449 440 REAL(wp), DIMENSION(jpi,jpj) :: ztv1, ztv2, ztv3, ztv4 450 441 !!---------------------------------------------------------------------- 451 !452 !! IF( nn_timing == 1 ) CALL timing_start('ultimate_y')453 442 ! 454 443 ! !-- Laplacian in j-direction --! … … 543 532 END SELECT 544 533 ! 545 !! IF( nn_timing == 1 ) CALL timing_stop('ultimate_y')546 !547 534 END SUBROUTINE ultimate_y 548 535 … … 572 559 !!---------------------------------------------------------------------- 573 560 ! 574 !! IF( nn_timing == 1 ) CALL timing_start('nonosc_2d')575 !576 561 zbig = 1.e+40_wp 577 562 zsml = 1.e-15_wp 578 563 579 ! clem test564 ! test on divergence 580 565 DO jj = 2, jpjm1 581 566 DO ji = fs_2, fs_jpim1 ! vector opt. … … 646 631 END DO 647 632 ! 648 !! IF( nn_timing == 1 ) CALL timing_stop('nonosc_2d')649 !650 633 END SUBROUTINE nonosc_2d 651 634 -
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/LIM_SRC_3/iceistate.F90
r8882 r8885 226 226 zh_i_ini(ji,jj,i_fill) = ( zvt_i_ini(ji,jj) - zV ) / MAX( za_i_ini(ji,jj,i_fill), epsi10 ) 227 227 228 ! c lem: correction if concentration of upper cat is greater than lower cat229 ! 228 ! correction if concentration of upper cat is greater than lower cat 229 ! (it should be a gaussian around jl0 but sometimes it is not) 230 230 IF ( jl0 /= jpl ) THEN 231 231 DO jl = jpl, jl0+1, -1 … … 471 471 v_ice_b(:,:) = v_ice(:,:) 472 472 473 !! !clem474 !! ! Output the initial state and forcings473 !!clem: output of initial state should be written here but it is impossible because 474 !! the ocean and ice are in the same file 475 475 !! CALL dia_wri_state( 'output.init', nit000 ) 476 !!!477 476 ! 478 477 END SUBROUTINE ice_istate -
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/LIM_SRC_3/iceitd.F90
r8882 r8885 231 231 h_i_1d(ji) = h_i_1d(ji) * a_i_1d(ji) / ( a_i_1d(ji) - zda0 ) 232 232 a_i_1d(ji) = a_i_1d(ji) - zda0 233 v_i_1d(ji) = a_i_1d(ji) * h_i_1d(ji) ! clem-useless ?233 v_i_1d(ji) = a_i_1d(ji) * h_i_1d(ji) ! useless ? 234 234 ENDIF 235 235 ! -
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/LIM_SRC_3/icethd_dh.F90
r8882 r8885 270 270 !------------------------------ 271 271 ! qla_ice is always >=0 (upwards), heat goes to the atmosphere, therefore snow sublimates 272 ! clemcomment: not counted in mass/heat exchange in iceupdate.F90 since this is an exchange with atm. (not ocean)272 ! comment: not counted in mass/heat exchange in iceupdate.F90 since this is an exchange with atm. (not ocean) 273 273 zdeltah(1:npti,:) = 0._wp 274 274 DO ji = 1, npti … … 332 332 hfx_res_1d(ji) = hfx_res_1d(ji) + zfmdt * a_i_1d(ji) * zEi * r1_rdtice 333 333 334 ! Contribution to salt flux ( clem:using s_i_1d and not sz_i_1d(jk) is ok)334 ! Contribution to salt flux (using s_i_1d and not sz_i_1d(jk) is ok) 335 335 sfx_res_1d(ji) = sfx_res_1d(ji) - rhoic * a_i_1d(ji) * zdeltah(ji,jk) * s_i_1d(ji) * r1_rdtice 336 336 … … 358 358 zQm = zfmdt * zEw ! Energy of the melt water sent to the ocean [J/m2, <0] 359 359 360 ! Contribution to salt flux >0 ( clem:using s_i_1d and not sz_i_1d(jk) is ok)360 ! Contribution to salt flux >0 (using s_i_1d and not sz_i_1d(jk) is ok) 361 361 sfx_sum_1d(ji) = sfx_sum_1d(ji) - rhoic * a_i_1d(ji) * zdeltah(ji,jk) * s_i_1d(ji) * r1_rdtice 362 362 … … 377 377 zdeltah(ji,jk) = zdeltah(ji,jk) + zdum 378 378 dh_i_sub(ji) = dh_i_sub(ji) + zdum 379 ! Salt flux > 0 (clem 2016: flux is sent to the ocean for simplicity but salt should remain in the ice except if all ice is melted.379 ! Salt flux > 0 (clem: flux is sent to the ocean for simplicity but salt should remain in the ice except if all ice is melted. 380 380 ! It must be corrected at some point) 381 381 sfx_sub_1d(ji) = sfx_sub_1d(ji) - rhoic * a_i_1d(ji) * zdum * s_i_1d(ji) * r1_rdtice … … 526 526 hfx_res_1d(ji) = hfx_res_1d(ji) + zfmdt * a_i_1d(ji) * zEi * r1_rdtice 527 527 528 ! Contribution to salt flux ( clem:using s_i_1d and not sz_i_1d(jk) is ok)528 ! Contribution to salt flux (using s_i_1d and not sz_i_1d(jk) is ok) 529 529 sfx_res_1d(ji) = sfx_res_1d(ji) - rhoic * a_i_1d(ji) * zdeltah(ji,jk) * s_i_1d(ji) * r1_rdtice 530 530 … … 559 559 hfx_thd_1d(ji) = hfx_thd_1d(ji) + zfmdt * a_i_1d(ji) * zEw * r1_rdtice 560 560 561 ! Contribution to salt flux ( clem:using s_i_1d and not sz_i_1d(jk) is ok)561 ! Contribution to salt flux (using s_i_1d and not sz_i_1d(jk) is ok) 562 562 sfx_bom_1d(ji) = sfx_bom_1d(ji) - rhoic * a_i_1d(ji) * zdeltah(ji,jk) * s_i_1d(ji) * r1_rdtice 563 563 -
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/LIM_SRC_3/icevar.F90
r8882 r8885 615 615 zh_i(ji,i_fill) = ( zhti(ji) * zati(ji) - zV ) / MAX( za_i(ji,i_fill), epsi10 ) 616 616 ! 617 ! c lem: correction if concentration of upper cat is greater than lower cat618 ! 617 ! correction if concentration of upper cat is greater than lower cat 618 ! (it should be a gaussian around jl0 but sometimes it is not) 619 619 IF ( jl0 /= jpl ) THEN 620 620 DO jl = jpl, jl0+1, -1 -
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/NST_SRC/agrif_lim3_interp.F90
r8882 r8885 52 52 !!----------------------------------------------------------------------- 53 53 ! 54 IF( Agrif_Root() .OR. nn_ice==0 ) RETURN ! clem2017:do not interpolate if inside Parent domain or if child domain does not have ice54 IF( Agrif_Root() .OR. nn_ice==0 ) RETURN ! do not interpolate if inside Parent domain or if child domain does not have ice 55 55 ! 56 56 SELECT CASE( cd_type ) -
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/NST_SRC/agrif_lim3_update.F90
r8882 r8885 54 54 IF( ( MOD( (kt-nit000)/nn_fsbc + 1, Agrif_irhot() * Agrif_Parent(nn_fsbc) / nn_fsbc ) /=0 ) .AND. (kt /= 0) ) RETURN ! do not update if nb of child time steps differ from time refinement 55 55 ! i.e. update only at the parent time step 56 IF( nn_ice == 0 ) RETURN ! clem2017:do not update if child domain does not have ice56 IF( nn_ice == 0 ) RETURN ! do not update if child domain does not have ice 57 57 ! 58 58 Agrif_SpecialValueFineGrid = -9999. -
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC/BDY/bdyini.F90
r8882 r8885 502 502 DO igrd = 1, jpbgrd 503 503 id_dummy = iom_varid( inum, 'nbi'//cgrid(igrd), kdimsz=kdimsz ) 504 !clem nblendta(igrd,ib_bdy) = kdimsz(1)505 !clem jpbdtau = MAX(jpbdtau, kdimsz(1))506 504 nblendta(igrd,ib_bdy) = MAXVAL(kdimsz) 507 505 jpbdtau = MAX(jpbdtau, MAXVAL(kdimsz)) -
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90
r8882 r8885 249 249 ENDIF 250 250 251 ! clem: heat and salt content251 ! heat and salt contents 252 252 IF( iom_use("heatc") ) THEN 253 253 z2d(:,:) = 0._wp … … 967 967 968 968 #if defined key_lim3 969 IF( nn_ice == 2 ) THEN ! c lem2017: condition in case agrif + limbut no-ice in child grid969 IF( nn_ice == 2 ) THEN ! condition needed in case agrif + ice-model but no-ice in child grid 970 970 CALL ice_wri_state( kt, id_i, nh_i ) 971 971 ENDIF -
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk.F90
r8884 r8885 111 111 LOGICAL :: ln_taudif ! logical flag to use the "mean of stress module - module of mean stress" data 112 112 REAL(wp) :: rn_pfac ! multiplication factor for precipitation 113 REAL(wp) :: rn_efac ! multiplication factor for evaporation (clem)114 REAL(wp) :: rn_vfac ! multiplication factor for ice/ocean velocity in the calculation of wind stress (clem)113 REAL(wp) :: rn_efac ! multiplication factor for evaporation 114 REAL(wp) :: rn_vfac ! multiplication factor for ice/ocean velocity in the calculation of wind stress 115 115 REAL(wp) :: rn_zqt ! z(q,t) : height of humidity and temperature measurements 116 116 REAL(wp) :: rn_zu ! z(u) : height of wind measurements -
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90
r8882 r8885 312 312 ! 313 313 #if defined key_lim3 314 IF( lk_agrif .AND. nn_ice == 0 ) THEN 315 IF( sbc_ice_alloc() /= 0 ) CALL ctl_stop('STOP', 'sbc_ice_alloc : unable to allocate arrays' ) ! clem2017: allocate ice arrays in case agrif + lim + no-ice in child grid314 IF( lk_agrif .AND. nn_ice == 0 ) THEN ! allocate ice arrays in case agrif + ice-model + no-ice in child grid 315 IF( sbc_ice_alloc() /= 0 ) CALL ctl_stop('STOP', 'sbc_ice_alloc : unable to allocate arrays' ) 316 316 ELSEIF( nn_ice == 2 ) THEN 317 CALL ice_init ! LIM3initialization317 CALL ice_init ! ICE initialization 318 318 ENDIF 319 319 #endif -
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90
r8882 r8885 203 203 #if defined key_agrif 204 204 CALL Agrif_ParentGrid_To_ChildGrid() 205 IF( ln_diaobs ) CALL dia_obs_wri205 IF( ln_diaobs ) CALL dia_obs_wri 206 206 IF( nn_timing == 1 ) CALL timing_finalize 207 207 CALL Agrif_ChildGrid_To_ParentGrid() -
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/SAS_SRC/diawri.F90
r8882 r8885 396 396 397 397 #if defined key_lim3 398 IF( nn_ice == 2 ) THEN ! c lem2017: conditionin case agrif + lim but no-ice in child grid398 IF( nn_ice == 2 ) THEN ! condition needed in case agrif + lim but no-ice in child grid 399 399 CALL ice_wri_state( kt, id_i, nh_i ) 400 400 ENDIF -
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/SAS_SRC/nemogcm.F90
r8882 r8885 31 31 USE icbini ! handle bergs, initialisation 32 32 USE icbstp ! handle bergs, calving, themodynamics and transport 33 USE bdyini ! open boundary cond. setting (bdy_init routine). clem: mandatory for LIM334 USE bdydta ! open boundary cond. setting (bdy_dta_init routine). clem: mandatory for LIM333 USE bdyini ! open boundary cond. setting (bdy_init routine). mandatory for sea-ice 34 USE bdydta ! open boundary cond. setting (bdy_dta_init routine). mandatory for sea-ice 35 35 ! 36 36 USE lib_mpp ! distributed memory computing … … 132 132 ! 133 133 #if defined key_agrif 134 !!clem2017 IF( .NOT. Agrif_Root() ) THEN135 134 CALL Agrif_ParentGrid_To_ChildGrid() 136 135 IF( ln_timing ) CALL timing_finalize 137 136 CALL Agrif_ChildGrid_To_ParentGrid() 138 !!clem2017 ENDIF139 137 #endif 140 138 IF( ln_timing ) CALL timing_finalize … … 366 364 CALL sbc_init ! Forcings : surface module 367 365 368 ! ==> clem: open boundaries init. is mandatory for LIM3because ice BDY is not decoupled from366 ! ==> clem: open boundaries init. is mandatory for sea-ice because ice BDY is not decoupled from 369 367 ! the environment of ocean BDY. Therefore bdy is called in both OPA and SAS modules. 370 368 ! This is not clean and should be changed in the future. … … 511 509 USE dom_oce , ONLY: dom_oce_alloc 512 510 USE bdy_oce , ONLY: ln_bdy, bdy_oce_alloc 513 USE oce ! clem: mandatory for LIM3because needed for bdy arrays511 USE oce ! mandatory for sea-ice because needed for bdy arrays 514 512 ! 515 513 INTEGER :: ierr -
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/SAS_SRC/step.F90
r8882 r8885 24 24 USE diawri ! Standard run outputs (dia_wri routine) 25 25 USE bdy_oce , ONLY: ln_bdy 26 USE bdydta ! clem: mandatory for ESIM26 USE bdydta ! mandatory for sea-ice 27 27 USE stpctl ! time stepping control (stp_ctl routine) 28 28 ! … … 37 37 38 38 #if defined key_agrif 39 USE agrif_oce, ONLY: lk_agrif_debug !clem39 USE agrif_oce, ONLY: lk_agrif_debug 40 40 #endif 41 41 … … 89 89 CALL iom_setkt( kstp - nit000 + 1, cxios_context ) ! tell iom we are at time step kstp 90 90 91 ! ==> clem: open boundaries is mandatory for ESIMbecause ice BDY is not decoupled from91 ! ==> clem: open boundaries is mandatory for sea-ice because ice BDY is not decoupled from 92 92 ! the environment of ocean BDY. Therefore bdy is called in both OPA and SAS modules. 93 93 ! From SAS: ocean bdy data are wrong (but we do not care) and ice bdy data are OK. … … 114 114 CALL dia_wri_state( 'output.abort', kstp ) 115 115 ENDIF 116 IF( kstp == nit000 ) CALL iom_close( numror ) ! close input ocean restart file (clem: not sure...)116 IF( kstp == nit000 ) CALL iom_close( numror ) ! close input ocean restart file 117 117 118 118 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Note: See TracChangeset
for help on using the changeset viewer.