Changeset 3524
- Timestamp:
- 2012-11-02T07:13:40+01:00 (11 years ago)
- Location:
- branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO
- Files:
-
- 59 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_2/iceini_2.F90
r3294 r3524 13 13 !! 'key_lim2' : LIM 2.0 sea-ice model 14 14 !!---------------------------------------------------------------------- 15 !! ice_init_2 16 !! ice_run_2 15 !! ice_init_2 : sea-ice model initialization 16 !! ice_run_2 : Definition some run parameter for ice model 17 17 !!---------------------------------------------------------------------- 18 USE phycst ! physical constants 19 USE dom_oce ! ocean domain 20 USE sbc_oce ! surface boundary condition: ocean 21 USE sbc_ice ! LIM2 surface boundary condition 22 USE dom_ice_2 ! LIM2 ice domain 23 USE par_ice_2 ! LIM2 parameters 24 USE thd_ice_2 ! LIM2 thermodynamical variables 25 USE ice_2 ! LIM2 ice variable 26 USE limmsh_2 ! LIM2 mesh 27 USE limistate_2 ! LIM2 initial state 28 USE limrst_2 ! LIM2 restart 29 USE limsbc_2 ! LIM2 surface boundary condition 30 USE in_out_manager ! I/O manager 31 USE lib_mpp ! MPP library 18 USE phycst ! physical constants 19 USE dom_oce ! ocean domain 20 USE sbc_oce ! surface boundary condition: ocean 21 USE sbc_ice ! LIM2 surface boundary condition 22 USE dom_ice_2 ! LIM2 ice domain 23 USE par_ice_2 ! LIM2 parameters 24 USE thd_ice_2 ! LIM2 thermodynamical variables 25 USE ice_2 ! LIM2 ice variable 26 USE limmsh_2 ! LIM2 mesh 27 USE limistate_2 ! LIM2 initial state 28 USE limrst_2 ! LIM2 restart 29 USE limsbc_2 ! LIM2 surface boundary condition 30 USE in_out_manager ! I/O manager 31 USE lib_mpp ! MPP library 32 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 32 33 33 34 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_2/limadv_2.F90
r3294 r3524 14 14 !! 'key_lim2' LIM 2.0 sea-ice model 15 15 !!---------------------------------------------------------------------- 16 !! lim_adv_x_2 : advection of sea ice on x axis17 !! lim_adv_y_2 : advection of sea ice on y axis16 !! lim_adv_x_2 : advection of sea ice on x axis 17 !! lim_adv_y_2 : advection of sea ice on y axis 18 18 !!---------------------------------------------------------------------- 19 19 USE dom_oce … … 21 21 USE ice_2 22 22 USE lbclnk 23 USE in_out_manager ! I/O manager 24 USE lib_mpp ! MPP library 25 USE wrk_nemo ! work arrays 26 USE prtctl ! Print control 23 USE in_out_manager ! I/O manager 24 USE lib_mpp ! MPP library 25 USE wrk_nemo ! work arrays 26 USE prtctl ! Print control 27 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 27 28 28 29 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_2/limdia_2.F90
r2715 r3524 24 24 USE in_out_manager ! I/O manager 25 25 USE lib_mpp ! MPP library 26 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 26 27 27 28 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_2/limdmp_2.F90
r2715 r3524 19 19 USE in_out_manager ! I/O manager 20 20 USE lib_mpp ! MPP library 21 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 21 22 22 23 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_2/limdyn_2.F90
r3294 r3524 31 31 USE in_out_manager ! I/O manager 32 32 USE prtctl ! Print control 33 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 33 34 34 35 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_2/limhdf_2.F90
r3294 r3524 21 21 USE prtctl ! Print control 22 22 USE in_out_manager ! I/O manager 23 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 23 24 24 25 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_2/limistate_2.F90
r3294 r3524 27 27 USE iom 28 28 USE in_out_manager 29 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 29 30 30 31 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_2/limmsh_2.F90
r3294 r3524 23 23 USE wrk_nemo ! work arrays 24 24 #endif 25 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 25 26 26 27 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_2/limrhg_2.F90
r3414 r3524 30 30 USE in_out_manager ! I/O manager 31 31 USE prtctl ! Print control 32 USE oce, ONLY : snwice_mass, snwice_mass_b 32 USE oce , ONLY : snwice_mass, snwice_mass_b 33 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 33 34 34 35 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_2/limsbc_2.F90
r3517 r3524 29 29 USE sbc_oce ! surface boundary condition: ocean 30 30 USE sbccpl 31 31 USE cpl_oasis3, ONLY : lk_cpl 32 USE oce , ONLY : sshn, sshb, snwice_mass, snwice_mass_b, snwice_fmass 32 33 USE albedo ! albedo parameters 33 34 USE lbclnk ! ocean lateral boundary condition - MPP exchanges … … 38 39 USE iom ! I/O library 39 40 USE prtctl ! Print control 40 USE cpl_oasis3, ONLY : lk_cpl 41 USE oce, ONLY : sshn, sshb, snwice_mass, snwice_mass_b, snwice_fmass 41 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 42 42 43 43 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_2/limthd_2.F90
r3396 r3524 13 13 !! 'key_lim2' : LIM 2.0 sea-ice model 14 14 !!---------------------------------------------------------------------- 15 !! lim_thd_2 : thermodynamic of sea ice16 !! lim_thd_init_2 : initialisation of sea-ice thermodynamic15 !! lim_thd_2 : thermodynamic of sea ice 16 !! lim_thd_init_2 : initialisation of sea-ice thermodynamic 17 17 !!---------------------------------------------------------------------- 18 USE phycst ! physical constants19 USE dom_oce ! ocean space and time domain variables18 USE phycst ! physical constants 19 USE dom_oce ! ocean space and time domain variables 20 20 USE domvvl 21 21 USE lbclnk 22 USE in_out_manager ! I/O manager22 USE in_out_manager ! I/O manager 23 23 USE lib_mpp 24 USE wrk_nemo ! work arrays25 USE iom ! IOM library26 USE ice_2 ! LIM sea-ice variables27 USE sbc_oce !28 USE sbc_ice !29 USE thd_ice_2 ! LIM thermodynamic sea-ice variables30 USE dom_ice_2 ! LIM sea-ice domain24 USE wrk_nemo ! work arrays 25 USE iom ! IOM library 26 USE ice_2 ! LIM sea-ice variables 27 USE sbc_oce ! 28 USE sbc_ice ! 29 USE thd_ice_2 ! LIM thermodynamic sea-ice variables 30 USE dom_ice_2 ! LIM sea-ice domain 31 31 USE limthd_zdf_2 32 32 USE limthd_lac_2 33 33 USE limtab_2 34 USE prtctl ! Print control 35 USE cpl_oasis3, ONLY : lk_cpl 36 USE diaar5, ONLY : lk_diaar5 37 34 USE prtctl ! Print control 35 USE cpl_oasis3, ONLY : lk_cpl 36 USE diaar5 , ONLY : lk_diaar5 37 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 38 38 39 IMPLICIT NONE 39 40 PRIVATE … … 55 56 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 56 57 !!---------------------------------------------------------------------- 57 58 58 CONTAINS 59 59 -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_2/limthd_lac_2.F90
r3396 r3524 7 7 8 8 !!---------------------------------------------------------------------- 9 !! lim_lat_acr_2 10 !!---------------------------------------------------------------------- 11 USE par_oce 9 !! lim_lat_acr_2 : lateral accretion of ice 10 !!---------------------------------------------------------------------- 11 USE par_oce ! ocean parameters 12 12 USE phycst 13 13 USE thd_ice_2 14 14 USE ice_2 15 15 USE limistate_2 16 USE lib_mpp ! MPP library 17 USE wrk_nemo ! work arrays 16 USE lib_mpp ! MPP library 17 USE wrk_nemo ! work arrays 18 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 18 19 19 20 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_2/limthd_zdf_2.F90
r3396 r3524 18 18 USE ice_2 19 19 USE limistate_2 20 USE cpl_oasis3, ONLY : lk_cpl 20 21 USE in_out_manager 21 22 USE lib_mpp ! MPP library 22 23 USE wrk_nemo ! work arrays 23 USE cpl_oasis3, ONLY : lk_cpl24 24 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 25 25 26 IMPLICIT NONE 26 27 PRIVATE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_2/limwri_2.F90
r3402 r3524 13 13 !!---------------------------------------------------------------------- 14 14 !!---------------------------------------------------------------------- 15 !! lim_wri_2 : write of the diagnostics variables in ouput file16 !! lim_wri_init_2 : initialization and namelist read15 !! lim_wri_2 : write of the diagnostics variables in ouput file 16 !! lim_wri_init_2 : initialization and namelist read 17 17 !! lim_wri_state_2 : write for initial state or/and abandon: 18 18 !! > output.init.nc (if ninist = 1 in namelist) … … 26 26 USE ice_2 27 27 28 USE dianam ! build name of file (routine)28 USE dianam ! build name of file (routine) 29 29 USE lbclnk 30 30 USE in_out_manager 31 USE lib_mpp ! MPP library32 USE wrk_nemo ! work arrays31 USE lib_mpp ! MPP library 32 USE wrk_nemo ! work arrays 33 33 USE iom 34 34 USE ioipsl 35 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 35 36 36 37 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/dom_ice.F90
r2777 r3524 9 9 USE par_ice ! LIM-3 parameter 10 10 USE in_out_manager ! I/O manager 11 USE lib_mpp ! MPP library 11 USE lib_mpp ! MPP library 12 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 12 13 13 14 IMPLICIT NONE … … 30 31 31 32 !!---------------------------------------------------------------------- 32 !! NEMO/LIM3 4.0, UCL - NEMO Consortium (2011)33 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2011) 33 34 !! $Id$ 34 35 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/ice.F90
r3517 r3524 9 9 #if defined key_lim3 10 10 !!---------------------------------------------------------------------- 11 !! 'key_lim3' : LIM3 sea-ice model12 !!---------------------------------------------------------------------- 13 USE par_ice 14 USE in_out_manager 15 USE lib_mpp 11 !! 'key_lim3' LIM-3 sea-ice model 12 !!---------------------------------------------------------------------- 13 USE par_ice ! LIM sea-ice parameters 14 USE in_out_manager ! I/O manager 15 USE lib_mpp ! MPP library 16 16 17 17 IMPLICIT NONE … … 278 278 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: qfvbq !: store energy in case of total lateral ablation (?) 279 279 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: dmgwi !: Variation of the mass of snow ice 280 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fsalt_res !: Residual salt flux due to correction of ice thickness [???]281 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fsbri !: Salt flux due to brine rejection [???]282 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fsalt_rpo !: Salt flux associated with porous ridged ice formation [???]283 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fheat_rpo !: Heat flux associated with porous ridged ice formation [???]280 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sfx_thd !: salt flux due to ice growth/melt [PSU/m2/s] 281 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sfx_bri !: salt flux due to brine rejection [PSU/m2/s] 282 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sfx_mec !: salt flux due to porous ridged ice formation [PSU/m2/s] 283 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sfx_res !: residual salt flux due to correction of ice thickness [PSU/m2/s] 284 284 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fhbri !: heat flux due to brine rejection 285 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: f mmec !: Mass flux due to snow loss during compression286 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: f seqv !: salt flux due to ice growth/melt [units ???]287 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: f hmec !: Heat flux due to snow loss during compression288 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fh eat_res !: Residual heat flux due to correction of ice thickness285 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fheat_mec !: heat flux associated with porous ridged ice formation [???] 286 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fheat_res !: residual heat flux due to correction of ice thickness 287 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fmmec !: mass flux due to snow loss during compression [Kg/m2/s] 288 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fhmec !: heat flux due to snow loss during compression 289 289 290 290 ! temporary arrays for dummy version of the code … … 417 417 418 418 !!---------------------------------------------------------------------- 419 !! NEMO/LIM3 4.0, UCL - NEMO Consortium (2010)419 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2010) 420 420 !! $Id$ 421 421 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) … … 446 446 447 447 ii = ii + 1 448 ALLOCATE( firic (jpi,jpj) , fcsic (jpi,jpj) , fleic 449 & rdvosif (jpi,jpj) , rdvobif(jpi,jpj) , fdvolif 450 & sist (jpi,jpj) , icethi (jpi,jpj) , t_bo 451 & frld (jpi,jpj) , pfrld (jpi,jpj) , phicif 452 & rdm_snw (jpi,jpj) , rdq_snw(jpi,jpj) , rdm_ice 453 & qldif 454 & fdtcn (jpi,jpj) , qdtcn (jpi,jpj) , fstric 455 & ffltbif (jpi,jpj) , fsbbq (jpi,jpj) , qfvbq 456 & fsalt_res(jpi,jpj) , fsbri (jpi,jpj) , fsalt_rpo(jpi,jpj) , fheat_rpo(jpi,jpj) , &457 & fhbri (jpi,jpj) , fmmec (jpi,jpj) , fseqv(jpi,jpj) , fhmec (jpi,jpj) , &458 & fheat_res(jpi,jpj) 448 ALLOCATE( firic (jpi,jpj) , fcsic (jpi,jpj) , fleic (jpi,jpj) , qlatic (jpi,jpj) , & 449 & rdvosif (jpi,jpj) , rdvobif(jpi,jpj) , fdvolif(jpi,jpj) , rdvonif (jpi,jpj) , & 450 & sist (jpi,jpj) , icethi (jpi,jpj) , t_bo (jpi,jpj) , hicifp (jpi,jpj) , & 451 & frld (jpi,jpj) , pfrld (jpi,jpj) , phicif (jpi,jpj) , fbif (jpi,jpj) , & 452 & rdm_snw (jpi,jpj) , rdq_snw(jpi,jpj) , rdm_ice(jpi,jpj) , rdq_ice (jpi,jpj) , & 453 & qldif (jpi,jpj) , qcmif (jpi,jpj) , & 454 & fdtcn (jpi,jpj) , qdtcn (jpi,jpj) , fstric (jpi,jpj) , fscmbq (jpi,jpj) , & 455 & ffltbif (jpi,jpj) , fsbbq (jpi,jpj) , qfvbq (jpi,jpj) , dmgwi (jpi,jpj) , & 456 & sfx_res (jpi,jpj) , sfx_bri(jpi,jpj) , sfx_mec(jpi,jpj) , fheat_mec(jpi,jpj) , & 457 & fhbri (jpi,jpj) , fmmec (jpi,jpj) , sfx_thd(jpi,jpj) , fhmec (jpi,jpj) , & 458 & fheat_res(jpi,jpj) , STAT=ierr(ii) ) 459 459 460 460 ii = ii + 1 -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/iceini.F90
r3517 r3524 10 10 #if defined key_lim3 11 11 !!---------------------------------------------------------------------- 12 !! 'key_lim3' : LIM sea-ice model 13 !!---------------------------------------------------------------------- 14 !! ice_init : sea-ice model initialization 15 !!---------------------------------------------------------------------- 16 USE phycst ! physical constants 17 USE dom_oce ! ocean domain 18 USE sbc_oce ! Surface boundary condition: ocean fields 19 USE sbc_ice ! Surface boundary condition: ice fields 20 USE ice ! LIM variables 21 USE par_ice ! LIM parameters 22 USE dom_ice ! LIM domain 23 USE thd_ice ! LIM thermodynamical variables 24 USE limitd_me ! LIM ice thickness distribution 25 USE limmsh ! LIM mesh 26 USE limistate ! LIM initial state 27 USE limrst ! LIM restart 28 USE limthd ! LIM ice thermodynamics 29 USE limthd_sal ! LIM ice thermodynamics: salinity 30 USE limvar ! LIM variables 31 USE limsbc ! LIM surface boundary condition 32 USE in_out_manager ! I/O manager 33 USE lib_mpp ! MPP library 12 !! 'key_lim3' LIM sea-ice model 13 !!---------------------------------------------------------------------- 14 !! ice_init : sea-ice model initialization 15 !!---------------------------------------------------------------------- 16 USE phycst ! physical constants 17 USE dom_oce ! ocean domain 18 USE sbc_oce ! Surface boundary condition: ocean fields 19 USE sbc_ice ! Surface boundary condition: ice fields 20 USE ice ! LIM variables 21 USE par_ice ! LIM parameters 22 USE dom_ice ! LIM domain 23 USE thd_ice ! LIM thermodynamical variables 24 USE limitd_me ! LIM ice thickness distribution 25 USE limmsh ! LIM mesh 26 USE limistate ! LIM initial state 27 USE limrst ! LIM restart 28 USE limthd ! LIM ice thermodynamics 29 USE limthd_sal ! LIM ice thermodynamics: salinity 30 USE limvar ! LIM variables 31 USE limsbc ! LIM surface boundary condition 32 USE in_out_manager ! I/O manager 33 USE lib_mpp ! MPP library 34 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 34 35 35 36 IMPLICIT NONE … … 39 40 40 41 !!---------------------------------------------------------------------- 41 !! NEMO/LIM3 4.0, UCL - NEMO Consortium (2011)42 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2011) 42 43 !! $Id$ 43 44 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limadv.F90
r3517 r3524 15 15 !! lim_adv_y : advection of sea ice on y axis 16 16 !!---------------------------------------------------------------------- 17 USE dom_oce ! ocean domain 18 USE dom_ice ! LIM-3 domain 19 USE ice ! LIM-3 variables 20 USE lbclnk ! lateral boundary condition - MPP exchanges 21 USE in_out_manager ! I/O manager 22 USE prtctl ! Print control 23 USE lib_mpp ! MPP library 24 USE wrk_nemo ! work arrays 17 USE dom_oce ! ocean domain 18 USE ice ! LIM-3 variables 19 USE dom_ice ! LIM-3 domain 20 USE lbclnk ! lateral boundary condition - MPP exchanges 21 USE in_out_manager ! I/O manager 22 USE prtctl ! Print control 23 USE lib_mpp ! MPP library 24 USE wrk_nemo ! work arrays 25 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 25 26 26 27 IMPLICIT NONE … … 37 38 # include "vectopt_loop_substitute.h90" 38 39 !!---------------------------------------------------------------------- 39 !! NEMO/LIM3 4.0, UCL - NEMO Consortium (2011)40 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2011) 40 41 !! $Id$ 41 42 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limcons.F90
r2777 r3524 10 10 #if defined key_lim3 11 11 !!---------------------------------------------------------------------- 12 !! 'key_lim3' : LIM3 sea-ice model12 !! 'key_lim3' LIM-3 sea-ice model 13 13 !!---------------------------------------------------------------------- 14 !! lim_cons : checks whether energy, mass and salt are conserved14 !! lim_cons : checks whether energy, mass and salt are conserved 15 15 !!---------------------------------------------------------------------- 16 USE par_ice ! LIM-3 parameter 17 USE ice ! LIM-3 variables 18 USE dom_ice ! LIM-3 domain 19 USE dom_oce ! ocean domain 20 USE in_out_manager ! I/O manager 21 USE lib_mpp ! MPP library 16 USE par_ice ! LIM-3 parameter 17 USE ice ! LIM-3 variables 18 USE dom_ice ! LIM-3 domain 19 USE dom_oce ! ocean domain 20 USE in_out_manager ! I/O manager 21 USE lib_mpp ! MPP library 22 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 22 23 23 24 IMPLICIT NONE … … 29 30 30 31 !!---------------------------------------------------------------------- 31 !! NEMO/LIM3 4.0, UCL - NEMO Consortium (2011)32 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2011) 32 33 !! $Id$ 33 34 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limdia.F90
r3517 r3524 11 11 !! 'key_lim3' LIM3 sea-ice model 12 12 !!---------------------------------------------------------------------- 13 !! lim_dia : computation and output of the time evolution of keys variables 14 !! lim_dia_init : initialization and namelist read 15 !!---------------------------------------------------------------------- 16 USE ice ! LIM-3: sea-ice variable 17 USE par_ice ! LIM-3: ice parameters 18 USE dom_ice ! LIM-3: sea-ice domain 19 USE dom_oce ! ocean domain 20 USE sbc_oce ! surface boundary condition: ocean fields 21 USE daymod ! model calendar 22 USE phycst ! physical constant 23 USE in_out_manager ! I/O manager 24 USE lib_mpp ! MPP library 25 13 !! lim_dia : computation and output of the time evolution of keys variables 14 !! lim_dia_init : initialization and namelist read 15 !!---------------------------------------------------------------------- 16 USE ice ! LIM-3: sea-ice variable 17 USE par_ice ! LIM-3: ice parameters 18 USE dom_ice ! LIM-3: sea-ice domain 19 USE dom_oce ! ocean domain 20 USE sbc_oce ! surface boundary condition: ocean fields 21 USE daymod ! model calendar 22 USE phycst ! physical constant 23 USE in_out_manager ! I/O manager 24 USE lib_mpp ! MPP library 25 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 26 26 27 IMPLICIT NONE 27 28 PRIVATE … … 105 106 IF( tms(ji,jj) == 1 ) THEN 106 107 vinfor(3) = vinfor(3) + at_i(ji,jj)*aire(ji,jj) * 1.e-12_wp !ice area 107 IF ( at_i(ji,jj).GT.0.15)vinfor(5) = vinfor(5) + aire(ji,jj) * 1.e-12_wp !ice extent108 IF ( at_i(ji,jj) > 0.15 ) vinfor(5) = vinfor(5) + aire(ji,jj) * 1.e-12_wp !ice extent 108 109 vinfor(7) = vinfor(7) + vt_i(ji,jj)*aire(ji,jj) * 1.e-12_wp !ice volume 109 110 vinfor(9) = vinfor(9) + vt_s(ji,jj)*aire(ji,jj) * 1.e-12_wp !snow volume … … 111 112 vinfor(29) = vinfor(29) + smt_i(ji,jj)*vt_i(ji,jj)*aire(ji,jj) * 1.e-12_wp !mean salinity 112 113 ! the computation of this diagnostic is not reliable 113 vinfor(31) = vinfor(31) + vt_i(ji,jj) *( u_ice(ji,jj)*u_ice(ji,jj) +&114 v_ice(ji,jj)*v_ice(ji,jj) )*aire(ji,jj)/1.0e12114 vinfor(31) = vinfor(31) + vt_i(ji,jj) * ( u_ice(ji,jj)*u_ice(ji,jj) & 115 & + v_ice(ji,jj)*v_ice(ji,jj) ) * aire(ji,jj) * 1.e-12 115 116 vinfor(53) = vinfor(53) + sfx (ji,jj)*aire(ji,jj) * 1.e-12_wp !salt flux 116 vinfor(55) = vinfor(55) + fsbri(ji,jj)*aire(ji,jj) * 1.e-12_wp !brine drainage flux117 vinfor(57) = vinfor(57) + fseqv(ji,jj)*aire(ji,jj) * 1.e-12_wp !equivalent salt flux117 vinfor(55) = vinfor(55) + sfx_bri(ji,jj)*aire(ji,jj) * 1.e-12_wp !brine drainage flux 118 vinfor(57) = vinfor(57) + sfx_thd(ji,jj)*aire(ji,jj) * 1.e-12_wp !equivalent salt flux 118 119 vinfor(59) = vinfor(59) +(sst_m(ji,jj)+rt0)*at_i(ji,jj)*aire(ji,jj) * 1.e-12_wp !SST 119 120 vinfor(61) = vinfor(61) + sss_m(ji,jj)*at_i(ji,jj)*aire(ji,jj) * 1.e-12_wp !SSS … … 232 233 233 234 !! Fram Strait Export 235 !!gm BUG : hard coded ORCA2 case !!! ===>>>> to be removed !!!! 236 !!gm moreover, this is NOT the correct way of evaluating a ice transport ! 237 !!gm mass of snow + ice is missing and a j, j+1 is also missing 238 !!gm BUG in MPP case ! 234 239 !! 83 = area export 235 240 !! 84 = volume export … … 243 248 vinfor(84) = vinfor(84) - v_ice(ji,jj) * e1t(ji,jj)*vt_i(ji,jj)*rdt_ice * 1.e-12_wp 244 249 END DO 250 !!gm en BUG 245 251 246 252 !!------------------------------------------------------------------- … … 262 268 vinfor(32) = vinfor(32) + vt_i(ji,jj)*( u_ice(ji,jj)*u_ice(ji,jj) + & 263 269 v_ice(ji,jj)*v_ice(ji,jj) )*aire(ji,jj)/1.0e12 !ice vel 264 vinfor(54) = vinfor(54) + at_i(ji,jj)*sfx (ji,jj)*aire(ji,jj) * 1.e-12_wp ! Total salt flux265 vinfor(56) = vinfor(56) + at_i(ji,jj)*fsbri(ji,jj)*aire(ji,jj) * 1.e-12_wp ! Brine drainage salt flux266 vinfor(58) = vinfor(58) + at_i(ji,jj)*fseqv(ji,jj)*aire(ji,jj) * 1.e-12_wp ! Equivalent salt flux270 vinfor(54) = vinfor(54) + sfx (ji,jj)*aire(ji,jj) * 1.e-12_wp ! Total salt flux 271 vinfor(56) = vinfor(56) + sfx_bri(ji,jj)*aire(ji,jj) * 1.e-12_wp ! Brine drainage salt flux 272 vinfor(58) = vinfor(58) + sfx_thd(ji,jj)*aire(ji,jj) * 1.e-12_wp ! Equivalent salt flux 267 273 vinfor(60) = vinfor(60) +(sst_m(ji,jj)+rt0)*at_i(ji,jj)*aire(ji,jj) * 1.e-12_wp !SST 268 274 vinfor(62) = vinfor(62) + sss_m(ji,jj)*at_i(ji,jj)*aire(ji,jj) * 1.e-12_wp !SSS … … 343 349 END DO 344 350 END DO 345 zindb = 1. 0 - MAX(0.0,SIGN(1.0,-vinfor(4)))!346 vinfor(64) = zindb * vinfor(64) / MAX( vinfor(4),epsi06)! divide by ice extt351 zindb = 1._wp - MAX( 0._wp , SIGN( 1._wp , -vinfor(4) ) ) ! 352 vinfor(64) = zindb * vinfor(64) / MAX( vinfor(4) , epsi06 ) ! divide by ice extt 347 353 !! 2.2) Diagnostics dependent on age 348 354 !!------------------------------------ … … 366 372 ENDIF 367 373 END DO ! jl 368 IF ( (at_i(ji,jj).GT.0.15).AND.(zafy.GT.zamy)) THEN374 IF ( at_i(ji,jj) > 0.15 .AND. zafy > zamy ) THEN 369 375 vinfor(22) = vinfor(22) + aire(ji,jj) * 1.e-12_wp ! Seasonal ice extent 370 376 ENDIF 371 IF ( (at_i(ji,jj).GT.0.15).AND.(zafy.LE.zamy)) THEN377 IF ( at_i(ji,jj) > 0.15 .AND. zafy <= zamy ) THEN 372 378 vinfor(24) = vinfor(24) + aire(ji,jj) * 1.e-12_wp ! Perennial ice extent 373 379 ENDIF … … 375 381 END DO ! jj 376 382 END DO ! ji 377 zindb = 1.0 - MAX( 0.0,SIGN(1.0,-vinfor(26)))!=0 if no multiyear ice 1 if yes378 vinfor(50) = zindb *vinfor(50) / MAX(vinfor(26),epsi06)379 zindb = 1.0 - MAX( 0.0,SIGN(1.0,-vinfor(28))) !=0 if no multiyear ice 1 if yes380 vinfor(52) = zindb *vinfor(52) / MAX(vinfor(28),epsi06)383 zindb = 1.0 - MAX( 0.0,SIGN( 1._wp , -vinfor(26) ) ) !=0 if no multiyear ice 1 if yes 384 vinfor(50) = zindb * vinfor(50) / MAX( vinfor(26) , epsi06 ) 385 zindb = 1.0 - MAX( 0._wp , SIGN( 1._wp , -vinfor(28) ) ) !=0 if no multiyear ice 1 if yes 386 vinfor(52) = zindb * vinfor(52) / MAX( vinfor(28) , epsi06 ) 381 387 382 388 ! Accumulation before averaging -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limdyn.F90
r3294 r3524 15 15 !! lim_dyn_init : initialization and namelist read 16 16 !!---------------------------------------------------------------------- 17 USE phycst ! physical constants 18 USE dom_oce ! ocean space and time domain 19 USE sbc_oce ! Surface boundary condition: ocean fields 20 USE sbc_ice ! Surface boundary condition: ice fields 21 USE ice ! LIM-3 variables 22 USE par_ice ! LIM-3 parameters 23 USE dom_ice ! LIM-3 domain 24 USE limrhg ! LIM-3 rheology 25 USE lbclnk ! lateral boundary conditions - MPP exchanges 26 USE lib_mpp ! MPP library 27 USE wrk_nemo ! work arrays 28 USE in_out_manager ! I/O manager 29 USE prtctl ! Print control 17 USE phycst ! physical constants 18 USE dom_oce ! ocean space and time domain 19 USE sbc_oce ! Surface boundary condition: ocean fields 20 USE sbc_ice ! Surface boundary condition: ice fields 21 USE ice ! LIM-3 variables 22 USE par_ice ! LIM-3 parameters 23 USE dom_ice ! LIM-3 domain 24 USE limrhg ! LIM-3 rheology 25 USE lbclnk ! lateral boundary conditions - MPP exchanges 26 USE lib_mpp ! MPP library 27 USE wrk_nemo ! work arrays 28 USE in_out_manager ! I/O manager 29 USE prtctl ! Print control 30 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 30 31 31 32 IMPLICIT NONE … … 37 38 # include "vectopt_loop_substitute.h90" 38 39 !!---------------------------------------------------------------------- 39 !! NEMO/LIM3 4.0, UCL - NEMO Consortium (2011)40 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2011) 40 41 !! $Id$ 41 42 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limhdf.F90
r3294 r3524 12 12 !! 'key_lim3' LIM3 sea-ice model 13 13 !!---------------------------------------------------------------------- 14 !! lim_hdf : diffusion trend on sea-ice variable14 !! lim_hdf : diffusion trend on sea-ice variable 15 15 !!---------------------------------------------------------------------- 16 USE dom_oce ! ocean domain 17 USE ice ! LIM-3: ice variables 18 USE lbclnk ! lateral boundary condition - MPP exchanges 19 USE lib_mpp ! MPP library 20 USE wrk_nemo ! work arrays 21 USE prtctl ! Print control 22 USE in_out_manager ! I/O manager 16 USE dom_oce ! ocean domain 17 USE ice ! LIM-3: ice variables 18 USE lbclnk ! lateral boundary condition - MPP exchanges 19 USE lib_mpp ! MPP library 20 USE wrk_nemo ! work arrays 21 USE prtctl ! Print control 22 USE in_out_manager ! I/O manager 23 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 23 24 24 25 IMPLICIT NONE … … 34 35 # include "vectopt_loop_substitute.h90" 35 36 !!---------------------------------------------------------------------- 36 !! NEMO/LIM3 4.0, UCL - NEMO Consortium (2010)37 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2010) 37 38 !! $Id$ 38 39 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limistate.F90
r3349 r3524 26 26 USE lib_mpp ! MPP library 27 27 USE wrk_nemo ! work arrays 28 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 28 29 29 30 IMPLICIT NONE … … 48 49 49 50 !!---------------------------------------------------------------------- 50 !! NEMO/LIM3 4.0, UCL - NEMO Consortium (2011)51 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2011) 51 52 !! $Id$ 52 53 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limitd_me.F90
r3517 r3524 10 10 #if defined key_lim3 11 11 !!---------------------------------------------------------------------- 12 !! 'key_lim3' : LIM3 sea-ice model12 !! 'key_lim3' LIM-3 sea-ice model 13 13 !!---------------------------------------------------------------------- 14 USE par_oce ! ocean parameters 15 USE dom_oce ! ocean domain 16 USE phycst ! physical constants (ocean directory) 17 USE sbc_oce ! surface boundary condition: ocean fields 18 USE thd_ice ! LIM thermodynamics 19 USE ice ! LIM variables 20 USE par_ice ! LIM parameters 21 USE dom_ice ! LIM domain 22 USE limthd_lac ! LIM 23 USE limvar ! LIM 24 USE limcons ! LIM 25 USE in_out_manager ! I/O manager 26 USE lbclnk ! lateral boundary condition - MPP exchanges 27 USE lib_mpp ! MPP library 28 USE wrk_nemo ! work arrays 29 USE prtctl ! Print control 14 USE par_oce ! ocean parameters 15 USE dom_oce ! ocean domain 16 USE phycst ! physical constants (ocean directory) 17 USE sbc_oce ! surface boundary condition: ocean fields 18 USE thd_ice ! LIM thermodynamics 19 USE ice ! LIM variables 20 USE par_ice ! LIM parameters 21 USE dom_ice ! LIM domain 22 USE limthd_lac ! LIM 23 USE limvar ! LIM 24 USE limcons ! LIM 25 USE in_out_manager ! I/O manager 26 USE lbclnk ! lateral boundary condition - MPP exchanges 27 USE lib_mpp ! MPP library 28 USE wrk_nemo ! work arrays 29 USE prtctl ! Print control 30 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 30 31 31 32 IMPLICIT NONE … … 1135 1136 1136 1137 ! ! excess of salt is flushed into the ocean 1137 fsalt_rpo(ji,jj) = fsalt_rpo(ji,jj) + ( zsrdg2 - srdg2(ji,jj) ) * rhoic * r1_rdtice1138 sfx_mec(ji,jj) = sfx_mec(ji,jj) + ( zsrdg2 - srdg2(ji,jj) ) * rhoic * r1_rdtice 1138 1139 1139 1140 rdm_ice(ji,jj) = rdm_ice(ji,jj) + vsw(ji,jj) * rhoic / rau0 ! increase in ice volume du to seawater frozen in voids … … 1209 1210 1210 1211 ! heat flux 1211 fheat_ rpo(ji,jj) = fheat_rpo(ji,jj) + ( ersw(ji,jj,jk) - zdummy0 ) * r1_rdtice1212 fheat_mec(ji,jj) = fheat_mec(ji,jj) + ( ersw(ji,jj,jk) - zdummy0 ) * r1_rdtice 1212 1213 1213 1214 ! Correct dimensions to avoid big values … … 1534 1535 1535 1536 ! xtmp = (rhoi*vicen(i,j,n) + rhos*vsnon(i,j,n)) / dt 1536 ! fresh(i,j) = fresh(i,j) + xtmp 1537 ! fresh_hist(i,j) = fresh_hist(i,j) + xtmp 1538 1539 ! fsalt_res(ji,jj) = fsalt_res(ji,jj) + ( sss_m(ji,jj) ) * & 1540 ! rhosn * v_s(ji,jj,jl) * r1_rdtice 1541 1542 ! fsalt_res(ji,jj) = fsalt_res(ji,jj) + ( sss_m(ji,jj) - sm_i(ji,jj,jl) ) * & 1543 ! rhoic * v_i(ji,jj,jl) * r1_rdtice 1544 1537 ! sfx_res(ji,jj) = sfx_res(ji,jj) + ( sss_m(ji,jj) ) & 1538 ! * rhosn * v_s(ji,jj,jl) * r1_rdtice 1539 ! sfx_res(ji,jj) = sfx_res(ji,jj) + ( sss_m(ji,jj) - sm_i(ji,jj,jl) ) & 1540 ! * rhoic * v_i(ji,jj,jl) * r1_rdtice 1545 1541 ! sfx (i,j) = sfx (i,j) + xtmp 1546 ! fsalt_hist(i,j) = fsalt_hist(i,j) + xtmp1547 1542 1548 1543 ato_i(ji,jj) = a_i (ji,jj,jl) * zmask(ji,jj) + ato_i(ji,jj) -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limitd_th.F90
r3517 r3524 2 2 !!====================================================================== 3 3 !! *** MODULE limitd_th *** 4 !! Thermodynamics of ice thickness distribution 5 !! computation of changes in g(h) 4 !! LIM3 ice model : ice thickness distribution: Thermodynamics 6 5 !!====================================================================== 7 6 !! History : - ! (W. H. Lipscomb and E.C. Hunke) CICE (c) original code … … 20 19 !! lim_itd_shiftice : 21 20 !!---------------------------------------------------------------------- 22 USE dom_ice ! LIM-3 domain 23 USE par_oce ! ocean parameters 24 USE dom_oce ! ocean domain 25 USE phycst ! physical constants (ocean directory) 26 USE thd_ice ! LIM-3 thermodynamic variables 27 USE ice ! LIM-3 variables 28 USE par_ice ! LIM-3 parameters 29 USE limthd_lac ! LIM-3 lateral accretion 30 USE limvar ! LIM-3 variables 31 USE limcons ! LIM-3 conservation 32 USE prtctl ! Print control 33 USE in_out_manager ! I/O manager 34 USE lib_mpp ! MPP library 35 USE wrk_nemo ! work arrays 21 USE par_oce ! ocean parameters 22 USE dom_oce ! ocean domain 23 USE phycst ! physical constants (ocean directory) 24 USE ice ! LIM-3 variables 25 USE par_ice ! LIM-3 parameters 26 USE dom_ice ! LIM-3 domain 27 USE thd_ice ! LIM-3 thermodynamic variables 28 USE limthd_lac ! LIM-3 lateral accretion 29 USE limvar ! LIM-3 variables 30 USE limcons ! LIM-3 conservation 31 USE prtctl ! Print control 32 USE in_out_manager ! I/O manager 33 USE lib_mpp ! MPP library 34 USE wrk_nemo ! work arrays 35 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 36 36 37 37 IMPLICIT NONE … … 49 49 50 50 !!---------------------------------------------------------------------- 51 !! NEMO/LIM3 4.0, UCL - NEMO Consortium (2010)51 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2010) 52 52 !! $Id$ 53 53 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limmsh.F90
r2715 r3524 10 10 !! 'key_lim3' LIM3 sea-ice model 11 11 !!---------------------------------------------------------------------- 12 !! lim_msh : definition of the ice mesh12 !! lim_msh : definition of the ice mesh 13 13 !!---------------------------------------------------------------------- 14 14 USE phycst ! physical constants … … 18 18 USE lbclnk ! lateral boundary condition - MPP exchanges 19 19 USE lib_mpp ! MPP library 20 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 20 21 21 22 IMPLICIT NONE … … 25 26 26 27 !!---------------------------------------------------------------------- 27 !! NEMO/LIM3 4.0, UCL - NEMO Consortium (2011)28 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2011) 28 29 !! $Id$ 29 30 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limrhg.F90
r3414 r3524 15 15 !! 'key_lim2' AND NOT 'key_lim2_vp' EVP LIM-2 sea-ice model 16 16 !!---------------------------------------------------------------------- 17 !! lim_rhg : computes ice velocities17 !! lim_rhg : computes ice velocities 18 18 !!---------------------------------------------------------------------- 19 USE phycst ! Physical constant 20 USE par_oce ! Ocean parameters 21 USE dom_oce ! Ocean domain 22 USE sbc_oce ! Surface boundary condition: ocean fields 23 USE sbc_ice ! Surface boundary condition: ice fields 24 USE lbclnk ! Lateral Boundary Condition / MPP link 25 USE lib_mpp ! MPP library 26 USE wrk_nemo ! work arrays 27 USE in_out_manager ! I/O manager 28 USE prtctl ! Print control 19 USE phycst ! Physical constant 20 USE oce , ONLY : snwice_mass, snwice_mass_b 21 USE par_oce ! Ocean parameters 22 USE dom_oce ! Ocean domain 23 USE sbc_oce ! Surface boundary condition: ocean fields 24 USE sbc_ice ! Surface boundary condition: ice fields 29 25 #if defined key_lim3 30 USE ice 31 USE dom_ice 32 USE limitd_me 26 USE ice ! LIM-3: ice variables 27 USE dom_ice ! LIM-3: ice domain 28 USE limitd_me ! LIM-3: 33 29 #else 34 USE ice_2 ! LIM2: ice variables35 USE dom_ice_2 ! LIM2: ice domain30 USE ice_2 ! LIM-2: ice variables 31 USE dom_ice_2 ! LIM-2: ice domain 36 32 #endif 37 USE oce, ONLY : snwice_mass, snwice_mass_b 33 USE lbclnk ! Lateral Boundary Condition / MPP link 34 USE lib_mpp ! MPP library 35 USE wrk_nemo ! work arrays 36 USE in_out_manager ! I/O manager 37 USE prtctl ! Print control 38 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 38 39 39 40 IMPLICIT NONE … … 48 49 # include "vectopt_loop_substitute.h90" 49 50 !!---------------------------------------------------------------------- 50 !! NEMO/LIM3 4.0, UCL - NEMO Consortium (2011)51 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2011) 51 52 !! $Id$ 52 53 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limrst.F90
r3517 r3524 12 12 !! 'key_lim3' : LIM sea-ice model 13 13 !!---------------------------------------------------------------------- 14 !! lim_rst_opn : open ice restart file 15 !! lim_rst_write : write of the restart file 16 !! lim_rst_read : read the restart file 17 !!---------------------------------------------------------------------- 18 USE ice ! sea-ice variables 19 USE par_ice ! sea-ice parameters 20 USE dom_oce ! ocean domain 21 USE sbc_oce ! Surface boundary condition: ocean fields 22 USE sbc_ice ! Surface boundary condition: ice fields 23 USE in_out_manager ! I/O manager 24 USE iom ! I/O library 25 USE lib_mpp ! MPP library 26 USE wrk_nemo ! work arrays 14 !! lim_rst_opn : open ice restart file 15 !! lim_rst_write : write of the restart file 16 !! lim_rst_read : read the restart file 17 !!---------------------------------------------------------------------- 18 USE ice ! sea-ice variables 19 USE par_ice ! sea-ice parameters 20 USE dom_oce ! ocean domain 21 USE sbc_oce ! Surface boundary condition: ocean fields 22 USE sbc_ice ! Surface boundary condition: ice fields 23 USE in_out_manager ! I/O manager 24 USE iom ! I/O library 25 USE lib_mpp ! MPP library 26 USE wrk_nemo ! work arrays 27 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 27 28 28 29 IMPLICIT NONE … … 37 38 38 39 !!---------------------------------------------------------------------- 39 !! NEMO/LIM3 4.0, UCL - NEMO Consortium (2011)40 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2011) 40 41 !! $Id$ 41 42 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limsbc.F90
r3517 r3524 37 37 USE oce, ONLY : sshn, sshb, snwice_mass, snwice_mass_b, snwice_fmass, sshu_b, sshv_b, sshu_n, sshv_n, sshf_n 38 38 USE dom_ice, ONLY : tms 39 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 39 40 40 41 IMPLICIT NONE … … 56 57 # include "vectopt_loop_substitute.h90" 57 58 !!---------------------------------------------------------------------- 58 !! NEMO/LIM3 4.0, UCL - NEMO Consortium (2011)59 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2011) 59 60 !! $Id$ 60 61 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) … … 99 100 ! 100 101 INTEGER :: ji, jj ! dummy loop indices 101 INTEGER :: ierr ! local integer 102 INTEGER :: ifvt, i1mfr, idfr ! some switches 103 INTEGER :: iflt, ial, iadv, ifral, ifrdv 104 REAL(wp) :: zinda, zemp, zemp_snow, zfmm ! local scalars 105 REAL(wp), POINTER, DIMENSION(:,:) :: zfcm1 , zfcm2 ! solar/non solar heat fluxes 102 INTEGER :: ierr, ifvt, i1mfr, idfr ! local integer 103 INTEGER :: iflt, ial , iadv , ifral, ifrdv ! - - 104 REAL(wp) :: zinda, zemp, zemp_snow, zfmm ! local scalars 105 REAL(wp) :: zfcm1 , zfcm2 ! - - 106 106 REAL(wp), POINTER, DIMENSION(:,:,:) :: zalb, zalbp ! 2D/3D workspace 107 107 !!--------------------------------------------------------------------- 108 108 109 CALL wrk_alloc( jpi, jpj, zfcm1 , zfcm2 )110 109 IF( lk_cpl ) CALL wrk_alloc( jpi, jpj, jpl, zalb, zalbp ) 111 110 … … 141 140 142 141 ! computation the solar flux at ocean surface 143 zfcm1 (ji,jj) = pfrld(ji,jj) * qsr(ji,jj) + ( 1.- pfrld(ji,jj) ) * fstric(ji,jj)142 zfcm1 = pfrld(ji,jj) * qsr(ji,jj) + ( 1._wp - pfrld(ji,jj) ) * fstric(ji,jj) 144 143 ! fstric Solar flux transmitted trough the ice 145 144 ! qsr Net short wave heat flux on free ocean … … 148 147 149 148 ! computation the non solar heat flux at ocean surface 150 zfcm2(ji,jj) = - zfcm1(ji,jj) & 151 & + iflt * ( fscmbq(ji,jj) ) & ! total abl -> fscmbq is given to the ocean 152 ! fscmbq and ffltbif are obsolete 153 ! & + iflt * ffltbif(ji,jj) !!! only if one category is used 154 & + ifral * ( ial * qcmif(ji,jj) + (1 - ial) * qldif(ji,jj) ) * r1_rdtice & 155 & + ifrdv * ( qfvbq(ji,jj) + qdtcn(ji,jj) ) * r1_rdtice & 156 & + fhmec(ji,jj) & ! new contribution due to snow melt when ridging!! 157 & + fheat_rpo(ji,jj) & ! contribution from ridge formation 158 & + fheat_res(ji,jj) 159 ! fscmbq Part of the solar radiation transmitted through the ice and going to the ocean computed in limthd_zdf.F90 160 ! ffltbif Total heat content of the ice (brine pockets+ice) / delta_t 149 zfcm2 = - zfcm1 & ! ??? 150 & + iflt * fscmbq(ji,jj) & ! total ablation: heat given to the ocean 151 & + ifral * ( ial * qcmif(ji,jj) + (1 - ial) * qldif(ji,jj) ) * r1_rdtice & 152 & + ifrdv * ( qfvbq(ji,jj) + qdtcn(ji,jj) ) * r1_rdtice & 153 & + fhmec(ji,jj) & ! snow melt when ridging 154 & + fheat_mec(ji,jj) & ! ridge formation 155 & + fheat_res(ji,jj) ! residual heat flux 161 156 ! qcmif Energy needed to bring the ocean surface layer until its freezing (ok) 162 157 ! qldif heat balance of the lead (or of the open ocean) 163 ! qfvbq i think this is wrong! 164 ! ---> Array used to store energy in case of total lateral ablation 165 ! qfvbq latent heat uptake/release after accretion/ablation 166 ! qdtcn Energy from the turbulent oceanic heat flux heat flux coming in the lead 167 168 IF( num_sal == 2 ) zfcm2(ji,jj) = zfcm2(ji,jj) + fhbri(ji,jj) ! add contribution due to brine drainage 158 ! qfvbq latent heat uptake/release after accretion/ablation 159 ! qdtcn Energy from the turbulent oceanic heat flux heat flux coming in the lead 160 161 IF( num_sal == 2 ) zfcm2 = zfcm2 + fhbri(ji,jj) ! add contribution due to brine drainage 169 162 170 163 ! bottom radiative component is sent to the computation of the oceanic heat flux 171 fsbbq(ji,jj) = ( 1. 0- ( ifvt + iflt ) ) * fscmbq(ji,jj)164 fsbbq(ji,jj) = ( 1._wp - ( ifvt + iflt ) ) * fscmbq(ji,jj) 172 165 173 166 ! used to compute the oceanic heat flux at the next time step 174 qsr(ji,jj) = zfcm1 (ji,jj)! solar heat flux175 qns(ji,jj) = zfcm2 (ji,jj)- fdtcn(ji,jj) ! non solar heat flux167 qsr(ji,jj) = zfcm1 ! solar heat flux 168 qns(ji,jj) = zfcm2 - fdtcn(ji,jj) ! non solar heat flux 176 169 ! ! fdtcn : turbulent oceanic heat flux 177 170 … … 180 173 WRITE(numout,*) ' lim_sbc : heat fluxes ' 181 174 WRITE(numout,*) ' qsr : ', qsr(jiindx,jjindx) 182 WRITE(numout,*) ' zfcm1 : ', zfcm1(jiindx,jjindx)183 175 WRITE(numout,*) ' pfrld : ', pfrld(jiindx,jjindx) 184 176 WRITE(numout,*) ' fstric : ', fstric (jiindx,jjindx) 185 177 WRITE(numout,*) 186 178 WRITE(numout,*) ' qns : ', qns(jiindx,jjindx) 187 WRITE(numout,*) ' zfcm2 : ', zfcm2(jiindx,jjindx) 188 WRITE(numout,*) ' zfcm1 : ', zfcm1(jiindx,jjindx) 179 WRITE(numout,*) ' fdtcn : ', fdtcn(jiindx,jjindx) 189 180 WRITE(numout,*) ' ifral : ', ifral 190 181 WRITE(numout,*) ' ial : ', ial … … 201 192 WRITE(numout,*) ' fdtcn : ', fdtcn(jiindx,jjindx) 202 193 WRITE(numout,*) ' fhmec : ', fhmec(jiindx,jjindx) 203 WRITE(numout,*) ' fheat_ rpo : ', fheat_rpo(jiindx,jjindx)194 WRITE(numout,*) ' fheat_mec : ', fheat_mec(jiindx,jjindx) 204 195 WRITE(numout,*) ' fhbri : ', fhbri(jiindx,jjindx) 205 196 WRITE(numout,*) ' fheat_res : ', fheat_res(jiindx,jjindx) … … 239 230 ! correcting brine salt fluxes (zinda = 1 if pfrld=1 , =0 otherwise) 240 231 zinda = 1.0 - MAX( rzero , SIGN( rone , - ( 1.0 - pfrld(ji,jj) ) ) ) 241 fsbri(ji,jj) = zinda * fsbri(ji,jj)232 sfx_bri(ji,jj) = zinda * sfx_bri(ji,jj) 242 233 END DO 243 234 END DO … … 248 239 249 240 IF( num_sal == 2 ) THEN ! variable ice salinity: brine drainage included in the salt flux 250 sfx (:,:) = fseqv(:,:) + fsalt_res(:,:) + fsalt_rpo(:,:) + fsbri(:,:)241 sfx(:,:) = sfx_thd(:,:) + sfx_res(:,:) + sfx_mec(:,:) + sfx_bri(:,:) 251 242 ELSE ! constant ice salinity: 252 sfx (:,:) = fseqv(:,:) + fsalt_res(:,:) + fsalt_rpo(:,:)243 sfx(:,:) = sfx_thd(:,:) + sfx_res(:,:) + sfx_mec(:,:) 253 244 ENDIF 254 245 !-----------------------------------------------! … … 285 276 ENDIF 286 277 ! 287 CALL wrk_dealloc( jpi, jpj, zfcm1 , zfcm2 )288 278 IF( lk_cpl ) CALL wrk_dealloc( jpi, jpj, jpl, zalb, zalbp ) 289 279 ! -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limtab.F90
r2715 r3524 2 2 !!====================================================================== 3 3 !! *** MODULE limtab *** 4 !! LIM : transform 1D (2D) array to a 2D (1D) table4 !! LIM ice model : transform 1D (2D) array to a 2D (1D) table 5 5 !!====================================================================== 6 6 #if defined key_lim3 … … 20 20 21 21 !!---------------------------------------------------------------------- 22 !! NEMO/LIM3 4.0, UCL - NEMO Consortium (2010)22 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2010) 23 23 !! $Id$ 24 24 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limthd.F90
r3517 r3524 16 16 !! 'key_lim3' LIM3 sea-ice model 17 17 !!---------------------------------------------------------------------- 18 !! lim_thd 19 !! lim_thd_init 18 !! lim_thd : thermodynamic of sea ice 19 !! lim_thd_init : initialisation of sea-ice thermodynamic 20 20 !!---------------------------------------------------------------------- 21 USE phycst ! physical constants 22 USE dom_oce ! ocean space and time domain variables 23 USE ice ! LIM: sea-ice variables 24 USE par_ice ! LIM: sea-ice parameters 25 USE sbc_oce ! Surface boundary condition: ocean fields 26 USE sbc_ice ! Surface boundary condition: ice fields 27 USE thd_ice ! LIM thermodynamic sea-ice variables 28 USE dom_ice ! LIM sea-ice domain 29 USE domvvl ! domain: variable volume level 30 USE limthd_dif ! LIM: thermodynamics, vertical diffusion 31 USE limthd_dh ! LIM: thermodynamics, ice and snow thickness variation 32 USE limthd_sal ! LIM: thermodynamics, ice salinity 33 USE limthd_ent ! LIM: thermodynamics, ice enthalpy redistribution 34 USE limtab ! LIM: 1D <==> 2D transformation 35 USE limvar ! LIM: sea-ice variables 36 USE lbclnk ! lateral boundary condition - MPP links 37 USE lib_mpp ! MPP library 38 USE wrk_nemo ! work arrays 39 USE in_out_manager ! I/O manager 40 USE prtctl ! Print control 21 USE phycst ! physical constants 22 USE dom_oce ! ocean space and time domain variables 23 USE ice ! LIM: sea-ice variables 24 USE par_ice ! LIM: sea-ice parameters 25 USE sbc_oce ! Surface boundary condition: ocean fields 26 USE sbc_ice ! Surface boundary condition: ice fields 27 USE thd_ice ! LIM thermodynamic sea-ice variables 28 USE dom_ice ! LIM sea-ice domain 29 USE domvvl ! domain: variable volume level 30 USE limthd_dif ! LIM: thermodynamics, vertical diffusion 31 USE limthd_dh ! LIM: thermodynamics, ice and snow thickness variation 32 USE limthd_sal ! LIM: thermodynamics, ice salinity 33 USE limthd_ent ! LIM: thermodynamics, ice enthalpy redistribution 34 USE limtab ! LIM: 1D <==> 2D transformation 35 USE limvar ! LIM: sea-ice variables 36 USE lbclnk ! lateral boundary condition - MPP links 37 USE lib_mpp ! MPP library 38 USE wrk_nemo ! work arrays 39 USE in_out_manager ! I/O manager 40 USE prtctl ! Print control 41 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 41 42 42 43 IMPLICIT NONE … … 143 144 rdm_ice(:,:) = 0.e0 ! variation of ice mass per unit area 144 145 hicifp (:,:) = 0.e0 ! daily thermodynamic ice production. 145 fsbri(:,:) = 0.e0 ! brine flux contribution to salt flux to the ocean146 sfx_bri(:,:) = 0.e0 ! brine flux contribution to salt flux to the ocean 146 147 fhbri (:,:) = 0.e0 ! brine flux contribution to heat flux to the ocean 147 fseqv(:,:) = 0.e0 ! equivalent salt flux to the ocean due to ice/growth decay148 sfx_thd(:,:) = 0.e0 ! equivalent salt flux to the ocean due to ice/growth decay 148 149 149 150 !----------------------------------- … … 273 274 CALL tab_2d_1d( nbpb, fr2_i0_1d (1:nbpb), fr2_i0 , jpi, jpj, npb(1:nbpb) ) 274 275 CALL tab_2d_1d( nbpb, qnsr_ice_1d(1:nbpb), qns_ice(:,:,jl) , jpi, jpj, npb(1:nbpb) ) 275 276 276 #if ! defined key_coupled 277 CALL tab_2d_1d( nbpb, qla_ice_1d (1:nbpb), qla_ice(:,:,jl) 278 CALL tab_2d_1d( nbpb, dqla_ice_1d(1:nbpb), dqla_ice(:,:,jl) 277 CALL tab_2d_1d( nbpb, qla_ice_1d (1:nbpb), qla_ice(:,:,jl) , jpi, jpj, npb(1:nbpb) ) 278 CALL tab_2d_1d( nbpb, dqla_ice_1d(1:nbpb), dqla_ice(:,:,jl), jpi, jpj, npb(1:nbpb) ) 279 279 #endif 280 281 CALL tab_2d_1d( nbpb, dqns_ice_1d(1:nbpb), dqns_ice(:,:,jl) , jpi, jpj, npb(1:nbpb) ) 282 CALL tab_2d_1d( nbpb, t_bo_b (1:nbpb), t_bo , jpi, jpj, npb(1:nbpb) ) 283 CALL tab_2d_1d( nbpb, sprecip_1d (1:nbpb), sprecip , jpi, jpj, npb(1:nbpb) ) 284 CALL tab_2d_1d( nbpb, fbif_1d (1:nbpb), fbif , jpi, jpj, npb(1:nbpb) ) 285 CALL tab_2d_1d( nbpb, qldif_1d (1:nbpb), qldif , jpi, jpj, npb(1:nbpb) ) 286 CALL tab_2d_1d( nbpb, rdm_ice_1d (1:nbpb), rdm_ice , jpi, jpj, npb(1:nbpb) ) 287 CALL tab_2d_1d( nbpb, rdm_snw_1d (1:nbpb), rdm_snw , jpi, jpj, npb(1:nbpb) ) 288 CALL tab_2d_1d( nbpb, dmgwi_1d (1:nbpb), dmgwi , jpi, jpj, npb(1:nbpb) ) 289 CALL tab_2d_1d( nbpb, qlbbq_1d (1:nbpb), zqlbsbq , jpi, jpj, npb(1:nbpb) ) 290 291 CALL tab_2d_1d( nbpb, fseqv_1d (1:nbpb), fseqv , jpi, jpj, npb(1:nbpb) ) 292 CALL tab_2d_1d( nbpb, fsbri_1d (1:nbpb), fsbri , jpi, jpj, npb(1:nbpb) ) 293 CALL tab_2d_1d( nbpb, fhbri_1d (1:nbpb), fhbri , jpi, jpj, npb(1:nbpb) ) 294 CALL tab_2d_1d( nbpb, fstbif_1d (1:nbpb), fstric , jpi, jpj, npb(1:nbpb) ) 295 CALL tab_2d_1d( nbpb, qfvbq_1d (1:nbpb), qfvbq , jpi, jpj, npb(1:nbpb) ) 280 CALL tab_2d_1d( nbpb, dqns_ice_1d(1:nbpb), dqns_ice(:,:,jl), jpi, jpj, npb(1:nbpb) ) 281 CALL tab_2d_1d( nbpb, t_bo_b (1:nbpb), t_bo , jpi, jpj, npb(1:nbpb) ) 282 CALL tab_2d_1d( nbpb, sprecip_1d (1:nbpb), sprecip , jpi, jpj, npb(1:nbpb) ) 283 CALL tab_2d_1d( nbpb, fbif_1d (1:nbpb), fbif , jpi, jpj, npb(1:nbpb) ) 284 CALL tab_2d_1d( nbpb, qldif_1d (1:nbpb), qldif , jpi, jpj, npb(1:nbpb) ) 285 CALL tab_2d_1d( nbpb, rdm_ice_1d (1:nbpb), rdm_ice , jpi, jpj, npb(1:nbpb) ) 286 CALL tab_2d_1d( nbpb, rdm_snw_1d (1:nbpb), rdm_snw , jpi, jpj, npb(1:nbpb) ) 287 CALL tab_2d_1d( nbpb, dmgwi_1d (1:nbpb), dmgwi , jpi, jpj, npb(1:nbpb) ) 288 CALL tab_2d_1d( nbpb, qlbbq_1d (1:nbpb), zqlbsbq , jpi, jpj, npb(1:nbpb) ) 289 290 CALL tab_2d_1d( nbpb, sfx_thd_1d (1:nbpb), sfx_thd , jpi, jpj, npb(1:nbpb) ) 291 CALL tab_2d_1d( nbpb, sfx_bri_1d (1:nbpb), sfx_bri , jpi, jpj, npb(1:nbpb) ) 292 CALL tab_2d_1d( nbpb, fhbri_1d (1:nbpb), fhbri , jpi, jpj, npb(1:nbpb) ) 293 CALL tab_2d_1d( nbpb, fstbif_1d (1:nbpb), fstric , jpi, jpj, npb(1:nbpb) ) 294 CALL tab_2d_1d( nbpb, qfvbq_1d (1:nbpb), qfvbq , jpi, jpj, npb(1:nbpb) ) 296 295 297 296 !-------------------------------- … … 331 330 !-------------------------------- 332 331 333 CALL tab_1d_2d( nbpb, at_i , npb, at_i_b(1:nbpb), jpi, jpj ) 334 CALL tab_1d_2d( nbpb, ht_i(:,:,jl), npb, ht_i_b(1:nbpb), jpi, jpj ) 335 CALL tab_1d_2d( nbpb, ht_s(:,:,jl), npb, ht_s_b(1:nbpb), jpi, jpj ) 336 CALL tab_1d_2d( nbpb, a_i (:,:,jl), npb, a_i_b(1:nbpb) , jpi, jpj ) 337 CALL tab_1d_2d( nbpb, t_su(:,:,jl), npb, t_su_b(1:nbpb), jpi, jpj ) 338 CALL tab_1d_2d( nbpb, sm_i(:,:,jl), npb, sm_i_b(1:nbpb), jpi, jpj ) 339 332 CALL tab_1d_2d( nbpb, at_i , npb, at_i_b (1:nbpb) , jpi, jpj ) 333 CALL tab_1d_2d( nbpb, ht_i(:,:,jl) , npb, ht_i_b (1:nbpb) , jpi, jpj ) 334 CALL tab_1d_2d( nbpb, ht_s(:,:,jl) , npb, ht_s_b (1:nbpb) , jpi, jpj ) 335 CALL tab_1d_2d( nbpb, a_i (:,:,jl) , npb, a_i_b (1:nbpb) , jpi, jpj ) 336 CALL tab_1d_2d( nbpb, t_su(:,:,jl) , npb, t_su_b (1:nbpb) , jpi, jpj ) 337 CALL tab_1d_2d( nbpb, sm_i(:,:,jl) , npb, sm_i_b (1:nbpb) , jpi, jpj ) 340 338 DO jk = 1, nlay_s 341 CALL tab_1d_2d( nbpb, t_s(:,:,jk,jl), npb, t_s_b (1:nbpb,jk), jpi, jpj)342 CALL tab_1d_2d( nbpb, e_s(:,:,jk,jl), npb, q_s_b (1:nbpb,jk), jpi, jpj)339 CALL tab_1d_2d( nbpb, t_s(:,:,jk,jl), npb, t_s_b (1:nbpb,jk), jpi, jpj) 340 CALL tab_1d_2d( nbpb, e_s(:,:,jk,jl), npb, q_s_b (1:nbpb,jk), jpi, jpj) 343 341 END DO 344 345 342 DO jk = 1, nlay_i 346 CALL tab_1d_2d( nbpb, t_i(:,:,jk,jl), npb, t_i_b (1:nbpb,jk), jpi, jpj)347 CALL tab_1d_2d( nbpb, e_i(:,:,jk,jl), npb, q_i_b (1:nbpb,jk), jpi, jpj)348 CALL tab_1d_2d( nbpb, s_i(:,:,jk,jl), npb, s_i_b (1:nbpb,jk), jpi, jpj)343 CALL tab_1d_2d( nbpb, t_i(:,:,jk,jl), npb, t_i_b (1:nbpb,jk), jpi, jpj) 344 CALL tab_1d_2d( nbpb, e_i(:,:,jk,jl), npb, q_i_b (1:nbpb,jk), jpi, jpj) 345 CALL tab_1d_2d( nbpb, s_i(:,:,jk,jl), npb, s_i_b (1:nbpb,jk), jpi, jpj) 349 346 END DO 350 351 CALL tab_1d_2d( nbpb, fstric , npb, fstbif_1d (1:nbpb), jpi, jpj ) 352 CALL tab_1d_2d( nbpb, qldif , npb, qldif_1d (1:nbpb), jpi, jpj ) 353 CALL tab_1d_2d( nbpb, qfvbq , npb, qfvbq_1d (1:nbpb), jpi, jpj ) 354 CALL tab_1d_2d( nbpb, rdm_ice, npb, rdm_ice_1d(1:nbpb), jpi, jpj ) 355 CALL tab_1d_2d( nbpb, rdm_snw, npb, rdm_snw_1d(1:nbpb), jpi, jpj ) 356 CALL tab_1d_2d( nbpb, dmgwi , npb, dmgwi_1d (1:nbpb), jpi, jpj ) 357 CALL tab_1d_2d( nbpb, rdvosif, npb, dvsbq_1d (1:nbpb), jpi, jpj ) 358 CALL tab_1d_2d( nbpb, rdvobif, npb, dvbbq_1d (1:nbpb), jpi, jpj ) 359 CALL tab_1d_2d( nbpb, fdvolif, npb, dvlbq_1d (1:nbpb), jpi, jpj ) 360 CALL tab_1d_2d( nbpb, rdvonif, npb, dvnbq_1d (1:nbpb), jpi, jpj ) 361 CALL tab_1d_2d( nbpb, fseqv , npb, fseqv_1d (1:nbpb), jpi, jpj ) 347 CALL tab_1d_2d( nbpb, fstric , npb, fstbif_1d (1:nbpb) , jpi, jpj ) 348 CALL tab_1d_2d( nbpb, qldif , npb, qldif_1d (1:nbpb) , jpi, jpj ) 349 CALL tab_1d_2d( nbpb, qfvbq , npb, qfvbq_1d (1:nbpb) , jpi, jpj ) 350 CALL tab_1d_2d( nbpb, rdm_ice , npb, rdm_ice_1d(1:nbpb) , jpi, jpj ) 351 CALL tab_1d_2d( nbpb, rdm_snw , npb, rdm_snw_1d(1:nbpb) , jpi, jpj ) 352 CALL tab_1d_2d( nbpb, dmgwi , npb, dmgwi_1d (1:nbpb) , jpi, jpj ) 353 CALL tab_1d_2d( nbpb, rdvosif , npb, dvsbq_1d (1:nbpb) , jpi, jpj ) 354 CALL tab_1d_2d( nbpb, rdvobif , npb, dvbbq_1d (1:nbpb) , jpi, jpj ) 355 CALL tab_1d_2d( nbpb, fdvolif , npb, dvlbq_1d (1:nbpb) , jpi, jpj ) 356 CALL tab_1d_2d( nbpb, rdvonif , npb, dvnbq_1d (1:nbpb) , jpi, jpj ) 357 CALL tab_1d_2d( nbpb, sfx_thd , npb, sfx_thd_1d(1:nbpb) , jpi, jpj ) 362 358 ! 363 359 IF( num_sal == 2 ) THEN 364 CALL tab_1d_2d( nbpb, fsbri, npb, fsbri_1d(1:nbpb), jpi, jpj )365 CALL tab_1d_2d( nbpb, fhbri , npb, fhbri_1d(1:nbpb), jpi, jpj )360 CALL tab_1d_2d( nbpb, sfx_bri , npb, sfx_bri_1d(1:nbpb) , jpi, jpj ) 361 CALL tab_1d_2d( nbpb, fhbri , npb, fhbri_1d (1:nbpb) , jpi, jpj ) 366 362 ENDIF 367 363 ! 368 !+++++ 369 !temporary stuff for a dummy version 364 !+++++ temporary stuff for a dummy version 370 365 CALL tab_1d_2d( nbpb, dh_i_surf2D, npb, dh_i_surf(1:nbpb) , jpi, jpj ) 371 366 CALL tab_1d_2d( nbpb, dh_i_bott2D, npb, dh_i_bott(1:nbpb) , jpi, jpj ) … … 389 384 ! 5.1) Ice heat content 390 385 !------------------------ 391 ! Enthalpies are global variables we have to readjust the units 386 ! Enthalpies are global variables we have to readjust the units (heat content in 10^9 Joules) 392 387 zcoef = 1._wp / ( unit_fac * REAL( nlay_i ) ) 393 388 DO jl = 1, jpl 394 389 DO jk = 1, nlay_i 395 ! Multiply by volume, divide by nlayers so that heat content in 10^9 Joules396 390 e_i(:,:,jk,jl) = e_i(:,:,jk,jl) * area(:,:) * a_i(:,:,jl) * ht_i(:,:,jl) * zcoef 397 391 END DO … … 401 395 ! 5.2) Snow heat content 402 396 !------------------------ 403 ! Enthalpies are global variables we have to readjust the units 397 ! Enthalpies are global variables we have to readjust the units (heat content in 10^9 Joules) 404 398 zcoef = 1._wp / ( unit_fac * REAL( nlay_s ) ) 405 399 DO jl = 1, jpl 406 400 DO jk = 1, nlay_s 407 ! Multiply by volume, so that heat content in 10^9 Joules408 401 e_s(:,:,jk,jl) = e_s(:,:,jk,jl) * area(:,:) * a_i(:,:,jl) * ht_s(:,:,jl) * zcoef 409 402 END DO -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limthd_dh.F90
r3523 r3524 14 14 !! 'key_lim3' LIM3 sea-ice model 15 15 !!---------------------------------------------------------------------- 16 !! lim_thd_dh : vertical accr./abl. and lateral ablation of sea ice 17 !!---------------------------------------------------------------------- 18 USE par_oce ! ocean parameters 19 USE phycst ! physical constants (OCE directory) 20 USE sbc_oce ! Surface boundary condition: ocean fields 21 USE ice ! LIM variables 22 USE par_ice ! LIM parameters 23 USE thd_ice ! LIM thermodynamics 24 USE in_out_manager ! I/O manager 25 USE lib_mpp ! MPP library 26 USE wrk_nemo ! work arrays 16 !! lim_thd_dh : vertical accr./abl. and lateral ablation of sea ice 17 !!---------------------------------------------------------------------- 18 USE par_oce ! ocean parameters 19 USE phycst ! physical constants (OCE directory) 20 USE sbc_oce ! Surface boundary condition: ocean fields 21 USE ice ! LIM variables 22 USE par_ice ! LIM parameters 23 USE thd_ice ! LIM thermodynamics 24 USE in_out_manager ! I/O manager 25 USE lib_mpp ! MPP library 26 USE wrk_nemo ! work arrays 27 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 27 28 28 29 IMPLICIT NONE … … 38 39 39 40 !!---------------------------------------------------------------------- 40 !! NEMO/LIM3 4.0 , UCL - NEMO Consortium (2010)41 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2011) 41 42 !! $Id$ 42 43 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) … … 103 104 REAL(wp), POINTER, DIMENSION(:) :: zfmass_i ! 104 105 105 REAL(wp), POINTER, DIMENSION(:) :: zdh_s_mel 106 REAL(wp), POINTER, DIMENSION(:) :: zdh_s_pre 107 REAL(wp), POINTER, DIMENSION(:) :: zdh_s_sub 108 REAL(wp), POINTER, DIMENSION(:) :: z fsalt_melt ! salt flux due to ice melt106 REAL(wp), POINTER, DIMENSION(:) :: zdh_s_mel ! snow melt 107 REAL(wp), POINTER, DIMENSION(:) :: zdh_s_pre ! snow precipitation 108 REAL(wp), POINTER, DIMENSION(:) :: zdh_s_sub ! snow sublimation 109 REAL(wp), POINTER, DIMENSION(:) :: zsfx_melt ! salt flux due to ice melt 109 110 110 111 REAL(wp), POINTER, DIMENSION(:,:) :: zdeltah … … 127 128 128 129 CALL wrk_alloc( jpij, zh_i, zh_s, ztfs, zhsold, zqprec, zqfont_su, zqfont_bo, z_f_surf, zhgnew, zfmass_i ) 129 CALL wrk_alloc( jpij, zdh_s_mel, zdh_s_pre, zdh_s_sub, z fsalt_melt, zfdt_init, zfdt_final, zqt_i, zqt_s, zqt_dummy )130 CALL wrk_alloc( jpij, zdh_s_mel, zdh_s_pre, zdh_s_sub, zsfx_melt, zfdt_init, zfdt_final, zqt_i, zqt_s, zqt_dummy ) 130 131 CALL wrk_alloc( jpij, zinnermelt, zfbase, zdq_i ) 131 132 CALL wrk_alloc( jpij, jkmax, zdeltah, zqt_i_lay ) 132 133 133 z fsalt_melt(:)= 0._wp134 ftotal_fin(:) 135 zfdt_init (:)= 0._wp136 zfdt_final(:) 134 zsfx_melt (:) = 0._wp 135 ftotal_fin(:) = 0._wp 136 zfdt_init (:) = 0._wp 137 zfdt_final(:) = 0._wp 137 138 138 139 DO ji = kideb, kiut … … 272 273 ! 273 274 ! ! contribution to ice-ocean salt flux 274 z fsalt_melt(ji) = zfsalt_melt(ji) - sm_i_b(ji) * a_i_b(ji) * MIN( zdeltah(ji,jk) , 0._wp ) * rhoic * r1_rdtice275 zsfx_melt(ji) = zsfx_melt(ji) - sm_i_b(ji) * a_i_b(ji) * MIN( zdeltah(ji,jk) , 0._wp ) * rhoic * r1_rdtice 275 276 END DO 276 277 END DO … … 472 473 ENDIF 473 474 ! contribution to salt flux 474 z fsalt_melt(ji) = zfsalt_melt(ji) - sm_i_b(ji) * a_i_b(ji) * MIN( zdeltah(ji,jk) , 0._wp ) * rhoic * r1_rdtice475 zsfx_melt(ji) = zsfx_melt(ji) - sm_i_b(ji) * a_i_b(ji) * MIN( zdeltah(ji,jk) , 0._wp ) * rhoic * r1_rdtice 475 476 ENDIF 476 477 END DO ! ji … … 592 593 ! 593 594 ! Salt flux 594 fseqv_1d(ji) = fseqv_1d(ji) + zihgnew * zfsalt_melt(ji)&595 & - (1.0 - zihgnew) * zfmass_i(ji) * sm_i_b(ji) ) * r1_rdtice595 sfx_thd_1d(ji) = sfx_thd_1d(ji) + zihgnew * zsfx_melt(ji) & 596 & - (1.0 - zihgnew) * zfmass_i (ji) * sm_i_b(ji) ) * r1_rdtice 596 597 ! 597 598 ! Heat flux … … 653 654 ELSE ; zsm_snowice = sm_i_b(ji) 654 655 ENDIF 655 fseqv_1d(ji) = fseqv_1d(ji) - zsm_snowice* a_i_b(ji) * dh_snowice(ji) * rhoic * r1_rdtice656 sfx_thd_1d(ji) = sfx_thd_1d(ji) - zsm_snowice * a_i_b(ji) * dh_snowice(ji) * rhoic * r1_rdtice 656 657 ! 657 658 ! entrapment during snow ice formation … … 678 679 ! 679 680 CALL wrk_dealloc( jpij, zh_i, zh_s, ztfs, zhsold, zqprec, zqfont_su, zqfont_bo, z_f_surf, zhgnew, zfmass_i ) 680 CALL wrk_dealloc( jpij, zdh_s_mel, zdh_s_pre, zdh_s_sub, z fsalt_melt, zfdt_init, zfdt_final, zqt_i, zqt_s, zqt_dummy )681 CALL wrk_dealloc( jpij, zdh_s_mel, zdh_s_pre, zdh_s_sub, zsfx_melt, zfdt_init, zfdt_final, zqt_i, zqt_s, zqt_dummy ) 681 682 CALL wrk_dealloc( jpij, zinnermelt, zfbase, zdq_i ) 682 683 CALL wrk_dealloc( jpij, jkmax, zdeltah, zqt_i_lay ) -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limthd_dif.F90
r3517 r3524 15 15 !! 'key_lim3' LIM3 sea-ice model 16 16 !!---------------------------------------------------------------------- 17 USE par_oce ! ocean parameters 18 USE phycst ! physical constants (ocean directory) 19 USE ice ! LIM-3 variables 20 USE par_ice ! LIM-3 parameters 21 USE thd_ice ! LIM-3: thermodynamics 22 USE in_out_manager ! I/O manager 23 USE lib_mpp ! MPP library 24 USE wrk_nemo ! work arrays 17 USE par_oce ! ocean parameters 18 USE phycst ! physical constants (ocean directory) 19 USE ice ! LIM-3 variables 20 USE par_ice ! LIM-3 parameters 21 USE thd_ice ! LIM-3: thermodynamics 22 USE in_out_manager ! I/O manager 23 USE lib_mpp ! MPP library 24 USE wrk_nemo ! work arrays 25 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 25 26 26 27 IMPLICIT NONE … … 33 34 34 35 !!---------------------------------------------------------------------- 35 !! NEMO/LIM3 4.0, UCL - NEMO Consortium (2011)36 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2011) 36 37 !! $Id$ 37 38 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limthd_ent.F90
r3517 r3524 16 16 !! 'key_lim3' LIM3 sea-ice model 17 17 !!---------------------------------------------------------------------- 18 !! lim_thd_ent : ice redistribution of enthalpy18 !! lim_thd_ent : ice redistribution of enthalpy 19 19 !!---------------------------------------------------------------------- 20 USE par_oce ! ocean parameters 21 USE dom_oce ! domain variables 22 USE domain ! 23 USE phycst ! physical constants 24 USE ice ! LIM variables 25 USE par_ice ! LIM parameters 26 USE thd_ice ! LIM thermodynamics 27 USE limvar ! LIM variables 28 USE in_out_manager ! I/O manager 29 USE lib_mpp ! MPP library 30 USE wrk_nemo ! work arrays 20 USE par_oce ! ocean parameters 21 USE dom_oce ! domain variables 22 USE domain ! 23 USE phycst ! physical constants 24 USE ice ! LIM variables 25 USE par_ice ! LIM parameters 26 USE thd_ice ! LIM thermodynamics 27 USE limvar ! LIM variables 28 USE in_out_manager ! I/O manager 29 USE lib_mpp ! MPP library 30 USE wrk_nemo ! work arrays 31 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 31 32 32 33 IMPLICIT NONE … … 43 44 44 45 !!---------------------------------------------------------------------- 45 !! NEMO/LIM3 4.0, UCL - NEMO Consortium (2011)46 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2011) 46 47 !! $Id$ 47 48 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limthd_lac.F90
r3523 r3524 13 13 !! 'key_lim3' LIM3 sea-ice model 14 14 !!---------------------------------------------------------------------- 15 !! lim_lat_acr : lateral accretion of ice 16 !!---------------------------------------------------------------------- 17 USE par_oce ! ocean parameters 18 USE dom_oce ! domain variables 19 USE phycst ! physical constants 20 USE sbc_oce ! Surface boundary condition: ocean fields 21 USE sbc_ice ! Surface boundary condition: ice fields 22 USE thd_ice ! LIM thermodynamics 23 USE dom_ice ! LIM domain 24 USE par_ice ! LIM parameters 25 USE ice ! LIM variables 26 USE limtab ! LIM 2D <==> 1D 27 USE limcons ! LIM conservation 28 USE in_out_manager ! I/O manager 29 USE lib_mpp ! MPP library 30 USE wrk_nemo ! work arrays 15 !! lim_lat_acr : lateral accretion of ice 16 !!---------------------------------------------------------------------- 17 USE par_oce ! ocean parameters 18 USE dom_oce ! domain variables 19 USE phycst ! physical constants 20 USE sbc_oce ! Surface boundary condition: ocean fields 21 USE sbc_ice ! Surface boundary condition: ice fields 22 USE thd_ice ! LIM thermodynamics 23 USE dom_ice ! LIM domain 24 USE par_ice ! LIM parameters 25 USE ice ! LIM variables 26 USE limtab ! LIM 2D <==> 1D 27 USE limcons ! LIM conservation 28 USE in_out_manager ! I/O manager 29 USE lib_mpp ! MPP library 30 USE wrk_nemo ! work arrays 31 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 31 32 32 33 IMPLICIT NONE … … 45 46 46 47 !!---------------------------------------------------------------------- 47 !! NEMO/LIM3 4.0, UCL - NEMO Consortium (2011)48 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2011) 48 49 !! $Id$ 49 50 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) … … 77 78 !! update ht_s_b, ht_i_b and tbif_1d(:,:) 78 79 !!------------------------------------------------------------------------ 79 INTEGER :: ji,jj,jk,jl,jm ! dummy loop indices80 INTEGER :: layer, nbpac ! local integers81 INTEGER :: zji, zjj, iter ! - -82 REAL(wp) :: ztmelts, zdv, zqold, zfrazb, zweight, zalphai, zindb, zde! local scalars80 INTEGER :: ji,jj,jk,jl,jm ! dummy loop indices 81 INTEGER :: layer, nbpac ! local integers 82 INTEGER :: zji, zjj, iter ! - - 83 REAL(wp) :: ztmelts, zdv, zqold, zfrazb, zweight, zalphai, zindb, zde ! local scalars 83 84 REAL(wp) :: zgamafr, zvfrx, zvgx, ztaux, ztwogp, zf , zhicol_new ! - - 84 85 REAL(wp) :: ztenagm, zvfry, zvgy, ztauy, zvrel2, zfp, zsqcd , zhicrit ! - - 86 REAL(wp) :: zcoef ! - - 85 87 LOGICAL :: iterate_frazil ! iterate frazil ice collection thickness 86 88 CHARACTER (len = 15) :: fieldid … … 205 207 !------------- 206 208 ! C-grid wind stress components 207 ztaux = ( utau_ice(ji-1,jj ) * tmu(ji-1,jj ) &208 & + utau_ice(ji ,jj ) * tmu(ji ,jj ) ) / 2.0209 ztauy = ( vtau_ice(ji ,jj-1) * tmv(ji ,jj-1) &210 & + vtau_ice(ji ,jj ) * tmv(ji ,jj ) ) / 2.0209 ztaux = ( utau_ice(ji-1,jj ) * tmu(ji-1,jj ) & 210 & + utau_ice(ji ,jj ) * tmu(ji ,jj ) ) * 0.5_wp 211 ztauy = ( vtau_ice(ji ,jj-1) * tmv(ji ,jj-1) & 212 & + vtau_ice(ji ,jj ) * tmv(ji ,jj ) ) * 0.5_wp 211 213 ! Square root of wind stress 212 214 ztenagm = SQRT( SQRT( ztaux * ztaux + ztauy * ztauy ) ) … … 222 224 !------------------- 223 225 ! C-grid ice velocity 224 zindb = MAX( 0.0, SIGN(1.0, at_i(ji,jj) ))225 zvgx = zindb * ( u_ice(ji-1,jj ) * tmu(ji-1,jj )&226 + u_ice(ji,jj ) * tmu(ji ,jj ) ) / 2.0227 zvgy = zindb * ( v_ice(ji ,jj-1) * tmv(ji ,jj-1)&228 + v_ice(ji,jj ) * tmv(ji ,jj ) ) / 2.0226 zindb = MAX( 0._wp, SIGN( 1._wp , at_i(ji,jj) ) ) 227 zvgx = zindb * ( u_ice(ji-1,jj ) * tmu(ji-1,jj ) & 228 & + u_ice(ji,jj ) * tmu(ji ,jj ) ) * 0.5_wp 229 zvgy = zindb * ( v_ice(ji ,jj-1) * tmv(ji ,jj-1) & 230 & + v_ice(ji,jj ) * tmv(ji ,jj ) ) * 0.5_wp 229 231 230 232 !----------------------------------- … … 232 234 !----------------------------------- 233 235 ! absolute relative velocity 234 zvrel2 = MAX( ( zvfrx - zvgx ) * ( zvfrx - zvgx ) + & 235 ( zvfry - zvgy ) * ( zvfry - zvgy ) & 236 , 0.15 * 0.15 ) 237 zvrel(ji,jj) = SQRT(zvrel2) 236 zvrel2 = MAX( ( zvfrx - zvgx ) * ( zvfrx - zvgx ) & 237 & + ( zvfry - zvgy ) * ( zvfry - zvgy ) , 0.15 * 0.15 ) 238 zvrel(ji,jj) = SQRT( zvrel2 ) 238 239 239 240 !--------------------- … … 241 242 !--------------------- 242 243 hicol(ji,jj) = zhicrit + 0.1 243 hicol(ji,jj) = zhicrit + hicol(ji,jj) / & 244 ( hicol(ji,jj) * hicol(ji,jj) - & 245 zhicrit * zhicrit ) * ztwogp * zvrel2 244 hicol(ji,jj) = zhicrit + hicol(ji,jj) & 245 & / ( hicol(ji,jj) * hicol(ji,jj) - zhicrit * zhicrit ) * ztwogp * zvrel2 246 247 !!gm better coding: above: hicol(ji,jj) * hicol(ji,jj) = (zhicrit + 0.1)*(zhicrit + 0.1) 248 !!gm = zhicrit**2 + 0.2*zhicrit +0.01 249 !!gm therefore the 2 lines with hicol can be replaced by 1 line: 250 !!gm hicol(ji,jj) = zhicrit + (zhicrit + 0.1) / ( 0.2 * zhicrit + 0.01 ) * ztwogp * zvrel2 251 !!gm further more (zhicrit + 0.1)/(0.2 * zhicrit + 0.01 )*ztwogp can be computed one for all outside the DO loop 246 252 247 253 iter = 1 … … 278 284 DO jj = 1, jpj 279 285 DO ji = 1, jpi 280 IF ( tms(ji,jj) * ( qcmif(ji,jj) - qldif(ji,jj) ) > 0.e0) THEN286 IF ( tms(ji,jj) * ( qcmif(ji,jj) - qldif(ji,jj) ) > 0._wp ) THEN 281 287 nbpac = nbpac + 1 282 288 npac( nbpac ) = (jj - 1) * jpi + ji 283 IF ( (ji.eq.jiindx).AND.(jj.eq.jjindx) ) THEN 284 jiindex_1d = nbpac 285 ENDIF 289 IF( ji == jiindx .AND. jj == jjindx ) jiindex_1d = nbpac 286 290 ENDIF 287 291 END DO 288 292 END DO 289 293 290 IF( ln_nicep ) THEN 291 WRITE(numout,*) 'lim_thd_lac : nbpac = ', nbpac 292 ENDIF 294 IF( ln_nicep ) WRITE(numout,*) 'lim_thd_lac : nbpac = ', nbpac 293 295 294 296 !------------------------------ … … 302 304 CALL tab_2d_1d( nbpac, zat_i_ac (1:nbpac) , at_i , jpi, jpj, npac(1:nbpac) ) 303 305 DO jl = 1, jpl 304 CALL tab_2d_1d( nbpac, za_i_ac (1:nbpac,jl) , a_i(:,:,jl), jpi, jpj, npac(1:nbpac) )305 CALL tab_2d_1d( nbpac, zv_i_ac (1:nbpac,jl) , v_i(:,:,jl), jpi, jpj, npac(1:nbpac) )306 CALL tab_2d_1d( nbpac, zoa_i_ac (1:nbpac,jl) , oa_i(:,:,jl), jpi, jpj, npac(1:nbpac) )306 CALL tab_2d_1d( nbpac, za_i_ac (1:nbpac,jl), a_i (:,:,jl), jpi, jpj, npac(1:nbpac) ) 307 CALL tab_2d_1d( nbpac, zv_i_ac (1:nbpac,jl), v_i (:,:,jl), jpi, jpj, npac(1:nbpac) ) 308 CALL tab_2d_1d( nbpac, zoa_i_ac (1:nbpac,jl), oa_i (:,:,jl), jpi, jpj, npac(1:nbpac) ) 307 309 CALL tab_2d_1d( nbpac, zsmv_i_ac(1:nbpac,jl), smv_i(:,:,jl), jpi, jpj, npac(1:nbpac) ) 308 310 DO jk = 1, nlay_i … … 311 313 END DO ! jl 312 314 313 CALL tab_2d_1d( nbpac, qldif_1d (1:nbpac) , qldif , jpi, jpj, npac(1:nbpac) )314 CALL tab_2d_1d( nbpac, qcmif_1d (1:nbpac) , qcmif , jpi, jpj, npac(1:nbpac) )315 CALL tab_2d_1d( nbpac, t_bo_b (1:nbpac) , t_bo , jpi, jpj, npac(1:nbpac) )316 CALL tab_2d_1d( nbpac, fseqv_1d (1:nbpac) , fseqv, jpi, jpj, npac(1:nbpac) )315 CALL tab_2d_1d( nbpac, qldif_1d (1:nbpac) , qldif , jpi, jpj, npac(1:nbpac) ) 316 CALL tab_2d_1d( nbpac, qcmif_1d (1:nbpac) , qcmif , jpi, jpj, npac(1:nbpac) ) 317 CALL tab_2d_1d( nbpac, t_bo_b (1:nbpac) , t_bo , jpi, jpj, npac(1:nbpac) ) 318 CALL tab_2d_1d( nbpac, sfx_thd_1d(1:nbpac) , sfx_thd, jpi, jpj, npac(1:nbpac) ) 317 319 CALL tab_2d_1d( nbpac, rdm_ice_1d(1:nbpac) , rdm_ice, jpi, jpj, npac(1:nbpac) ) 318 CALL tab_2d_1d( nbpac, hicol_b (1:nbpac) , hicol , jpi, jpj, npac(1:nbpac) )319 CALL tab_2d_1d( nbpac, zvrel_ac (1:nbpac) , zvrel , jpi, jpj, npac(1:nbpac) )320 CALL tab_2d_1d( nbpac, hicol_b (1:nbpac) , hicol , jpi, jpj, npac(1:nbpac) ) 321 CALL tab_2d_1d( nbpac, zvrel_ac (1:nbpac) , zvrel , jpi, jpj, npac(1:nbpac) ) 320 322 321 323 !------------------------------------------------------------------------------! … … 392 394 ! note that for constant salinity zs_newice() = bulk_sal (see top of the subroutine) 393 395 DO ji = 1, nbpac 394 fseqv_1d (ji) = fseqv_1d(ji) - zs_newice(ji) * rhoic * zv_newice(ji) * r1_rdtice396 sfx_thd_1d(ji) = sfx_thd_1d(ji) - zs_newice(ji) * rhoic * zv_newice(ji) * r1_rdtice 395 397 rdm_ice_1d(ji) = rdm_ice_1d(ji) + rhoic * zv_newice(ji) 396 398 END DO ! ji … … 400 402 !------------------------------------ 401 403 DO ji = 1, nbpac 402 ! Volume403 zj i = MOD( npac(ji) - 1, jpi )+ 1404 zjj = ( npac(ji) - 1 ) / jpi + 1405 vt_i_init(zji,zjj) = vt_i_init(zji,zjj) +zv_newice(ji)406 ! Energy407 zde = ze_newice(ji) / unit_fac408 zde = zde * area(zji,zjj) * zv_newice(ji)409 et_i_init(zji,zjj) = et_i_init(zji,zjj) + zde 404 zji = MOD( npac(ji) - 1 , jpi ) + 1 405 zjj = ( npac(ji) - 1 ) / jpi + 1 406 ! 407 zde = ze_newice(ji) / unit_fac * area(zji,zjj) * zv_newice(ji) 408 ! 409 vt_i_init(zji,zjj) = vt_i_init(zji,zjj) + zv_newice(ji) ! volume 410 et_i_init(zji,zjj) = et_i_init(zji,zjj) + zde ! Energy 411 410 412 END DO 411 413 … … 417 419 !----------------- 418 420 DO ji = 1, nbpac 419 za_newice(ji) = zv_newice(ji) / zh_newice(ji) 420 ! diagnostic 421 zji = MOD( npac(ji) - 1, jpi ) + 1 422 zjj = ( npac(ji) - 1 ) / jpi + 1 421 zji = MOD( npac(ji) - 1 , jpi ) + 1 422 zjj = ( npac(ji) - 1 ) / jpi + 1 423 za_newice(ji) = zv_newice(ji) / zh_newice(ji) 423 424 diag_lat_gr(zji,zjj) = zv_newice(ji) * r1_rdtice 424 425 END DO !ji … … 438 439 !------------------------------------------- 439 440 ! If lateral ice growth gives an ice concentration gt 1, then 440 ! we keep the excessive volume in memory and attribute it later 441 ! to bottom accretion 442 DO ji = 1, nbpac 443 ! vectorize 444 IF ( za_newice(ji) .GT. ( 1.0 - zat_i_ac(ji) ) ) THEN 445 zda_res(ji) = za_newice(ji) - (1.0 - zat_i_ac(ji) ) 446 zdv_res(ji) = zda_res(ji) * zh_newice(ji) 447 za_newice(ji) = za_newice(ji) - zda_res(ji) 448 zv_newice(ji) = zv_newice(ji) - zdv_res(ji) 441 ! we keep the excessive volume in memory and attribute it later to bottom accretion 442 DO ji = 1, nbpac 443 IF ( za_newice(ji) > ( 1._wp - zat_i_ac(ji) ) ) THEN 444 zda_res(ji) = za_newice(ji) - (1.0 - zat_i_ac(ji) ) 445 zdv_res(ji) = zda_res (ji) * zh_newice(ji) 446 za_newice(ji) = za_newice(ji) - zda_res (ji) 447 zv_newice(ji) = zv_newice(ji) - zdv_res (ji) 449 448 ELSE 450 zda_res(ji) = 0. 0451 zdv_res(ji) = 0. 0449 zda_res(ji) = 0._wp 450 zdv_res(ji) = 0._wp 452 451 ENDIF 453 452 END DO ! ji … … 459 458 DO jl = 1, jpl 460 459 DO ji = 1, nbpac 461 IF( hi_max (jl-1) < zh_newice(ji) .AND. &462 & zh_newice(ji) <= hi_max (jl) ) THEN460 IF( hi_max (jl-1) < zh_newice(ji) .AND. & 461 & zh_newice(ji) <= hi_max (jl) ) THEN 463 462 za_i_ac (ji,jl) = za_i_ac (ji,jl) + za_newice(ji) 464 463 zv_i_ac (ji,jl) = zv_i_ac (ji,jl) + zv_newice(ji) … … 466 465 zcatac (ji) = jl 467 466 ENDIF 468 END DO ! ji469 END DO ! jl467 END DO 468 END DO 470 469 471 470 !---------------------------------- … … 483 482 DO ji = 1, nbpac 484 483 jl = zcatac(ji) 485 zqold = ze_i_ac(ji,jk,jl) ! [ J.m-3 ]484 zqold = ze_i_ac(ji,jk,jl) ! [ J.m-3 ] 486 485 zalphai = MIN( zhice_old(ji,jl) * jk / nlay_i , zh_newice(ji) ) & 487 486 & - MIN( zhice_old(ji,jl) * ( jk - 1 ) / nlay_i , zh_newice(ji) ) … … 489 488 + ( 1.0 - zswinew(ji) ) * ( za_old(ji,jl) * zqold * zhice_old(ji,jl) / nlay_i & 490 489 + za_newice(ji) * ze_newice(ji) * zalphai & 491 + za_newice(ji) * ze_newice(ji) * zdhex(ji) / nlay_i ) / ( ( zv_i_ac(ji,jl)) / nlay_i )490 + za_newice(ji) * ze_newice(ji) * zdhex(ji) / nlay_i ) / ( zv_i_ac(ji,jl) / nlay_i ) 492 491 END DO 493 492 END DO … … 529 528 zdhicbot (ji,jl) = zdv_res(ji) / MAX( za_i_ac(ji,jl) , epsi10 ) * zindb & 530 529 & + zindb * zdh_frazb(ji) ! frazil ice may coalesce 531 zdummy(ji,jl) = zv_i_ac(ji,jl) /MAX(za_i_ac(ji,jl),epsi10)*zindb ! thickness of residual ice530 zdummy(ji,jl) = zv_i_ac(ji,jl) / MAX( za_i_ac(ji,jl) , epsi10 ) * zindb ! thickness of residual ice 532 531 END DO 533 532 END DO … … 613 612 END DO 614 613 END DO 615 CALL tab_1d_2d( nbpac, fseqv , npac(1:nbpac), fseqv_1d(1:nbpac), jpi, jpj )614 CALL tab_1d_2d( nbpac, sfx_thd, npac(1:nbpac), sfx_thd_1d(1:nbpac), jpi, jpj ) 616 615 CALL tab_1d_2d( nbpac, rdm_ice, npac(1:nbpac), rdm_ice_1d(1:nbpac), jpi, jpj ) 617 616 ! … … 623 622 DO jl = 1, jpl 624 623 DO jk = 1, nlay_i ! heat content in 10^9 Joules 625 e_i(:,:,jk,jl) = e_i(:,:,jk,jl) * area(:,:) * v_i(:,:,jl) / nlay_i 624 e_i(:,:,jk,jl) = e_i(:,:,jk,jl) * area(:,:) * v_i(:,:,jl) / nlay_i / unit_fac 626 625 END DO 627 626 END DO -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limthd_sal.F90
r3523 r3524 12 12 !! 'key_lim3' LIM-3 sea-ice model 13 13 !!---------------------------------------------------------------------- 14 !! lim_thd_sal : salinity variations in the ice 15 !!---------------------------------------------------------------------- 16 USE par_oce ! ocean parameters 17 USE phycst ! physical constants (ocean directory) 18 USE sbc_oce ! Surface boundary condition: ocean fields 19 USE ice ! LIM variables 20 USE par_ice ! LIM parameters 21 USE thd_ice ! LIM thermodynamics 22 USE limvar ! LIM variables 23 USE in_out_manager ! I/O manager 24 USE lib_mpp ! MPP library 25 USE wrk_nemo ! work arrays 14 !! lim_thd_sal : salinity variations in the ice 15 !!---------------------------------------------------------------------- 16 USE par_oce ! ocean parameters 17 USE phycst ! physical constants (ocean directory) 18 USE sbc_oce ! Surface boundary condition: ocean fields 19 USE ice ! LIM variables 20 USE par_ice ! LIM parameters 21 USE thd_ice ! LIM thermodynamics 22 USE limvar ! LIM variables 23 USE in_out_manager ! I/O manager 24 USE lib_mpp ! MPP library 25 USE wrk_nemo ! work arrays 26 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 26 27 27 28 IMPLICIT NONE … … 32 33 33 34 !!---------------------------------------------------------------------- 34 !! NEMO/LIM3 4.0, UCL - NEMO Consortium (2011)35 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2011) 35 36 !! $Id$ 36 37 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) … … 149 150 DO ji = kideb, kiut 150 151 i_ice_switch = 1._wp - MAX( 0._wp, SIGN( 1._wp , - ht_i_b(ji) ) ) 151 fsbri_1d(ji) = fsbri_1d(ji) - i_ice_switch * rhoic * a_i_b(ji) * ht_i_b(ji) &152 & * ( MAX( dsm_i_gd_1d(ji) + dsm_i_fl_1d(ji) , sm_i_b(ji) - zsiold(ji) ) ) * r1_rdtice153 END DO ! ji152 sfx_bri_1d(ji) = sfx_bri_1d(ji) - i_ice_switch * rhoic * a_i_b(ji) * ht_i_b(ji) & 153 & * ( MAX( dsm_i_gd_1d(ji) + dsm_i_fl_1d(ji) , sm_i_b(ji) - zsiold(ji) ) ) * r1_rdtice 154 END DO 154 155 155 156 ! Only necessary for conservation check since salinity is modified … … 183 184 ! note: s_i_new = bulk_sal in constant salinity case 184 185 DO ji = kideb, kiut 185 fseqv_1d(ji) = fseqv_1d(ji) - s_i_new(ji) * rhoic * a_i_b(ji) * MAX( dh_i_bott(ji) , 0._wp ) * r1_rdtice186 sfx_thd_1d(ji) = sfx_thd_1d(ji) - s_i_new(ji) * rhoic * a_i_b(ji) * MAX( dh_i_bott(ji) , 0._wp ) * r1_rdtice 186 187 END DO 187 188 ! -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limtrp.F90
r3523 r3524 14 14 !! lim_trp : advection/diffusion process of sea ice 15 15 !!---------------------------------------------------------------------- 16 USE phycst ! physical constant 17 USE dom_oce ! ocean domain 18 USE sbc_oce ! ocean surface boundary condition 19 USE par_ice ! LIM-3 parameter 20 USE dom_ice ! LIM-3 domain 21 USE ice ! LIM-3 variables 22 USE limadv ! LIM-3 advection 23 USE limhdf ! LIM-3 horizontal diffusion 24 USE in_out_manager ! I/O manager 25 USE lbclnk ! lateral boundary conditions -- MPP exchanges 26 USE lib_mpp ! MPP library 27 USE wrk_nemo ! work arrays 28 USE prtctl ! Print control 16 USE phycst ! physical constant 17 USE dom_oce ! ocean domain 18 USE sbc_oce ! ocean surface boundary condition 19 USE par_ice ! ice parameter 20 USE dom_ice ! ice domain 21 USE ice ! ice variables 22 USE limadv ! ice advection 23 USE limhdf ! ice horizontal diffusion 24 USE in_out_manager ! I/O manager 25 USE lbclnk ! lateral boundary conditions -- MPP exchanges 26 USE lib_mpp ! MPP library 27 USE wrk_nemo ! work arrays 28 USE prtctl ! Print control 29 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 29 30 30 31 IMPLICIT NONE … … 45 46 # include "vectopt_loop_substitute.h90" 46 47 !!---------------------------------------------------------------------- 47 !! NEMO/LIM3 4.0, UCL - NEMO Consortium (2011)48 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2011) 48 49 !! $Id$ 49 50 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limupdate.F90
r3523 r3524 12 12 !! lim_update : computes update of sea-ice global variables from trend terms 13 13 !!---------------------------------------------------------------------- 14 USE limrhg ! ice rheology15 16 USE dom_oce17 USE oce ! dynamics and tracers variables18 USE in_out_manager19 USE sbc_oce ! Surface boundary condition: ocean fields20 USE sbc_ice ! Surface boundary condition: ice fields21 USE dom_ice22 USE phycst ! physical constants23 USE ice24 USE limdyn 25 USE limtrp 26 USE limthd 27 USE limsbc 28 USE limdia 29 USE limwri 30 USE limrst 31 USE thd_ice ! LIM thermodynamic sea-ice variables32 USE par_ice33 USE limitd_th34 USE limvar35 USE prtctl ! Print control36 USE lbclnk ! lateral boundary condition - MPP exchanges37 USE wrk_nemo ! work arrays14 USE dom_oce ! ocean domain 15 USE oce ! dynamics and tracers variables 16 USE sbc_oce ! Surface boundary condition: ocean fields 17 USE sbc_ice ! Surface boundary condition: ice fields 18 USE phycst ! physical constants 19 USE ice ! ice variables 20 USE par_ice ! ice parameters 21 USE thd_ice ! ice thermodynamic variables 22 USE dom_ice ! ice domain 23 USE limrhg ! ice rheology 24 USE limdyn ! ice dynamics 25 USE limtrp ! ice transport 26 USE limthd ! ice thermodynamics 27 USE limsbc ! ice-oce surface boundary conditions 28 USE limdia ! ice diagnostics 29 USE limwri ! ice outputs 30 USE limrst ! ice restart 31 USE limitd_th ! ice thickness distribution (thermodynamics) 32 USE limvar ! ice variables 33 USE prtctl ! Print control 34 USE in_out_manager ! I/O manager 35 USE lbclnk ! lateral boundary condition - MPP exchanges 36 USE wrk_nemo ! work arrays 37 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 38 38 39 39 IMPLICIT NONE … … 54 54 # include "vectopt_loop_substitute.h90" 55 55 !!---------------------------------------------------------------------- 56 !! NEMO/LIM3 4.0, UCL - NEMO Consortium (2011)56 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2011) 57 57 !! $Id$ 58 58 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) … … 201 201 202 202 !residual salt flux if ice is over-molten 203 fsalt_res(ji,jj) = fsalt_res(ji,jj) - sm_i(ji,jj,jl) * ( rhoic * zdvres * r1_rdtice )203 sfx_res(ji,jj) = sfx_res(ji,jj) - sm_i(ji,jj,jl) * ( rhoic * zdvres * r1_rdtice ) 204 204 ! fheat_res(ji,jj) = fheat_res(ji,jj) + rhoic * lfus * zdvres * r1_rdtice 205 205 … … 224 224 DO jj = 1, jpj 225 225 DO ji = 1, jpi 226 IF ( ABS(fsalt_res(ji,jj)) .GT. 1.0 ) THEN 227 WRITE(numout,*) ' ALERTE 1000 : residual salt flux of -> ', & 228 fsalt_res(ji,jj) 229 WRITE(numout,*) ' ji, jj : ', ji, jj, ' gphit, glamt : ', & 230 gphit(ji,jj), glamt(ji,jj) 226 IF( ABS( sfx_res(ji,jj) ) > 1._wp ) THEN 227 WRITE(numout,*) ' ALERTE 1000 : residual salt flux of -> ', sfx_res(ji,jj) 228 WRITE(numout,*) ' ji, jj : ', ji, jj, ' gphit, glamt : ', gphit(ji,jj), glamt(ji,jj) 231 229 ENDIF 232 230 END DO … … 1010 1008 CALL prt_ctl(tab2d_1=fmmec , clinfo1= ' lim_update : fmmec : ', tab2d_2=fhmec , clinfo2= ' fhmec : ') 1011 1009 CALL prt_ctl(tab2d_1=sst_m , clinfo1= ' lim_update : sst : ', tab2d_2=sss_m , clinfo2= ' sss : ') 1012 CALL prt_ctl(tab2d_1=fhbri , clinfo1= ' lim_update : fhbri : ', tab2d_2=fheat_ rpo , clinfo2= ' fheat_rpo: ')1010 CALL prt_ctl(tab2d_1=fhbri , clinfo1= ' lim_update : fhbri : ', tab2d_2=fheat_mec , clinfo2= ' fheat_mec : ') 1013 1011 1014 1012 CALL prt_ctl_info(' ') -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limvar.F90
r3517 r3524 43 43 !! lim_var_bv : 44 44 !!---------------------------------------------------------------------- 45 USE par_oce ! ocean parameters 46 USE phycst ! physical constants (ocean directory) 47 USE sbc_oce ! Surface boundary condition: ocean fields 48 USE ice ! LIM variables 49 USE par_ice ! LIM parameters 50 USE dom_ice ! LIM domain 51 USE thd_ice ! LIM thermodynamics 52 USE in_out_manager ! I/O manager 53 USE lib_mpp ! MPP library 54 USE wrk_nemo ! work arrays 45 USE par_oce ! ocean parameters 46 USE phycst ! physical constants (ocean directory) 47 USE sbc_oce ! Surface boundary condition: ocean fields 48 USE ice ! ice variables 49 USE par_ice ! ice parameters 50 USE thd_ice ! ice variables (thermodynamics) 51 USE dom_ice ! ice domain 52 USE in_out_manager ! I/O manager 53 USE lib_mpp ! MPP library 54 USE wrk_nemo ! work arrays 55 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 55 56 56 57 IMPLICIT NONE … … 73 74 74 75 !!---------------------------------------------------------------------- 75 !! NEMO/LIM3 4.0, UCL - NEMO Consortium (2011)76 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2011) 76 77 !! $Id$ 77 78 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90
r3294 r3524 25 25 USE wrk_nemo ! work arrays 26 26 USE par_ice 27 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 27 28 28 29 IMPLICIT NONE … … 51 52 REAL(wp) :: zone = 1._wp 52 53 !!---------------------------------------------------------------------- 53 !! NEMO/LIM3 4.0, UCL - NEMO Consortium (2011)54 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2011) 54 55 !! $Id$ 55 56 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) … … 245 246 zcmo(ji,jj,25) = et_i(ji,jj) 246 247 zcmo(ji,jj,26) = et_s(ji,jj) 247 zcmo(ji,jj,28) = fsbri(ji,jj)248 zcmo(ji,jj,29) = fseqv(ji,jj)248 zcmo(ji,jj,28) = sfx_bri(ji,jj) 249 zcmo(ji,jj,29) = sfx_thd(ji,jj) 249 250 250 251 zcmo(ji,jj,30) = bv_i(ji,jj) -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_3/thd_ice.F90
r3517 r3524 8 8 USE par_ice ! LIM-3 parameters 9 9 USE in_out_manager ! I/O manager 10 USE lib_mpp 10 USE lib_mpp ! MPP library 11 11 12 12 IMPLICIT NONE … … 83 83 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: i0 !: fraction of radiation transmitted to the ice 84 84 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: old_ht_i_b !: Ice thickness at the beginnning of the time step [m] 85 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::old_ht_s_b !: Snow thickness at the beginning of the time step [m]86 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: fsbri_1d !: Salt flux due to brine drainage85 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: old_ht_s_b !: Snow thickness at the beginning of the time step [m] 86 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: sfx_bri_1d !: <==> the 2D sfx_bri 87 87 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: fhbri_1d !: Heat flux due to brine drainage 88 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: fseqv_1d !: Equivalent Salt flux due to ice growth/decay88 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: sfx_thd_1d !: <==> the 2D sfx_thd 89 89 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: dsm_i_fl_1d !: Ice salinity variations due to flushing 90 90 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: dsm_i_gd_1d !: Ice salinity variations due to gravity drainage … … 138 138 139 139 !!---------------------------------------------------------------------- 140 !! NEMO/LIM3 4.0, UCL - NEMO Consortium (2011)140 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2011) 141 141 !! $Id$ 142 142 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) … … 166 166 & tatm_ice_1d(jpij) , fsup (jpij) , focea (jpij) , & 167 167 & i0 (jpij) , old_ht_i_b (jpij) , old_ht_s_b (jpij) , & 168 & fsbri_1d (jpij) , fhbri_1d (jpij) , fseqv_1d(jpij) , &168 & sfx_bri_1d (jpij) , fhbri_1d (jpij) , sfx_thd_1d (jpij) , & 169 169 & dsm_i_fl_1d(jpij) , dsm_i_gd_1d(jpij) , dsm_i_se_1d(jpij) , & 170 170 & dsm_i_si_1d(jpij) , hicol_b (jpij) , STAT=ierr(2) ) -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/OPA_SRC/LDF/ldfslp.F90
r3294 r3524 16 16 !! 'key_ldfslp' Rotation of lateral mixing tensor 17 17 !!---------------------------------------------------------------------- 18 !! ldf_slp_grif : calculates the triads of isoneutral slopes (Griffies operator)19 !! ldf_slp : calculates the slopes of neutral surface (Madec operator)20 !! ldf_slp_mxl : calculates the slopes at the base of the mixed layer (Madec operator)21 !! ldf_slp_init : initialization of the slopes computation18 !! ldf_slp_grif : calculates the triads of isoneutral slopes (Griffies operator) 19 !! ldf_slp : calculates the slopes of neutral surface (Madec operator) 20 !! ldf_slp_mxl : calculates the slopes at the base of the mixed layer (Madec operator) 21 !! ldf_slp_init : initialization of the slopes computation 22 22 !!---------------------------------------------------------------------- 23 USE oce ! ocean dynamics and tracers 24 USE dom_oce ! ocean space and time domain 25 USE ldftra_oce ! lateral diffusion: traceur 26 USE ldfdyn_oce ! lateral diffusion: dynamics 27 USE phycst ! physical constants 28 USE zdfmxl ! mixed layer depth 29 USE eosbn2 ! equation of states 30 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 31 USE in_out_manager ! I/O manager 32 USE prtctl ! Print control 33 USE wrk_nemo ! work arrays 34 USE timing ! Timing 23 USE oce ! ocean dynamics and tracers 24 USE dom_oce ! ocean space and time domain 25 USE ldftra_oce ! lateral diffusion: traceur 26 USE ldfdyn_oce ! lateral diffusion: dynamics 27 USE phycst ! physical constants 28 USE zdfmxl ! mixed layer depth 29 USE eosbn2 ! equation of states 30 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 31 USE in_out_manager ! I/O manager 32 USE prtctl ! Print control 33 USE wrk_nemo ! work arrays 34 USE timing ! Timing 35 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 35 36 36 37 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/OPA_SRC/SBC/albedo.F90
r3294 r3524 12 12 13 13 !!---------------------------------------------------------------------- 14 !! albedo_ice : albedo for ice (clear and overcast skies) 15 !! albedo_oce : albedo for ocean (clear and overcast skies) 16 !! albedo_init : initialisation of albedo computation 17 !!---------------------------------------------------------------------- 18 USE phycst ! physical constants 19 USE in_out_manager ! I/O manager 20 USE lib_mpp ! MPP library 21 USE wrk_nemo ! work arrays 14 !! albedo_ice : albedo for ice (clear and overcast skies) 15 !! albedo_oce : albedo for ocean (clear and overcast skies) 16 !! albedo_init : initialisation of albedo computation 17 !!---------------------------------------------------------------------- 18 USE phycst ! physical constants 19 USE in_out_manager ! I/O manager 20 USE lib_mpp ! MPP library 21 USE wrk_nemo ! work arrays 22 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 22 23 23 24 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_clio.F90
r3517 r3524 19 19 !! flx_blk_declin : solar declination 20 20 !!---------------------------------------------------------------------- 21 USE oce ! ocean dynamics and tracers 22 USE dom_oce ! ocean space and time domain 23 USE phycst ! physical constants 24 USE fldread ! read input fields 25 USE sbc_oce ! Surface boundary condition: ocean fields 26 USE iom ! I/O manager library 27 USE in_out_manager ! I/O manager 28 USE lib_mpp ! distribued memory computing library 29 USE wrk_nemo ! work arrays 30 USE timing ! Timing 31 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 21 USE oce ! ocean dynamics and tracers 22 USE dom_oce ! ocean space and time domain 23 USE phycst ! physical constants 24 USE fldread ! read input fields 25 USE sbc_oce ! Surface boundary condition: ocean fields 26 USE iom ! I/O manager library 27 USE in_out_manager ! I/O manager 28 USE lib_mpp ! distribued memory computing library 29 USE wrk_nemo ! work arrays 30 USE timing ! Timing 31 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 32 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 32 33 33 34 USE albedo -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_if.F90
r3402 r3524 5 5 !! covered area using ice-if model 6 6 !!====================================================================== 7 !! History : 3.0 7 !! History : 3.0 ! 2006-06 (G. Madec) Original code 8 8 !!---------------------------------------------------------------------- 9 9 10 10 !!---------------------------------------------------------------------- 11 !! sbc_ice_if 11 !! sbc_ice_if : update sbc in ice-covered area 12 12 !!---------------------------------------------------------------------- 13 USE oce 14 USE dom_oce 15 USE phycst 16 USE eosbn2 17 USE sbc_oce 13 USE oce ! ocean dynamics and tracers 14 USE dom_oce ! ocean space and time domain 15 USE phycst ! physical constants 16 USE eosbn2 ! equation of state 17 USE sbc_oce ! surface boundary condition: ocean fields 18 18 USE sbccpl 19 USE fldread ! read input field 20 USE iom ! I/O manager library 21 USE in_out_manager ! I/O manager 22 USE lib_mpp ! MPP library 19 USE fldread ! read input field 20 USE iom ! I/O manager library 21 USE in_out_manager ! I/O manager 22 USE lib_mpp ! MPP library 23 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 23 24 24 25 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssr.F90
r3402 r3524 9 9 10 10 !!---------------------------------------------------------------------- 11 !! sbc_ssr : add to sbc a restoring term toward SST/SSS climatology 12 !!---------------------------------------------------------------------- 13 USE oce ! ocean dynamics and tracers 14 USE dom_oce ! ocean space and time domain 15 USE sbc_oce ! surface boundary condition 16 USE phycst ! physical constants 17 USE sbcrnf ! surface boundary condition : runoffs 18 USE fldread ! read input fields 19 USE iom ! I/O manager 20 USE in_out_manager ! I/O manager 21 USE lib_mpp ! distribued memory computing library 22 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 23 USE timing ! Timing 11 !! sbc_ssr : add to sbc a restoring term toward SST/SSS climatology 12 !!---------------------------------------------------------------------- 13 USE oce ! ocean dynamics and tracers 14 USE dom_oce ! ocean space and time domain 15 USE sbc_oce ! surface boundary condition 16 USE phycst ! physical constants 17 USE sbcrnf ! surface boundary condition : runoffs 18 USE fldread ! read input fields 19 USE iom ! I/O manager 20 USE in_out_manager ! I/O manager 21 USE lib_mpp ! distribued memory computing library 22 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 23 USE timing ! Timing 24 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 24 25 25 26 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_muscl.F90
r3294 r3524 14 14 !! and vertical advection trends using MUSCL scheme 15 15 !!---------------------------------------------------------------------- 16 USE oce ! ocean dynamics and active tracers 17 USE dom_oce ! ocean space and time domain 18 USE trdmod_oce ! tracers trends 19 USE trdtra ! tracers trends 20 USE in_out_manager ! I/O manager 21 USE dynspg_oce ! choice/control of key cpp for surface pressure gradient 22 USE trabbl ! tracers: bottom boundary layer 23 USE lib_mpp ! distribued memory computing 24 USE lbclnk ! ocean lateral boundary condition (or mpp link) 25 USE diaptr ! poleward transport diagnostics 26 USE trc_oce ! share passive tracers/Ocean variables 27 USE wrk_nemo ! Memory Allocation 28 USE timing ! Timing 16 USE oce ! ocean dynamics and active tracers 17 USE dom_oce ! ocean space and time domain 18 USE trdmod_oce ! tracers trends 19 USE trdtra ! tracers trends 20 USE in_out_manager ! I/O manager 21 USE dynspg_oce ! choice/control of key cpp for surface pressure gradient 22 USE trabbl ! tracers: bottom boundary layer 23 USE lib_mpp ! distribued memory computing 24 USE lbclnk ! ocean lateral boundary condition (or mpp link) 25 USE diaptr ! poleward transport diagnostics 26 USE trc_oce ! share passive tracers/Ocean variables 27 USE wrk_nemo ! Memory Allocation 28 USE timing ! Timing 29 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 29 30 30 31 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_muscl2.F90
r3294 r3524 25 25 USE wrk_nemo ! Memory Allocation 26 26 USE timing ! Timing 27 27 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 28 28 29 29 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_qck.F90
r3301 r3524 28 28 USE wrk_nemo ! Memory Allocation 29 29 USE timing ! Timing 30 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 30 31 31 32 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_tvd.F90
r3294 r3524 17 17 18 18 !!---------------------------------------------------------------------- 19 !! tra_adv_tvd : update the tracer trend with the horizontal 20 !! and vertical advection trends using a TVD scheme 21 !! nonosc : compute monotonic tracer fluxes by a nonoscillatory 22 !! algorithm 23 !!---------------------------------------------------------------------- 24 USE oce ! ocean dynamics and active tracers 25 USE dom_oce ! ocean space and time domain 26 USE trdmod_oce ! tracers trends 27 USE trdtra ! tracers trends 28 USE in_out_manager ! I/O manager 29 USE dynspg_oce ! choice/control of key cpp for surface pressure gradient 30 USE lib_mpp ! MPP library 31 USE lbclnk ! ocean lateral boundary condition (or mpp link) 32 USE diaptr ! poleward transport diagnostics 33 USE trc_oce ! share passive tracers/Ocean variables 34 USE wrk_nemo ! Memory Allocation 35 USE timing ! Timing 19 !! tra_adv_tvd : update the tracer trend with the 3D advection trends using a TVD scheme 20 !! nonosc : compute monotonic tracer fluxes by a non-oscillatory algorithm 21 !!---------------------------------------------------------------------- 22 USE oce ! ocean dynamics and active tracers 23 USE dom_oce ! ocean space and time domain 24 USE trdmod_oce ! tracers trends 25 USE trdtra ! tracers trends 26 USE in_out_manager ! I/O manager 27 USE dynspg_oce ! choice/control of key cpp for surface pressure gradient 28 USE lib_mpp ! MPP library 29 USE lbclnk ! ocean lateral boundary condition (or mpp link) 30 USE diaptr ! poleward transport diagnostics 31 USE trc_oce ! share passive tracers/Ocean variables 32 USE wrk_nemo ! Memory Allocation 33 USE timing ! Timing 34 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 36 35 37 36 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_ubs.F90
r3294 r3524 12 12 !! advection trends using a third order biaised scheme 13 13 !!---------------------------------------------------------------------- 14 USE oce 15 USE dom_oce 16 USE trdmod_oce 14 USE oce ! ocean dynamics and active tracers 15 USE dom_oce ! ocean space and time domain 16 USE trdmod_oce ! ocean space and time domain 17 17 USE trdtra 18 18 USE lib_mpp 19 USE lbclnk ! ocean lateral boundary condition (or mpp link) 20 USE in_out_manager ! I/O manager 21 USE diaptr ! poleward transport diagnostics 22 USE dynspg_oce ! choice/control of key cpp for surface pressure gradient 23 USE trc_oce ! share passive tracers/Ocean variables 24 USE wrk_nemo ! Memory Allocation 25 USE timing ! Timing 19 USE lbclnk ! ocean lateral boundary condition (or mpp link) 20 USE in_out_manager ! I/O manager 21 USE diaptr ! poleward transport diagnostics 22 USE dynspg_oce ! choice/control of key cpp for surface pressure gradient 23 USE trc_oce ! share passive tracers/Ocean variables 24 USE wrk_nemo ! Memory Allocation 25 USE timing ! Timing 26 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 26 27 27 28 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90
r3396 r3524 12 12 !! 'key_zdfgls' Generic Length Scale vertical physics 13 13 !!---------------------------------------------------------------------- 14 !! zdf_gls : update momentum and tracer Kz from a gls scheme15 !! zdf_gls_init : initialization, namelist read, and parameters control16 !! gls_rst : read/write gls restart in ocean restart file14 !! zdf_gls : update momentum and tracer Kz from a gls scheme 15 !! zdf_gls_init : initialization, namelist read, and parameters control 16 !! gls_rst : read/write gls restart in ocean restart file 17 17 !!---------------------------------------------------------------------- 18 18 USE oce ! ocean dynamics and active tracers … … 31 31 USE iom ! I/O manager library 32 32 USE timing ! Timing 33 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 33 34 34 35 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfkpp.F90
r3402 r3524 15 15 !! 'key_zdfkpp' KPP scheme 16 16 !!---------------------------------------------------------------------- 17 !! zdf_kpp : update momentum and tracer Kz from a kpp scheme18 !! zdf_kpp_init : initialization, namelist read, and parameters control19 !! tra_kpp : compute and add to the T & S trend the non-local flux20 !! trc_kpp : compute and add to the passive tracer trend the non-local flux (lk_top=T)17 !! zdf_kpp : update momentum and tracer Kz from a kpp scheme 18 !! zdf_kpp_init : initialization, namelist read, and parameters control 19 !! tra_kpp : compute and add to the T & S trend the non-local flux 20 !! trc_kpp : compute and add to the passive tracer trend the non-local flux (lk_top=T) 21 21 !!---------------------------------------------------------------------- 22 USE oce ! ocean dynamics and active tracers 23 USE dom_oce ! ocean space and time domain 24 USE zdf_oce ! ocean vertical physics 25 USE sbc_oce ! surface boundary condition: ocean 26 USE phycst ! physical constants 27 USE eosbn2 ! equation of state 28 USE zdfddm ! double diffusion mixing 29 USE in_out_manager ! I/O manager 30 USE lib_mpp ! MPP library 31 USE wrk_nemo ! work arrays 32 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 33 USE prtctl ! Print control 34 USE trdmod_oce ! ocean trends definition 35 USE trdtra ! tracers trends 36 USE timing ! Timing 22 USE oce ! ocean dynamics and active tracers 23 USE dom_oce ! ocean space and time domain 24 USE zdf_oce ! ocean vertical physics 25 USE sbc_oce ! surface boundary condition: ocean 26 USE phycst ! physical constants 27 USE eosbn2 ! equation of state 28 USE zdfddm ! double diffusion mixing 29 USE in_out_manager ! I/O manager 30 USE lib_mpp ! MPP library 31 USE wrk_nemo ! work arrays 32 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 33 USE prtctl ! Print control 34 USE trdmod_oce ! ocean trends definition 35 USE trdtra ! tracers trends 36 USE timing ! Timing 37 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 37 38 38 39 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfric.F90
r3294 r3524 17 17 !! 'key_zdfric' Kz = f(Ri) 18 18 !!---------------------------------------------------------------------- 19 !! zdf_ric : update momentum and tracer Kz from the Richardson19 !! zdf_ric : update momentum and tracer Kz from the Richardson 20 20 !! number computation 21 !! zdf_ric_init : initialization, namelist read, & parameters control 22 !!---------------------------------------------------------------------- 23 USE oce ! ocean dynamics and tracers variables 24 USE dom_oce ! ocean space and time domain variables 25 USE zdf_oce ! ocean vertical physics 26 USE in_out_manager ! I/O manager 27 USE lbclnk ! ocean lateral boundary condition (or mpp link) 28 USE lib_mpp ! MPP library 29 USE wrk_nemo ! work arrays 30 USE timing ! Timing 21 !! zdf_ric_init : initialization, namelist read, & parameters control 22 !!---------------------------------------------------------------------- 23 USE oce ! ocean dynamics and tracers variables 24 USE dom_oce ! ocean space and time domain variables 25 USE zdf_oce ! ocean vertical physics 26 USE in_out_manager ! I/O manager 27 USE lbclnk ! ocean lateral boundary condition (or mpp link) 28 USE lib_mpp ! MPP library 29 USE wrk_nemo ! work arrays 30 USE timing ! Timing 31 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 31 32 32 33 USE eosbn2, ONLY : nn_eos -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90
r3294 r3524 31 31 !! 'key_zdftke' TKE vertical physics 32 32 !!---------------------------------------------------------------------- 33 !! zdf_tke : update momentum and tracer Kz from a tke scheme34 !! tke_tke : tke time stepping: update tke at now time step (en)35 !! tke_avn : compute mixing length scale and deduce avm and avt36 !! zdf_tke_init : initialization, namelist read, and parameters control37 !! tke_rst : read/write tke restart in ocean restart file33 !! zdf_tke : update momentum and tracer Kz from a tke scheme 34 !! tke_tke : tke time stepping: update tke at now time step (en) 35 !! tke_avn : compute mixing length scale and deduce avm and avt 36 !! zdf_tke_init : initialization, namelist read, and parameters control 37 !! tke_rst : read/write tke restart in ocean restart file 38 38 !!---------------------------------------------------------------------- 39 39 USE oce ! ocean: dynamics and active tracers variables … … 52 52 USE wrk_nemo ! work arrays 53 53 USE timing ! Timing 54 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 54 55 55 56 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftmx.F90
r3294 r3524 12 12 !! 'key_zdftmx' Tidal vertical mixing 13 13 !!---------------------------------------------------------------------- 14 !! zdf_tmx : global momentum & tracer Kz with tidal induced Kz 15 !! tmx_itf : Indonesian momentum & tracer Kz with tidal induced Kz 16 !!---------------------------------------------------------------------- 17 USE oce ! ocean dynamics and tracers variables 18 USE dom_oce ! ocean space and time domain variables 19 USE zdf_oce ! ocean vertical physics variables 20 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 21 USE eosbn2 ! ocean equation of state 22 USE phycst ! physical constants 23 USE prtctl ! Print control 24 USE in_out_manager ! I/O manager 25 USE iom ! I/O Manager 26 USE lib_mpp ! MPP library 27 USE wrk_nemo ! work arrays 28 USE timing ! Timing 14 !! zdf_tmx : global momentum & tracer Kz with tidal induced Kz 15 !! tmx_itf : Indonesian momentum & tracer Kz with tidal induced Kz 16 !!---------------------------------------------------------------------- 17 USE oce ! ocean dynamics and tracers variables 18 USE dom_oce ! ocean space and time domain variables 19 USE zdf_oce ! ocean vertical physics variables 20 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 21 USE eosbn2 ! ocean equation of state 22 USE phycst ! physical constants 23 USE prtctl ! Print control 24 USE in_out_manager ! I/O manager 25 USE iom ! I/O Manager 26 USE lib_mpp ! MPP library 27 USE wrk_nemo ! work arrays 28 USE timing ! Timing 29 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 29 30 30 31 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/TOP_SRC/PISCES/p4zrem.F90
r3295 r3524 4 4 !! TOP : PISCES Compute remineralization/scavenging of organic compounds 5 5 !!====================================================================== 6 !! History : 7 !! 8 !! 6 !! History : 1.0 ! 2004 (O. Aumont) Original code 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 8 !! 3.4 ! 2011-06 (O. Aumont, C. Ethe) Quota model for iron 9 9 !!---------------------------------------------------------------------- 10 10 #if defined key_pisces … … 17 17 !! p4z_rem_alloc : Allocate remineralisation variables 18 18 !!---------------------------------------------------------------------- 19 USE oce_trc ! shared variables between ocean and passive tracers 20 USE trc ! passive tracers common variables 21 USE sms_pisces ! PISCES Source Minus Sink variables 22 USE p4zopt ! optical model 23 USE p4zche ! chemical model 24 USE p4zprod ! Growth rate of the 2 phyto groups 25 USE p4zmeso ! Sources and sinks of mesozooplankton 26 USE p4zint ! interpolation and computation of various fields 27 USE prtctl_trc ! print control for debugging 19 USE oce_trc ! shared variables between ocean and passive tracers 20 USE trc ! passive tracers common variables 21 USE sms_pisces ! PISCES Source Minus Sink variables 22 USE p4zopt ! optical model 23 USE p4zche ! chemical model 24 USE p4zprod ! Growth rate of the 2 phyto groups 25 USE p4zmeso ! Sources and sinks of mesozooplankton 26 USE p4zint ! interpolation and computation of various fields 27 USE prtctl_trc ! print control for debugging 28 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 28 29 29 30 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/TOP_SRC/PISCES/p4zsink.F90
r3295 r3524 19 19 USE prtctl_trc ! print control for debugging 20 20 USE iom ! I/O manager 21 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 21 22 22 23 IMPLICIT NONE -
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/TOP_SRC/SED/sedchem.F90
r2761 r3524 1 1 MODULE sedchem 2 2 ! 3 3 #if defined key_sed 4 4 !!====================================================================== … … 6 6 !! sediment : Variable for chemistry of the CO2 cycle 7 7 !!====================================================================== 8 !! modules used 9 USE sed ! sediment global variable 8 USE sed ! sediment global variable 10 9 USE sedarr 11 12 !! * Accessibility 10 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 11 13 12 PUBLIC sed_chem 14 13
Note: See TracChangeset
for help on using the changeset viewer.