Changeset 881
- Timestamp:
- 2008-04-08T11:45:52+02:00 (16 years ago)
- Location:
- branches/dev_001_SBC/NEMO
- Files:
-
- 39 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/dev_001_SBC/NEMO/C1D_SRC/diawri1d.F90
r714 r881 193 193 & jpi, jpj, nh_T, 1 , 1, 1 , -99 , 32, clop, zsto, zout ) 194 194 195 #if ! defined key_dynspg_rl && defined key_ ice_lim195 #if ! defined key_dynspg_rl && defined key_lim2 196 196 ! sowaflup = sowaflep + sorunoff + sowafldp + a term associated to 197 197 ! internal damping to Levitus that can be diagnosed from others … … 237 237 #endif 238 238 239 #if ( defined key_coupled && ! defined key_ ice_lim)239 #if ( defined key_coupled && ! defined key_lim2 ) 240 240 CALL histdef( nid_T, "sohefldp", "Surface Heat Flux: Damping" , "W/m2" , & ! qrp 241 241 & jpi, jpj, nh_T, 1 , 1, 1 , -99 , 32, clop, zsto, zout ) … … 259 259 #endif 260 260 261 #if defined key_ ice_lim&& defined key_coupled261 #if defined key_lim2 && defined key_coupled 262 262 CALL histdef( nid_T,"soicetem" , "Ice Surface Temperature" , "K" , & ! tn_ice 263 263 & jpi, jpj, nh_T, 1 , 1, 1 , -99 , 32, clop, zsto, zout ) … … 364 364 CALL histwrite( nid_T, "sosstsst", it, tn(:,:,1) , ndim_hT, ndex_hT ) ! sea surface temperature 365 365 CALL histwrite( nid_T, "sosaline", it, sn(:,:,1) , ndim_hT, ndex_hT ) ! sea surface salinity 366 #if ! defined key_dynspg_rl && defined key_ ice_lim366 #if ! defined key_dynspg_rl && defined key_lim2 367 367 CALL histwrite( nid_T, "iowaflup", it, fsalt(:,:) , ndim_hT, ndex_hT ) ! ice=>ocean water flux 368 368 CALL histwrite( nid_T, "sowaflep", it, fmass(:,:) , ndim_hT, ndex_hT ) ! atmos=>ocean water flux … … 396 396 CALL histwrite( nid_T, "sosafldp", it, zw2d , ndim_hT, ndex_hT ) ! salt flux damping 397 397 #endif 398 #if ( defined key_coupled && ! defined key_ ice_lim)398 #if ( defined key_coupled && ! defined key_lim2 ) 399 399 CALL histwrite( nid_T, "sohefldp", it, qrp , ndim_hT, ndex_hT ) ! heat flux damping 400 400 CALL histwrite( nid_T, "sowafldp", it, erp , ndim_hT, ndex_hT ) ! freshwater flux damping … … 411 411 CALL histwrite( nid_T, "sohtc300", it, htc3 , ndim_hT, ndex_hT ) ! first 300m heaat content 412 412 #endif 413 #if defined key_ ice_lim&& defined key_coupled413 #if defined key_lim2 && defined key_coupled 414 414 CALL histwrite( nid_T, "soicetem", it, tn_ice , ndim_hT, ndex_hT ) ! surf. ice temperature 415 415 CALL histwrite( nid_T, "soicealb", it, alb_ice , ndim_hT, ndex_hT ) ! ice albedo -
branches/dev_001_SBC/NEMO/C1D_SRC/icestp1d.F90
r714 r881 6 6 !! History : 9.0 ! 04-10 (C. Ethe) from icestp, 1D configuration 7 7 !!---------------------------------------------------------------------- 8 #if defined key_cfg_1d && defined key_ ice_lim8 #if defined key_cfg_1d && defined key_lim2 9 9 !!---------------------------------------------------------------------- 10 10 !! 'key_cfg_1d' .AND. 1D Configuration 11 !! 'key_ ice_lim'Lim sea-ice model11 !! 'key_lim2' Lim sea-ice model 12 12 !!---------------------------------------------------------------------- 13 13 !!---------------------------------------------------------------------- … … 18 18 USE in_out_manager ! I/O manager 19 19 USE ice_oce ! ice variables 20 USE dom_ice 20 USE dom_ice_2 ! LIM sea-ice domain 21 21 USE sbc_oce ! surface boundary condition: ocean 22 22 USE sbc_ice ! surface boundary condition: ice 23 23 USE daymod ! calendar 24 24 USE phycst ! Define parameters for the routines 25 USE ice 25 USE ice_2 ! ice variables 26 26 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 27 USE limthd 28 USE limwri 29 USE limrst 27 USE limthd_2 28 USE limwri_2 29 USE limrst_2 30 30 31 31 USE tradmp ! damping salinity trend -
branches/dev_001_SBC/NEMO/LIM_SRC/dom_ice.F90
r699 r881 1 MODULE dom_ice 1 MODULE dom_ice_2 2 2 !!====================================================================== 3 3 !! *** MODULE dom_ice *** 4 !! LIM Sea Ice : Domain variables4 !! LIM 2.0 Sea Ice : Domain variables 5 5 !!====================================================================== 6 6 !! History : 2.0 ! 03-08 (C. Ethe) Free form and module 7 7 !!---------------------------------------------------------------------- 8 8 #if defined key_lim2 9 9 !!---------------------------------------------------------------------- 10 10 !! LIM 2.0, UCL-LOCEAN-IPSL (2005) … … 12 12 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 13 13 !!---------------------------------------------------------------------- 14 USE par_ice 14 USE par_ice_2 15 15 16 16 IMPLICIT NONE … … 33 33 34 34 !!====================================================================== 35 END MODULE dom_ice 35 #endif 36 END MODULE dom_ice_2 -
branches/dev_001_SBC/NEMO/LIM_SRC/ice.F90
r717 r881 1 MODULE ice 1 MODULE ice_2 2 2 !!====================================================================== 3 3 !! *** MODULE ice *** … … 6 6 !! History : 2.0 ! 03-08 (C. Ethe) F90: Free form and module 7 7 !!---------------------------------------------------------------------- 8 #if defined key_ ice_lim8 #if defined key_lim2 9 9 !!---------------------------------------------------------------------- 10 !! 'key_ ice_lim' : LIMsea-ice model10 !! 'key_lim2' : LIM 2.0 sea-ice model 11 11 !!---------------------------------------------------------------------- 12 USE par_ice ! LIM sea-ice parameters 12 !! LIM 2.0, UCL-LOCEAN-IPSL (2006) 13 !! $Id$ 14 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 15 !!---------------------------------------------------------------------- 16 USE par_ice_2 ! LIM sea-ice parameters 13 17 14 18 IMPLICIT NONE … … 99 103 #else 100 104 !!---------------------------------------------------------------------- 101 !! Default option Empty module NO LIMsea-ice model105 !! Default option Empty module NO LIM 2.0 sea-ice model 102 106 !!---------------------------------------------------------------------- 103 107 #endif 104 108 105 !!----------------------------------------------------------------------106 !! LIM 2.0, UCL-LOCEAN-IPSL (2006)107 !! $Id$108 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)109 109 !!====================================================================== 110 END MODULE ice 110 END MODULE ice_2 -
branches/dev_001_SBC/NEMO/LIM_SRC/iceini.F90
r717 r881 1 MODULE iceini 1 MODULE iceini_2 2 2 !!====================================================================== 3 3 !! *** MODULE iceini *** 4 !! Sea-ice model : LIM Sea ice model Initialization4 !! Sea-ice model : LIM 2.0 Sea ice model Initialization 5 5 !!====================================================================== 6 6 !! History : 1.0 ! 02-08 (G. Madec) F90: Free form and modules 7 7 !! 2.0 ! 03-08 (C. Ethe) add ice_run 8 8 !!---------------------------------------------------------------------- 9 #if defined key_ ice_lim9 #if defined key_lim2 10 10 !!---------------------------------------------------------------------- 11 !! 'key_ ice_lim' : LIMsea-ice model11 !! 'key_lim2' : LIM 2.0 sea-ice model 12 12 !!---------------------------------------------------------------------- 13 13 !!---------------------------------------------------------------------- 14 !! ice_init : sea-ice model initialization15 !! ice_run : Definition some run parameter for ice model14 !! ice_init_2 : sea-ice model initialization 15 !! ice_run_2 : Definition some run parameter for ice model 16 16 !!---------------------------------------------------------------------- 17 17 USE dom_oce 18 USE dom_ice 18 USE dom_ice_2 19 19 USE ice_oce ! ice variables 20 20 USE sbc_oce ! surface boundary condition: ocean … … 22 22 USE phycst ! Define parameters for the routines 23 23 USE ocfzpt 24 USE ice 25 USE limmsh 26 USE limistate 27 USE limrst 24 USE ice_2 25 USE limmsh_2 26 USE limistate_2 27 USE limrst_2 28 28 USE ini1d ! initialization of the 1D configuration 29 29 USE in_out_manager … … 32 32 PRIVATE 33 33 34 PUBLIC ice_init 34 PUBLIC ice_init_2 ! called by opa.F90 35 35 36 36 LOGICAL , PUBLIC :: ln_limdyn = .TRUE. !: flag for ice dynamics (T) or not (F) … … 47 47 CONTAINS 48 48 49 SUBROUTINE ice_init 49 SUBROUTINE ice_init_2 50 50 !!---------------------------------------------------------------------- 51 !! *** ROUTINE ice_init ***51 !! *** ROUTINE ice_init_2 *** 52 52 !! 53 53 !! ** purpose : … … 60 60 CALL ctlopn(numnam_ice,namelist_icename,'OLD', 'FORMATTED', 'SEQUENTIAL', & 61 61 1,numout,.FALSE.,1) 62 CALL ice_run ! read in namelist some run parameters62 CALL ice_run_2 ! read in namelist some run parameters 63 63 64 64 ! Louvain la Neuve Ice model … … 66 66 rdt_ice = nn_fsbc * rdttra(1) 67 67 68 CALL lim_msh 68 CALL lim_msh_2 ! ice mesh initialization 69 69 70 70 ! Initial sea-ice state 71 71 IF( .NOT.ln_rstart ) THEN 72 CALL lim_istate 72 CALL lim_istate_2 ! start from rest: sea-ice deduced from sst 73 73 ELSE 74 CALL lim_rst_read 74 CALL lim_rst_read_2 ! start from a restart file 75 75 ENDIF 76 76 … … 81 81 # endif 82 82 ! 83 END SUBROUTINE ice_init 83 END SUBROUTINE ice_init_2 84 84 85 85 86 SUBROUTINE ice_run 86 SUBROUTINE ice_run_2 87 87 !!------------------------------------------------------------------- 88 !! *** ROUTINE ice_run ***88 !! *** ROUTINE ice_run_2 *** 89 89 !! 90 90 !! ** Purpose : Definition some run parameter for ice model … … 114 114 ENDIF 115 115 ! 116 END SUBROUTINE ice_run 116 END SUBROUTINE ice_run_2 117 117 118 118 #else 119 119 !!---------------------------------------------------------------------- 120 !! Default option : Empty module NO LIMsea-ice model120 !! Default option : Empty module NO LIM 2.0 sea-ice model 121 121 !!---------------------------------------------------------------------- 122 122 CONTAINS 123 SUBROUTINE ice_init 124 END SUBROUTINE ice_init 123 SUBROUTINE ice_init_2 ! Empty routine 124 END SUBROUTINE ice_init_2 125 125 #endif 126 126 127 127 !!====================================================================== 128 END MODULE iceini 128 END MODULE iceini_2 -
branches/dev_001_SBC/NEMO/LIM_SRC/limadv.F90
r699 r881 1 MODULE limadv 1 MODULE limadv_2 2 2 !!====================================================================== 3 !! *** MODULE limadv ***4 !! LIM sea-ice model : sea-ice advection3 !! *** MODULE limadv_2 *** 4 !! LIM 2.0 sea-ice model : sea-ice advection 5 5 !!====================================================================== 6 #if defined key_ ice_lim7 !!---------------------------------------------------------------------- 8 !! 'key_ ice_lim' LIMsea-ice model9 !!---------------------------------------------------------------------- 10 !! lim_adv_x : advection of sea ice on x axis11 !! lim_adv_y : advection of sea ice on y axis6 #if defined key_lim2 7 !!---------------------------------------------------------------------- 8 !! 'key_lim2' LIM 2.0 sea-ice model 9 !!---------------------------------------------------------------------- 10 !! lim_adv_x_2 : advection of sea ice on x axis 11 !! lim_adv_y_2 : advection of sea ice on y axis 12 12 !!---------------------------------------------------------------------- 13 13 !! * Modules used 14 14 USE dom_oce 15 USE dom_ice 15 USE dom_ice_2 16 16 USE ice_oce ! ice variables 17 17 USE in_out_manager ! I/O manager … … 23 23 24 24 !! * Routine accessibility 25 PUBLIC lim_adv_x ! called by lim_trp26 PUBLIC lim_adv_y ! called by lim_trp25 PUBLIC lim_adv_x_2 ! called by lim_trp 26 PUBLIC lim_adv_y_2 ! called by lim_trp 27 27 28 28 !! * Module variables … … 39 39 CONTAINS 40 40 41 SUBROUTINE lim_adv_x ( pdf, put , pcrh, psm , ps0 , &42 & psx, psxx, psy , psyy, psxy )41 SUBROUTINE lim_adv_x_2( pdf, put , pcrh, psm , ps0 , & 42 & psx, psxx, psy , psyy, psxy ) 43 43 !!--------------------------------------------------------------------- 44 !! ** routine lim_adv_x **44 !! ** routine lim_adv_x_2 ** 45 45 !! 46 46 !! ** purpose : Computes and adds the advection trend to sea-ice … … 232 232 ENDIF 233 233 234 END SUBROUTINE lim_adv_x 235 236 237 SUBROUTINE lim_adv_y ( pdf, pvt , pcrh, psm , ps0 , &238 & psx, psxx, psy , psyy, psxy )234 END SUBROUTINE lim_adv_x_2 235 236 237 SUBROUTINE lim_adv_y_2( pdf, pvt , pcrh, psm , ps0 , & 238 & psx, psxx, psy , psyy, psxy ) 239 239 !!--------------------------------------------------------------------- 240 !! ** routine lim_adv_y **240 !! ** routine lim_adv_y_2 ** 241 241 !! 242 242 !! ** purpose : Computes and adds the advection trend to sea-ice … … 432 432 ENDIF 433 433 434 END SUBROUTINE lim_adv_y 434 END SUBROUTINE lim_adv_y_2 435 435 436 436 #else 437 437 !!---------------------------------------------------------------------- 438 !! Default option Dummy module NO LIMsea-ice model438 !! Default option Dummy module NO LIM 2.0 sea-ice model 439 439 !!---------------------------------------------------------------------- 440 440 CONTAINS 441 SUBROUTINE lim_adv_x ! Empty routine442 END SUBROUTINE lim_adv_x 443 SUBROUTINE lim_adv_y 444 END SUBROUTINE lim_adv_y 441 SUBROUTINE lim_adv_x_2 ! Empty routine 442 END SUBROUTINE lim_adv_x_2 443 SUBROUTINE lim_adv_y_2 ! Empty routine 444 END SUBROUTINE lim_adv_y_2 445 445 446 446 #endif 447 447 448 END MODULE limadv 448 END MODULE limadv_2 -
branches/dev_001_SBC/NEMO/LIM_SRC/limdia.F90
r717 r881 1 MODULE limdia 1 MODULE limdia_2 2 2 !!====================================================================== 3 !! *** MODULE limdia ***3 !! *** MODULE limdia_2 *** 4 4 !! diagnostics of ice model 5 5 !!====================================================================== … … 8 8 !! 9.0 ! 06-08 (S. Masson) change frequency output control 9 9 !!------------------------------------------------------------------- 10 #if defined key_ ice_lim11 !!---------------------------------------------------------------------- 12 !! 'key_ ice_lim' : LIMsea-ice model13 !!---------------------------------------------------------------------- 14 !!---------------------------------------------------------------------- 15 !! lim_dia : computation of the time evolution of keys var.16 !! lim_dia_init : initialization and namelist read10 #if defined key_lim2 11 !!---------------------------------------------------------------------- 12 !! 'key_lim2' : LIM 2.0 sea-ice model 13 !!---------------------------------------------------------------------- 14 !!---------------------------------------------------------------------- 15 !! lim_dia_2 : computation of the time evolution of keys var. 16 !! lim_dia_init_2 : initialization and namelist read 17 17 !!---------------------------------------------------------------------- 18 18 USE phycst ! 19 USE par_ice 19 USE par_ice_2 ! ice parameters 20 20 USE ice_oce ! ice variables 21 21 USE sbc_oce ! surface boundary condition variables 22 22 USE daymod ! 23 USE dom_ice 24 USE ice 25 USE limistate 23 USE dom_ice_2 ! 24 USE ice_2 ! 25 USE limistate_2 ! 26 26 USE in_out_manager ! I/O manager 27 27 … … 29 29 PRIVATE 30 30 31 PUBLIC lim_dia ! called by ice_step31 PUBLIC lim_dia_2 ! called by sbc_ice_lim_2 32 32 INTEGER, PUBLIC :: ntmoy = 1 , & !: instantaneous values of ice evolution or averaging ntmoy 33 33 & ninfo = 1 !: frequency of ouputs on file ice_evolu in case of averaging … … 65 65 CONTAINS 66 66 67 SUBROUTINE lim_dia ( kt )67 SUBROUTINE lim_dia_2( kt ) 68 68 !!-------------------------------------------------------------------- 69 !! *** ROUTINE lim_dia ***69 !! *** ROUTINE lim_dia_2 *** 70 70 !! 71 71 !! ** Purpose : Computation and outputs on file ice.evolu … … 83 83 !!------------------------------------------------------------------- 84 84 85 IF( kt == nit000 ) CALL lim_dia_init 85 IF( kt == nit000 ) CALL lim_dia_init_2 ! initialisation of ice_evolu file 86 86 87 87 ! computation of key variables at each time step … … 163 163 ENDIF 164 164 ! 165 END SUBROUTINE lim_dia 165 END SUBROUTINE lim_dia_2 166 166 167 167 168 SUBROUTINE lim_dia_init 168 SUBROUTINE lim_dia_init_2 169 169 !!------------------------------------------------------------------- 170 !! *** ROUTINE lim_dia_init ***170 !! *** ROUTINE lim_dia_init_2 *** 171 171 !! 172 172 !! ** Purpose : Preparation of the file ice_evolu for the output of … … 191 191 IF(lwp) THEN 192 192 WRITE(numout,*) 193 WRITE(numout,*) 'lim_dia_init : ice parameters for ice diagnostics '194 WRITE(numout,*) '~~~~~~~~~~~~ '193 WRITE(numout,*) 'lim_dia_init_2 : ice parameters for ice diagnostics ' 194 WRITE(numout,*) '~~~~~~~~~~~~~~' 195 195 WRITE(numout,*) ' format of the output values fmtinf = ', fmtinf 196 196 WRITE(numout,*) ' number of variables written in one line nfrinf = ', nfrinf … … 275 275 1111 FORMAT( 3(F7.1,1X,F7.3,1X),I3,A ) 276 276 ! 277 END SUBROUTINE lim_dia_init 277 END SUBROUTINE lim_dia_init_2 278 278 279 279 #else 280 280 !!---------------------------------------------------------------------- 281 !! Default option : NO LIMsea-ice model281 !! Default option : NO LIM 2.0 sea-ice model 282 282 !!---------------------------------------------------------------------- 283 283 CONTAINS 284 SUBROUTINE lim_dia ! Empty routine285 END SUBROUTINE lim_dia 284 SUBROUTINE lim_dia_2 ! Empty routine 285 END SUBROUTINE lim_dia_2 286 286 #endif 287 287 288 288 !!====================================================================== 289 END MODULE limdia 289 END MODULE limdia_2 -
branches/dev_001_SBC/NEMO/LIM_SRC/limdmp.F90
r699 r881 1 MODULE limdmp 1 MODULE limdmp_2 2 2 !!====================================================================== 3 !! *** MODULE limdmp ***3 !! *** MODULE limdmp_2 *** 4 4 !! Ice model : restoring Ice thickness and Fraction leads 5 5 !!====================================================================== 6 6 !! History : 2.0 ! 04-04 (S. Theetten) Original code 7 7 !!---------------------------------------------------------------------- 8 #if defined key_ ice_lim&& defined key_tradmp8 #if defined key_lim2 && defined key_tradmp 9 9 !!---------------------------------------------------------------------- 10 !! 'key_ ice_lim' AND LIMsea-ice model10 !! 'key_lim2' AND LIM 2.0 sea-ice model 11 11 !! 'key_tradmp' Damping 12 12 !!---------------------------------------------------------------------- 13 13 !!---------------------------------------------------------------------- 14 !! lim_dmp : ice model damping14 !! lim_dmp_2 : ice model damping 15 15 !!---------------------------------------------------------------------- 16 16 USE in_out_manager ! I/O manager 17 17 USE phycst ! physical constants 18 USE ice 18 USE ice_2 19 19 USE ice_oce 20 20 USE tradmp … … 27 27 PRIVATE 28 28 29 PUBLIC lim_dmp ! called by ice_step29 PUBLIC lim_dmp_2 ! called by ice_step_2 30 30 31 31 INTEGER :: nice1, nice2, & ! first and second record used … … 46 46 CONTAINS 47 47 48 SUBROUTINE lim_dmp (kt)48 SUBROUTINE lim_dmp_2(kt) 49 49 !!------------------------------------------------------------------- 50 !! *** ROUTINE lim_dmp ***50 !! *** ROUTINE lim_dmp_2 *** 51 51 !! 52 52 !! ** purpose : ice model damping : restoring ice thickness and … … 60 60 !!--------------------------------------------------------------------- 61 61 ! 62 CALL dta_lim ( kt )62 CALL dta_lim_2( kt ) 63 63 64 64 DO jj = 2, jpjm1 … … 69 69 END DO 70 70 ! 71 END SUBROUTINE lim_dmp 71 END SUBROUTINE lim_dmp_2 72 72 73 73 74 SUBROUTINE dta_lim ( kt )74 SUBROUTINE dta_lim_2( kt ) 75 75 !!---------------------------------------------------------------------- 76 !! *** ROUTINE dta_lim ***76 !! *** ROUTINE dta_lim_2 *** 77 77 !! 78 78 !! ** Purpose : Reads monthly ice thickness and fraction lead data … … 167 167 IF( kt == nitend ) CALL iom_close( inumice_dmp ) 168 168 ! 169 END SUBROUTINE dta_lim 169 END SUBROUTINE dta_lim_2 170 170 171 171 #else … … 174 174 !!---------------------------------------------------------------------- 175 175 CONTAINS 176 SUBROUTINE lim_dmp ( kt ) ! Dummy routine177 WRITE(*,*) 'lim_dmp : You should not see this print! error? ', kt178 END SUBROUTINE lim_dmp 176 SUBROUTINE lim_dmp_2( kt ) ! Dummy routine 177 WRITE(*,*) 'lim_dmp_2: You should not see this print! error? ', kt 178 END SUBROUTINE lim_dmp_2 179 179 #endif 180 180 181 181 !!====================================================================== 182 END MODULE limdmp 182 END MODULE limdmp_2 -
branches/dev_001_SBC/NEMO/LIM_SRC/limdyn.F90
r879 r881 1 MODULE limdyn 1 MODULE limdyn_2 2 2 !!====================================================================== 3 !! *** MODULE limdyn ***3 !! *** MODULE limdyn_2 *** 4 4 !! Sea-Ice dynamics : 5 5 !!====================================================================== … … 9 9 !! 2.0 ! 06-07 (G. Madec) Surface module 10 10 !!--------------------------------------------------------------------- 11 #if defined key_ ice_lim12 !!---------------------------------------------------------------------- 13 !! 'key_ ice_lim' : LIMsea-ice model14 !!---------------------------------------------------------------------- 15 !! lim_dyn : computes ice velocities16 !! lim_dyn_init : initialization and namelist read11 #if defined key_lim2 12 !!---------------------------------------------------------------------- 13 !! 'key_lim2' : LIM 2.0 sea-ice model 14 !!---------------------------------------------------------------------- 15 !! lim_dyn_2 : computes ice velocities 16 !! lim_dyn_init_2 : initialization and namelist read 17 17 !!---------------------------------------------------------------------- 18 18 USE dom_oce ! ocean space and time domain 19 19 USE sbc_oce ! 20 20 USE phycst ! 21 USE ice 21 USE ice_2 ! 22 22 USE ice_oce ! 23 USE dom_ice 24 USE iceini 25 USE limistate 26 USE limrhg 23 USE dom_ice_2 ! 24 USE iceini_2 ! 25 USE limistate_2 ! 26 USE limrhg_2 ! ice rheology 27 27 28 28 USE lbclnk ! … … 34 34 PRIVATE 35 35 36 PUBLIC lim_dyn ! routine called by ice_step36 PUBLIC lim_dyn_2 ! routine called by sbc_ice_lim 37 37 38 38 REAL(wp) :: rone = 1.e0 ! constant value … … 47 47 CONTAINS 48 48 49 SUBROUTINE lim_dyn ( kt )50 !!------------------------------------------------------------------- 51 !! *** ROUTINE lim_dyn ***49 SUBROUTINE lim_dyn_2( kt ) 50 !!------------------------------------------------------------------- 51 !! *** ROUTINE lim_dyn_2 *** 52 52 !! 53 53 !! ** Purpose : compute ice velocity and ocean-ice friction velocity … … 70 70 !!--------------------------------------------------------------------- 71 71 72 IF( kt == nit000 ) CALL lim_dyn_init ! Initialization (first time-step only)72 IF( kt == nit000 ) CALL lim_dyn_init_2 ! Initialization (first time-step only) 73 73 74 74 IF( ln_limdyn ) THEN … … 88 88 i_jpj = jpj 89 89 IF(ln_ctl) CALL prt_ctl_info( 'lim_dyn : i_j1 = ', ivar1=i_j1, clinfo2=' ij_jpj = ', ivar2=i_jpj ) 90 CALL lim_rhg ( i_j1, i_jpj )90 CALL lim_rhg_2( i_j1, i_jpj ) 91 91 ! 92 92 ELSE ! optimization of the computational area … … 109 109 IF(ln_ctl) WRITE(numout,*) 'lim_dyn : NH i_j1 = ', i_j1, ' ij_jpj = ', i_jpj 110 110 ! 111 CALL lim_rhg ( i_j1, i_jpj )111 CALL lim_rhg_2( i_j1, i_jpj ) 112 112 ! 113 113 ! Southern hemisphere … … 120 120 IF(ln_ctl) WRITE(numout,*) 'lim_dyn : SH i_j1 = ', i_j1, ' ij_jpj = ', i_jpj 121 121 ! 122 CALL lim_rhg ( i_j1, i_jpj )122 CALL lim_rhg_2( i_j1, i_jpj ) 123 123 ! 124 124 ELSE ! local domain extends over one hemisphere only … … 139 139 IF(ln_ctl) WRITE(numout,*) 'lim_dyn : one hemisphere: i_j1 = ', i_j1, ' ij_jpj = ', i_jpj 140 140 ! 141 CALL lim_rhg ( i_j1, i_jpj )141 CALL lim_rhg_2( i_j1, i_jpj ) 142 142 ! 143 143 ENDIF … … 182 182 IF(ln_ctl) CALL prt_ctl(tab2d_1=ust2s , clinfo1=' lim_dyn : ust2s :') 183 183 184 END SUBROUTINE lim_dyn 185 186 187 SUBROUTINE lim_dyn_init 188 !!------------------------------------------------------------------- 189 !! *** ROUTINE lim_dyn_init ***184 END SUBROUTINE lim_dyn_2 185 186 187 SUBROUTINE lim_dyn_init_2 188 !!------------------------------------------------------------------- 189 !! *** ROUTINE lim_dyn_init_2 *** 190 190 !! 191 191 !! ** Purpose : Physical constants and parameters linked to the ice … … 207 207 IF(lwp) THEN ! Control print 208 208 WRITE(numout,*) 209 WRITE(numout,*) 'lim_dyn_init 210 WRITE(numout,*) '~~~~~~~~~~~~ '209 WRITE(numout,*) 'lim_dyn_init_2: ice parameters for ice dynamics ' 210 WRITE(numout,*) '~~~~~~~~~~~~~~' 211 211 WRITE(numout,*) ' tolerance parameter epsd = ', epsd 212 212 WRITE(numout,*) ' coefficient for semi-implicit coriolis alpha = ', alpha … … 236 236 ahiv(:,:) = ahi0 * vmask(:,:,1) 237 237 ! 238 END SUBROUTINE lim_dyn_init 238 END SUBROUTINE lim_dyn_init_2 239 239 240 240 #else 241 241 !!---------------------------------------------------------------------- 242 !! Default option Empty module NO LIMsea-ice model242 !! Default option Empty module NO LIM 2.0 sea-ice model 243 243 !!---------------------------------------------------------------------- 244 244 CONTAINS 245 SUBROUTINE lim_dyn ! Empty routine246 END SUBROUTINE lim_dyn 245 SUBROUTINE lim_dyn_2 ! Empty routine 246 END SUBROUTINE lim_dyn_2 247 247 #endif 248 248 249 249 !!====================================================================== 250 END MODULE limdyn 250 END MODULE limdyn_2 -
branches/dev_001_SBC/NEMO/LIM_SRC/limhdf.F90
r701 r881 1 MODULE limhdf 1 MODULE limhdf_2 2 2 !!====================================================================== 3 !! *** MODULE limhdf ***4 !! LIM ice model : horizontal diffusion of sea-ice quantities3 !! *** MODULE limhdf_2 *** 4 !! LIM 2.0 ice model : horizontal diffusion of sea-ice quantities 5 5 !!====================================================================== 6 #if defined key_ ice_lim6 #if defined key_lim2 7 7 !!---------------------------------------------------------------------- 8 !! 'key_ ice_lim' LIMsea-ice model8 !! 'key_lim2' LIM 2.0 sea-ice model 9 9 !!---------------------------------------------------------------------- 10 !! lim_hdf : diffusion trend on sea-ice variable10 !! lim_hdf_2 : diffusion trend on sea-ice variable 11 11 !!---------------------------------------------------------------------- 12 12 !! * Modules used … … 14 14 USE ice_oce ! ice variables 15 15 USE in_out_manager 16 USE ice 16 USE ice_2 17 17 USE lbclnk 18 18 USE lib_mpp … … 23 23 24 24 !! * Routine accessibility 25 PUBLIC lim_hdf ! called by lim_tra25 PUBLIC lim_hdf_2 ! called by lim_tra_2 26 26 27 27 !! * Module variables … … 40 40 CONTAINS 41 41 42 SUBROUTINE lim_hdf ( ptab )42 SUBROUTINE lim_hdf_2( ptab ) 43 43 !!------------------------------------------------------------------- 44 !! *** ROUTINE lim_hdf ***44 !! *** ROUTINE lim_hdf_2 *** 45 45 !! 46 46 !! ** purpose : Compute and add the diffusive trend on sea-ice … … 171 171 ENDIF 172 172 173 END SUBROUTINE lim_hdf 173 END SUBROUTINE lim_hdf_2 174 174 175 175 #else 176 176 !!---------------------------------------------------------------------- 177 !! Default option Dummy module NO LIMsea-ice model177 !! Default option Dummy module NO LIM 2.0 sea-ice model 178 178 !!---------------------------------------------------------------------- 179 179 CONTAINS 180 SUBROUTINE lim_hdf 181 END SUBROUTINE lim_hdf 180 SUBROUTINE lim_hdf_2 ! Empty routine 181 END SUBROUTINE lim_hdf_2 182 182 #endif 183 183 184 184 !!====================================================================== 185 END MODULE limhdf 185 END MODULE limhdf_2 -
branches/dev_001_SBC/NEMO/LIM_SRC/limistate.F90
r717 r881 1 MODULE limistate 1 MODULE limistate_2 2 2 !!====================================================================== 3 !! *** MODULE limistate ***3 !! *** MODULE limistate_2 *** 4 4 !! Initialisation of diagnostics ice variables 5 5 !!====================================================================== … … 10 10 !! ! 07-10 (G. Madec) surface module 11 11 !!-------------------------------------------------------------------- 12 #if defined key_ ice_lim13 !!---------------------------------------------------------------------- 14 !! 'key_ ice_lim' : LIMsea-ice model15 !!---------------------------------------------------------------------- 16 !!---------------------------------------------------------------------- 17 !! lim_istate : Initialisation of diagnostics ice variables18 !! lim_istate_init : initialization of ice state and namelist read12 #if defined key_lim2 13 !!---------------------------------------------------------------------- 14 !! 'key_lim2' : LIM 2.0 sea-ice model 15 !!---------------------------------------------------------------------- 16 !!---------------------------------------------------------------------- 17 !! lim_istate_2 : Initialisation of diagnostics ice variables 18 !! lim_istate_init_2 : initialization of ice state and namelist read 19 19 !!---------------------------------------------------------------------- 20 20 USE phycst 21 21 USE ocfzpt 22 USE par_ice 22 USE par_ice_2 ! ice parameters 23 23 USE ice_oce ! ice variables 24 USE dom_ice 24 USE dom_ice_2 25 25 USE lbclnk 26 26 USE oce 27 USE ice 27 USE ice_2 28 28 USE iom 29 29 USE in_out_manager … … 32 32 PRIVATE 33 33 34 PUBLIC lim_istate ! routine called by lim_init.F9035 36 REAL(wp) :: & !!! ** init namelist (namiceini) **34 PUBLIC lim_istate_2 ! routine called by lim_init_2.F90 35 36 REAL(wp) :: & !!! ** init namelist (namiceini) ** 37 37 ttest = 2.0 , & ! threshold water temperature for initial sea ice 38 38 hninn = 0.5 , & ! initial snow thickness in the north … … 54 54 CONTAINS 55 55 56 SUBROUTINE lim_istate 57 !!------------------------------------------------------------------- 58 !! *** ROUTINE lim_istate ***56 SUBROUTINE lim_istate_2 57 !!------------------------------------------------------------------- 58 !! *** ROUTINE lim_istate_2 *** 59 59 !! 60 60 !! ** Purpose : defined the sea-ice initial state … … 68 68 !-------------------------------------------------------------------- 69 69 70 CALL lim_istate_init ! reading the initials parameters of the ice70 CALL lim_istate_init_2 ! reading the initials parameters of the ice 71 71 72 72 IF( .NOT. ln_limini ) THEN … … 153 153 CALL lbc_lnk( qstoif , 'T', 1. ) 154 154 155 END SUBROUTINE lim_istate 155 END SUBROUTINE lim_istate_2 156 156 157 157 158 SUBROUTINE lim_istate_init 159 !!------------------------------------------------------------------- 160 !! *** ROUTINE lim_istate_init ***158 SUBROUTINE lim_istate_init_2 159 !!------------------------------------------------------------------- 160 !! *** ROUTINE lim_istate_init_2 *** 161 161 !! 162 162 !! ** Purpose : Definition of initial state of the ice … … 179 179 IF(lwp) THEN 180 180 WRITE(numout,*) 181 WRITE(numout,*) 'lim_istate_init : ice parameters inititialisation '182 WRITE(numout,*) '~~~~~~~~~~~~~~~ '181 WRITE(numout,*) 'lim_istate_init_2 : ice parameters inititialisation ' 182 WRITE(numout,*) '~~~~~~~~~~~~~~~~~' 183 183 WRITE(numout,*) ' threshold water temp. for initial sea-ice ttest = ', ttest 184 184 WRITE(numout,*) ' initial snow thickness in the north hninn = ', hninn … … 214 214 ENDIF 215 215 ! 216 END SUBROUTINE lim_istate_init 216 END SUBROUTINE lim_istate_init_2 217 217 218 218 #else 219 219 !!---------------------------------------------------------------------- 220 !! Default option : Empty module NO LIMsea-ice model220 !! Default option : Empty module NO LIM 2.0 sea-ice model 221 221 !!---------------------------------------------------------------------- 222 222 CONTAINS 223 SUBROUTINE lim_istate 224 END SUBROUTINE lim_istate 223 SUBROUTINE lim_istate_2 ! Empty routine 224 END SUBROUTINE lim_istate_2 225 225 #endif 226 226 227 227 !!====================================================================== 228 END MODULE limistate 228 END MODULE limistate_2 -
branches/dev_001_SBC/NEMO/LIM_SRC/limmsh.F90
r699 r881 1 MODULE limmsh 1 MODULE limmsh_2 2 2 !!====================================================================== 3 !! *** MODULE limmsh ***4 !! LIM ice model : definition of the ice mesh parameters3 !! *** MODULE limmsh_2 *** 4 !! LIM 2.0 ice model : definition of the ice mesh parameters 5 5 !!====================================================================== 6 #if defined key_ ice_lim7 !!---------------------------------------------------------------------- 8 !! 'key_ ice_lim' LIMsea-ice model9 !!---------------------------------------------------------------------- 10 !! lim_msh : definition of the ice mesh6 #if defined key_lim2 7 !!---------------------------------------------------------------------- 8 !! 'key_lim2' LIM 2.0sea-ice model 9 !!---------------------------------------------------------------------- 10 !! lim_msh_2 : definition of the ice mesh 11 11 !!---------------------------------------------------------------------- 12 12 !! * Modules used 13 13 USE phycst 14 14 USE dom_oce 15 USE dom_ice 15 USE dom_ice_2 16 16 USE lbclnk 17 17 USE in_out_manager … … 21 21 22 22 !! * Accessibility 23 PUBLIC lim_msh ! routine called by ice_ini.F9023 PUBLIC lim_msh_2 ! routine called by ice_ini_2.F90 24 24 25 25 !!---------------------------------------------------------------------- … … 31 31 CONTAINS 32 32 33 SUBROUTINE lim_msh 33 SUBROUTINE lim_msh_2 34 34 !!------------------------------------------------------------------- 35 !! *** ROUTINE lim_msh ***35 !! *** ROUTINE lim_msh_2 *** 36 36 !! 37 37 !! ** Purpose : Definition of the charact. of the numerical grid … … 62 62 IF(lwp) THEN 63 63 WRITE(numout,*) 64 WRITE(numout,*) 'lim_msh : LIMsea-ice model, mesh initialization'65 WRITE(numout,*) '~~~~~~~ '64 WRITE(numout,*) 'lim_msh_2 : LIM 2.0 sea-ice model, mesh initialization' 65 WRITE(numout,*) '~~~~~~~~~' 66 66 ENDIF 67 67 … … 245 245 area(:,:) = e1t(:,:) * e2t(:,:) 246 246 247 END SUBROUTINE lim_msh 247 END SUBROUTINE lim_msh_2 248 248 249 249 #else … … 252 252 !!---------------------------------------------------------------------- 253 253 CONTAINS 254 SUBROUTINE lim_msh ! Dummy routine255 END SUBROUTINE lim_msh 254 SUBROUTINE lim_msh_2 ! Dummy routine 255 END SUBROUTINE lim_msh_2 256 256 #endif 257 257 258 258 !!====================================================================== 259 END MODULE limmsh 259 END MODULE limmsh_2 -
branches/dev_001_SBC/NEMO/LIM_SRC/limrhg.F90
r879 r881 1 MODULE limrhg 1 MODULE limrhg_2 2 2 !!====================================================================== 3 !! *** MODULE limrhg ***3 !! *** MODULE limrhg_2 *** 4 4 !! Ice rheology : performs sea ice rheology 5 5 !!====================================================================== … … 10 10 !! " " ! 09-09 (G. Madec) Huge verctor optimisation 11 11 !!---------------------------------------------------------------------- 12 #if defined key_ ice_lim13 !!---------------------------------------------------------------------- 14 !! 'key_ ice_lim' LIMsea-ice model15 !!---------------------------------------------------------------------- 16 !!---------------------------------------------------------------------- 17 !! lim_rhg : computes ice velocities12 #if defined key_lim2 13 !!---------------------------------------------------------------------- 14 !! 'key_lim2' LIM 2.0 sea-ice model 15 !!---------------------------------------------------------------------- 16 !!---------------------------------------------------------------------- 17 !! lim_rhg_2 : computes ice velocities 18 18 !!---------------------------------------------------------------------- 19 19 USE par_oce ! ocean parameter 20 20 USE ice_oce ! ice variables 21 21 USE sbc_ice ! surface boundary condition: ice variables 22 USE dom_ice 22 USE dom_ice_2 ! domaine: ice variables 23 23 USE phycst ! physical constant 24 USE ice 24 USE ice_2 ! ice variables 25 25 USE lbclnk ! lateral boundary condition 26 26 USE lib_mpp ! MPP library … … 31 31 PRIVATE 32 32 33 PUBLIC lim_rhg 33 PUBLIC lim_rhg_2 ! routine called by lim_dyn 34 34 35 35 REAL(wp) :: rzero = 0.e0 ! constant value: zero … … 46 46 CONTAINS 47 47 48 SUBROUTINE lim_rhg ( k_j1, k_jpj )48 SUBROUTINE lim_rhg_2( k_j1, k_jpj ) 49 49 !!------------------------------------------------------------------- 50 !! *** SUBROUTINR lim_rhg ***50 !! *** SUBROUTINR lim_rhg_2 *** 51 51 !! 52 52 !! ** purpose : determines the velocity field of sea ice by using … … 567 567 ENDIF 568 568 569 END SUBROUTINE lim_rhg 569 END SUBROUTINE lim_rhg_2 570 570 571 571 #else 572 572 !!---------------------------------------------------------------------- 573 !! Default option Dummy module NOLIM sea-ice model573 !! Default option Dummy module NO 2.0 LIM sea-ice model 574 574 !!---------------------------------------------------------------------- 575 575 CONTAINS 576 SUBROUTINE lim_rhg ( k1 , k2 )! Dummy routine577 WRITE(*,*) 'lim_rhg : You should not have seen this print! error?', k1, k2578 END SUBROUTINE lim_rhg 576 SUBROUTINE lim_rhg_2( k1 , k2 ) ! Dummy routine 577 WRITE(*,*) 'lim_rhg_2: You should not have seen this print! error?', k1, k2 578 END SUBROUTINE lim_rhg_2 579 579 #endif 580 580 581 581 !!============================================================================== 582 END MODULE limrhg 582 END MODULE limrhg_2 -
branches/dev_001_SBC/NEMO/LIM_SRC/limrst.F90
r811 r881 1 MODULE limrst 1 MODULE limrst_2 2 2 !!====================================================================== 3 !! *** MODULE limrst ***3 !! *** MODULE limrst_2 *** 4 4 !! Ice restart : write the ice restart file 5 5 !!====================================================================== … … 7 7 !! ! 06-07 (S. Masson) use IOM for restart read/write 8 8 !!---------------------------------------------------------------------- 9 #if defined key_ ice_lim10 !!---------------------------------------------------------------------- 11 !! 'key_ ice_lim' : LIMsea-ice model12 !!---------------------------------------------------------------------- 13 !!---------------------------------------------------------------------- 14 !! lim_rst_opn : open ice restart file15 !! lim_rst_write : write of the ice restart file16 !! lim_rst_read : read the ice restart file17 !!---------------------------------------------------------------------- 18 USE ice 9 #if defined key_lim2 10 !!---------------------------------------------------------------------- 11 !! 'key_lim2' : LIM 2.0 sea-ice model 12 !!---------------------------------------------------------------------- 13 !!---------------------------------------------------------------------- 14 !! lim_rst_opn_2 : open ice restart file 15 !! lim_rst_write_2 : write of the ice restart file 16 !! lim_rst_read_2 : read the ice restart file 17 !!---------------------------------------------------------------------- 18 USE ice_2 19 19 USE sbc_oce 20 20 USE sbc_ice … … 27 27 PRIVATE 28 28 29 PUBLIC lim_rst_opn ! routine called by ??? module30 PUBLIC lim_rst_write ! routine called by lim_step.F9031 PUBLIC lim_rst_read ! routine called by lim_init.F9029 PUBLIC lim_rst_opn_2 ! routine called by sbcice_lim_2.F90 30 PUBLIC lim_rst_write_2 ! routine called by sbcice_lim_2.F90 31 PUBLIC lim_rst_read_2 ! routine called by iceini_2.F90 32 32 33 33 LOGICAL, PUBLIC :: lrst_ice !: logical to control the ice restart write … … 42 42 CONTAINS 43 43 44 SUBROUTINE lim_rst_opn ( kt )45 !!---------------------------------------------------------------------- 46 !! *** lim_rst_opn ***44 SUBROUTINE lim_rst_opn_2( kt ) 45 !!---------------------------------------------------------------------- 46 !! *** lim_rst_opn_2 *** 47 47 !! 48 48 !! ** purpose : output of sea-ice variable in a netcdf file … … 82 82 ENDIF 83 83 ! 84 END SUBROUTINE lim_rst_opn 85 86 87 SUBROUTINE lim_rst_write ( kt )88 !!---------------------------------------------------------------------- 89 !! *** lim_rst_write ***84 END SUBROUTINE lim_rst_opn_2 85 86 87 SUBROUTINE lim_rst_write_2( kt ) 88 !!---------------------------------------------------------------------- 89 !! *** lim_rst_write_2 *** 90 90 !! 91 91 !! ** purpose : output of sea-ice variable in a netcdf file … … 100 100 IF( iter == nitrst ) THEN 101 101 IF(lwp) WRITE(numout,*) 102 IF(lwp) WRITE(numout,*) 'lim_rst_write : write ice restart file kt =', kt103 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~ '104 ENDIF 105 106 ! Write in numriw (if iter 102 IF(lwp) WRITE(numout,*) 'lim_rst_write_2 : write ice restart file kt =', kt 103 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~~~' 104 ENDIF 105 106 ! Write in numriw (if iter == nitrst) 107 107 ! ------------------ 108 108 ! ! calendar control … … 164 164 ENDIF 165 165 ! 166 END SUBROUTINE lim_rst_write 167 168 169 SUBROUTINE lim_rst_read 170 !!---------------------------------------------------------------------- 171 !! *** lim_rst_read ***166 END SUBROUTINE lim_rst_write_2 167 168 169 SUBROUTINE lim_rst_read_2 170 !!---------------------------------------------------------------------- 171 !! *** lim_rst_read_2 *** 172 172 !! 173 173 !! ** purpose : read of sea-ice variable restart in a netcdf file … … 178 178 IF(lwp) THEN 179 179 WRITE(numout,*) 180 WRITE(numout,*) 'lim_rst_read : read ice NetCDF restart file'181 WRITE(numout,*) '~~~~~~~~~~~~ '180 WRITE(numout,*) 'lim_rst_read_2 : read ice NetCDF restart file' 181 WRITE(numout,*) '~~~~~~~~~~~~~~' 182 182 ENDIF 183 183 … … 247 247 CALL iom_close( numrir ) 248 248 ! 249 END SUBROUTINE lim_rst_read 249 END SUBROUTINE lim_rst_read_2 250 250 251 251 #else 252 252 !!---------------------------------------------------------------------- 253 !! Default option : Empty module NO LIMsea-ice model253 !! Default option : Empty module NO LIM 2.0 sea-ice model 254 254 !!---------------------------------------------------------------------- 255 255 #endif 256 256 257 257 !!====================================================================== 258 END MODULE limrst 258 END MODULE limrst_2 -
branches/dev_001_SBC/NEMO/LIM_SRC/limsbc.F90
r878 r881 1 MODULE limsbc 1 MODULE limsbc_2 2 2 !!====================================================================== 3 !! *** MODULE limsbc ***3 !! *** MODULE limsbc_2 *** 4 4 !! computation of the flux at the sea ice/ocean interface 5 5 !!====================================================================== … … 8 8 !! 06-07 (G. Madec) surface module 9 9 !!---------------------------------------------------------------------- 10 #if defined key_ ice_lim11 !!---------------------------------------------------------------------- 12 !! 'key_ ice_lim' LIMsea-ice model13 !!---------------------------------------------------------------------- 14 !!---------------------------------------------------------------------- 15 !! lim_sbc : flux at the ice / ocean interface10 #if defined key_lim2 11 !!---------------------------------------------------------------------- 12 !! 'key_lim2' LIM 2.0 sea-ice model 13 !!---------------------------------------------------------------------- 14 !!---------------------------------------------------------------------- 15 !! lim_sbc_2 : flux at the ice / ocean interface 16 16 !!---------------------------------------------------------------------- 17 17 USE par_oce ! ocean parameters … … 22 22 USE ocfzpt ! surface ocean freezing point 23 23 USE ice_oce ! sea-ice variable 24 USE ice 25 USE iceini 24 USE ice_2 ! LIM sea-ice variables 25 USE iceini_2 ! ??? 26 26 USE dynspg_oce ! choice of the surface pressure gradient scheme 27 27 … … 34 34 PRIVATE 35 35 36 PUBLIC lim_sbc ! called by lim_step36 PUBLIC lim_sbc_2 ! called by sbc_ice_lim_2 37 37 38 38 REAL(wp) :: epsi16 = 1.e-16 ! constant values … … 44 44 !!---------------------------------------------------------------------- 45 45 !! LIM 2.0, UCL-LOCEAN-IPSL (2006) 46 !! $ Header: $46 !! $ Id: $ 47 47 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 48 48 !!---------------------------------------------------------------------- … … 50 50 CONTAINS 51 51 52 SUBROUTINE lim_sbc ( kt )52 SUBROUTINE lim_sbc_2( kt ) 53 53 !!------------------------------------------------------------------- 54 !! *** ROUTINE lim_sbc ***54 !! *** ROUTINE lim_sbc_2 *** 55 55 !! 56 56 !! ** Purpose : Update surface ocean boundary condition over areas … … 96 96 IF( kt == nit000 ) THEN 97 97 IF(lwp) WRITE(numout,*) 98 IF(lwp) WRITE(numout,*) 'lim_sbc : LIMsea-ice - surface boundary condition'99 IF(lwp) WRITE(numout,*) '~~~~~~~ '98 IF(lwp) WRITE(numout,*) 'lim_sbc_2 : LIM 2.0 sea-ice - surface boundary condition' 99 IF(lwp) WRITE(numout,*) '~~~~~~~~~ ' 100 100 ENDIF 101 101 … … 241 241 ENDIF 242 242 243 END SUBROUTINE lim_sbc 243 END SUBROUTINE lim_sbc_2 244 244 245 245 #else 246 246 !!---------------------------------------------------------------------- 247 !! Default option : Dummy module NO LIMsea-ice model247 !! Default option : Dummy module NO LIM 2.0 sea-ice model 248 248 !!---------------------------------------------------------------------- 249 249 CONTAINS 250 SUBROUTINE lim_sbc ! Dummy routine251 END SUBROUTINE lim_sbc 250 SUBROUTINE lim_sbc_2 ! Dummy routine 251 END SUBROUTINE lim_sbc_2 252 252 #endif 253 253 254 254 !!====================================================================== 255 END MODULE limsbc 255 END MODULE limsbc_2 -
branches/dev_001_SBC/NEMO/LIM_SRC/limtab.F90
r699 r881 1 MODULE limtab 1 MODULE limtab_2 2 2 !!====================================================================== 3 !! *** MODULE limtab ***3 !! *** MODULE limtab_2 *** 4 4 !! transform 1D (2D) array to a 2D (1D) table 5 5 !!====================================================================== 6 #if defined key_ ice_lim6 #if defined key_lim2 7 7 !!---------------------------------------------------------------------- 8 8 !! tab_2d_1d : 2-D to 1-D … … 16 16 17 17 !! * Routine accessibility 18 PUBLIC tab_2d_1d ! called by lim_ther19 PUBLIC tab_1d_2d ! called by lim_ther18 PUBLIC tab_2d_1d_2 ! called by lim_ther 19 PUBLIC tab_1d_2d_2 ! called by lim_ther 20 20 21 21 !!---------------------------------------------------------------------- … … 26 26 CONTAINS 27 27 28 SUBROUTINE tab_2d_1d ( ndim1d, tab1d, tab2d, ndim2d_x, ndim2d_y, tab_ind )28 SUBROUTINE tab_2d_1d_2 ( ndim1d, tab1d, tab2d, ndim2d_x, ndim2d_y, tab_ind ) 29 29 30 30 INTEGER, INTENT(in) :: & … … 49 49 END DO 50 50 51 END SUBROUTINE tab_2d_1d 51 END SUBROUTINE tab_2d_1d_2 52 52 53 53 54 SUBROUTINE tab_1d_2d ( ndim1d, tab2d, tab_ind, tab1d, ndim2d_x, ndim2d_y )54 SUBROUTINE tab_1d_2d_2 ( ndim1d, tab2d, tab_ind, tab1d, ndim2d_x, ndim2d_y ) 55 55 56 56 INTEGER, INTENT ( in) :: & … … 75 75 END DO 76 76 77 END SUBROUTINE tab_1d_2d 77 END SUBROUTINE tab_1d_2d_2 78 78 79 79 #endif 80 END MODULE limtab 80 END MODULE limtab_2 -
branches/dev_001_SBC/NEMO/LIM_SRC/limthd.F90
r879 r881 1 MODULE limthd 1 MODULE limthd_2 2 2 !!====================================================================== 3 !! *** MODULE limthd ***3 !! *** MODULE limthd_2 *** 4 4 !! LIM thermo ice model : ice thermodynamic 5 5 !!====================================================================== … … 8 8 !! 2.0 ! 03-08 (C. Ethe) add lim_thd_init 9 9 !!--------------------------------------------------------------------- 10 #if defined key_ ice_lim11 !!---------------------------------------------------------------------- 12 !! 'key_ ice_lim' : LIMsea-ice model13 !!---------------------------------------------------------------------- 14 !! lim_thd : thermodynamic of sea ice15 !! lim_thd_init : initialisation of sea-ice thermodynamic10 #if defined key_lim2 11 !!---------------------------------------------------------------------- 12 !! 'key_lim2' : LIM 2.0 sea-ice model 13 !!---------------------------------------------------------------------- 14 !! lim_thd_2 : thermodynamic of sea ice 15 !! lim_thd_init_2 : initialisation of sea-ice thermodynamic 16 16 !!---------------------------------------------------------------------- 17 17 USE phycst ! physical constants … … 19 19 USE lbclnk 20 20 USE in_out_manager ! I/O manager 21 USE ice 21 USE ice_2 ! LIM sea-ice variables 22 22 USE ice_oce ! sea-ice/ocean variables 23 23 USE sbc_oce ! 24 24 USE sbc_ice ! 25 USE thd_ice 26 USE dom_ice 27 USE iceini 28 USE limthd_zdf 29 USE limthd_lac 30 USE limtab 25 USE thd_ice_2 ! LIM thermodynamic sea-ice variables 26 USE dom_ice_2 ! LIM sea-ice domain 27 USE iceini_2 28 USE limthd_zdf_2 29 USE limthd_lac_2 30 USE limtab_2 31 31 USE prtctl ! Print control 32 32 … … 34 34 PRIVATE 35 35 36 PUBLIC lim_thd 36 PUBLIC lim_thd_2 ! called by lim_step 37 37 38 38 REAL(wp) :: epsi20 = 1.e-20 , & ! constant values … … 53 53 CONTAINS 54 54 55 SUBROUTINE lim_thd ( kt )55 SUBROUTINE lim_thd_2( kt ) 56 56 !!------------------------------------------------------------------- 57 !! *** ROUTINE lim_thd ***57 !! *** ROUTINE lim_thd_2 *** 58 58 !! 59 59 !! ** Purpose : This routine manages the ice thermodynamic. … … 93 93 !!------------------------------------------------------------------- 94 94 95 IF( kt == nit000 ) CALL lim_thd_init ! Initialization (first time-step only)95 IF( kt == nit000 ) CALL lim_thd_init_2 ! Initialization (first time-step only) 96 96 97 97 !-------------------------------------------! … … 245 245 246 246 ! put the variable in a 1-D array for thermodynamics process 247 CALL tab_2d_1d ( nbpb, frld_1d (1:nbpb) , frld , jpi, jpj, npb(1:nbpb) )248 CALL tab_2d_1d ( nbpb, h_ice_1d (1:nbpb) , hicif , jpi, jpj, npb(1:nbpb) )249 CALL tab_2d_1d ( nbpb, h_snow_1d (1:nbpb) , hsnif , jpi, jpj, npb(1:nbpb) )250 CALL tab_2d_1d ( nbpb, sist_1d (1:nbpb) , sist , jpi, jpj, npb(1:nbpb) )251 CALL tab_2d_1d ( nbpb, tbif_1d (1:nbpb , 1 ), tbif(:,:,1), jpi, jpj, npb(1:nbpb) )252 CALL tab_2d_1d ( nbpb, tbif_1d (1:nbpb , 2 ), tbif(:,:,2), jpi, jpj, npb(1:nbpb) )253 CALL tab_2d_1d ( nbpb, tbif_1d (1:nbpb , 3 ), tbif(:,:,3), jpi, jpj, npb(1:nbpb) )254 CALL tab_2d_1d ( nbpb, qsr_ice_1d (1:nbpb) , qsr_ice , jpi, jpj, npb(1:nbpb) )255 CALL tab_2d_1d ( nbpb, fr1_i0_1d (1:nbpb) , fr1_i0 , jpi, jpj, npb(1:nbpb) )256 CALL tab_2d_1d ( nbpb, fr2_i0_1d (1:nbpb) , fr2_i0 , jpi, jpj, npb(1:nbpb) )257 CALL tab_2d_1d ( nbpb, qns_ice_1d (1:nbpb) , qns_ice , jpi, jpj, npb(1:nbpb) )247 CALL tab_2d_1d_2( nbpb, frld_1d (1:nbpb) , frld , jpi, jpj, npb(1:nbpb) ) 248 CALL tab_2d_1d_2( nbpb, h_ice_1d (1:nbpb) , hicif , jpi, jpj, npb(1:nbpb) ) 249 CALL tab_2d_1d_2( nbpb, h_snow_1d (1:nbpb) , hsnif , jpi, jpj, npb(1:nbpb) ) 250 CALL tab_2d_1d_2( nbpb, sist_1d (1:nbpb) , sist , jpi, jpj, npb(1:nbpb) ) 251 CALL tab_2d_1d_2( nbpb, tbif_1d (1:nbpb , 1 ), tbif(:,:,1), jpi, jpj, npb(1:nbpb) ) 252 CALL tab_2d_1d_2( nbpb, tbif_1d (1:nbpb , 2 ), tbif(:,:,2), jpi, jpj, npb(1:nbpb) ) 253 CALL tab_2d_1d_2( nbpb, tbif_1d (1:nbpb , 3 ), tbif(:,:,3), jpi, jpj, npb(1:nbpb) ) 254 CALL tab_2d_1d_2( nbpb, qsr_ice_1d (1:nbpb) , qsr_ice , jpi, jpj, npb(1:nbpb) ) 255 CALL tab_2d_1d_2( nbpb, fr1_i0_1d (1:nbpb) , fr1_i0 , jpi, jpj, npb(1:nbpb) ) 256 CALL tab_2d_1d_2( nbpb, fr2_i0_1d (1:nbpb) , fr2_i0 , jpi, jpj, npb(1:nbpb) ) 257 CALL tab_2d_1d_2( nbpb, qns_ice_1d (1:nbpb) , qns_ice , jpi, jpj, npb(1:nbpb) ) 258 258 #if ! defined key_coupled 259 CALL tab_2d_1d ( nbpb, qla_ice_1d (1:nbpb) , qla_ice , jpi, jpj, npb(1:nbpb) )260 CALL tab_2d_1d ( nbpb, dqla_ice_1d(1:nbpb) , dqla_ice , jpi, jpj, npb(1:nbpb) )259 CALL tab_2d_1d_2( nbpb, qla_ice_1d (1:nbpb) , qla_ice , jpi, jpj, npb(1:nbpb) ) 260 CALL tab_2d_1d_2( nbpb, dqla_ice_1d(1:nbpb) , dqla_ice , jpi, jpj, npb(1:nbpb) ) 261 261 #endif 262 CALL tab_2d_1d ( nbpb, dqns_ice_1d(1:nbpb) , dqns_ice , jpi, jpj, npb(1:nbpb) )263 CALL tab_2d_1d ( nbpb, tfu_1d (1:nbpb) , tfu , jpi, jpj, npb(1:nbpb) )264 CALL tab_2d_1d ( nbpb, sprecip_1d (1:nbpb) , sprecip , jpi, jpj, npb(1:nbpb) )265 CALL tab_2d_1d ( nbpb, fbif_1d (1:nbpb) , fbif , jpi, jpj, npb(1:nbpb) )266 CALL tab_2d_1d ( nbpb, thcm_1d (1:nbpb) , thcm , jpi, jpj, npb(1:nbpb) )267 CALL tab_2d_1d ( nbpb, qldif_1d (1:nbpb) , qldif , jpi, jpj, npb(1:nbpb) )268 CALL tab_2d_1d ( nbpb, qstbif_1d (1:nbpb) , qstoif , jpi, jpj, npb(1:nbpb) )269 CALL tab_2d_1d ( nbpb, rdmicif_1d (1:nbpb) , rdmicif , jpi, jpj, npb(1:nbpb) )270 CALL tab_2d_1d ( nbpb, dmgwi_1d (1:nbpb) , dmgwi , jpi, jpj, npb(1:nbpb) )271 CALL tab_2d_1d ( nbpb, qlbbq_1d (1:nbpb) , zqlbsbq , jpi, jpj, npb(1:nbpb) )262 CALL tab_2d_1d_2( nbpb, dqns_ice_1d(1:nbpb) , dqns_ice , jpi, jpj, npb(1:nbpb) ) 263 CALL tab_2d_1d_2( nbpb, tfu_1d (1:nbpb) , tfu , jpi, jpj, npb(1:nbpb) ) 264 CALL tab_2d_1d_2( nbpb, sprecip_1d (1:nbpb) , sprecip , jpi, jpj, npb(1:nbpb) ) 265 CALL tab_2d_1d_2( nbpb, fbif_1d (1:nbpb) , fbif , jpi, jpj, npb(1:nbpb) ) 266 CALL tab_2d_1d_2( nbpb, thcm_1d (1:nbpb) , thcm , jpi, jpj, npb(1:nbpb) ) 267 CALL tab_2d_1d_2( nbpb, qldif_1d (1:nbpb) , qldif , jpi, jpj, npb(1:nbpb) ) 268 CALL tab_2d_1d_2( nbpb, qstbif_1d (1:nbpb) , qstoif , jpi, jpj, npb(1:nbpb) ) 269 CALL tab_2d_1d_2( nbpb, rdmicif_1d (1:nbpb) , rdmicif , jpi, jpj, npb(1:nbpb) ) 270 CALL tab_2d_1d_2( nbpb, dmgwi_1d (1:nbpb) , dmgwi , jpi, jpj, npb(1:nbpb) ) 271 CALL tab_2d_1d_2( nbpb, qlbbq_1d (1:nbpb) , zqlbsbq , jpi, jpj, npb(1:nbpb) ) 272 272 273 CALL lim_thd_zdf ( 1, nbpb ) ! compute ice growth273 CALL lim_thd_zdf_2( 1, nbpb ) ! compute ice growth 274 274 275 275 ! back to the geographic grid. 276 CALL tab_1d_2d ( nbpb, frld , npb, frld_1d (1:nbpb) , jpi, jpj )277 CALL tab_1d_2d ( nbpb, hicif , npb, h_ice_1d (1:nbpb) , jpi, jpj )278 CALL tab_1d_2d ( nbpb, hsnif , npb, h_snow_1d (1:nbpb) , jpi, jpj )279 CALL tab_1d_2d ( nbpb, sist , npb, sist_1d (1:nbpb) , jpi, jpj )280 CALL tab_1d_2d ( nbpb, tbif(:,:,1), npb, tbif_1d (1:nbpb , 1 ), jpi, jpj )281 CALL tab_1d_2d ( nbpb, tbif(:,:,2), npb, tbif_1d (1:nbpb , 2 ), jpi, jpj )282 CALL tab_1d_2d ( nbpb, tbif(:,:,3), npb, tbif_1d (1:nbpb , 3 ), jpi, jpj )283 CALL tab_1d_2d ( nbpb, fscmbq , npb, fscbq_1d (1:nbpb) , jpi, jpj )284 CALL tab_1d_2d ( nbpb, ffltbif , npb, fltbif_1d (1:nbpb) , jpi, jpj )285 CALL tab_1d_2d ( nbpb, fstric , npb, fstbif_1d (1:nbpb) , jpi, jpj )286 CALL tab_1d_2d ( nbpb, qldif , npb, qldif_1d (1:nbpb) , jpi, jpj )287 CALL tab_1d_2d ( nbpb, qfvbq , npb, qfvbq_1d (1:nbpb) , jpi, jpj )288 CALL tab_1d_2d ( nbpb, qstoif , npb, qstbif_1d (1:nbpb) , jpi, jpj )289 CALL tab_1d_2d ( nbpb, rdmicif , npb, rdmicif_1d(1:nbpb) , jpi, jpj )290 CALL tab_1d_2d ( nbpb, dmgwi , npb, dmgwi_1d (1:nbpb) , jpi, jpj )291 CALL tab_1d_2d ( nbpb, rdmsnif , npb, rdmsnif_1d(1:nbpb) , jpi, jpj )292 CALL tab_1d_2d ( nbpb, rdvosif , npb, dvsbq_1d (1:nbpb) , jpi, jpj )293 CALL tab_1d_2d ( nbpb, rdvobif , npb, dvbbq_1d (1:nbpb) , jpi, jpj )294 CALL tab_1d_2d ( nbpb, fdvolif , npb, dvlbq_1d (1:nbpb) , jpi, jpj )295 CALL tab_1d_2d ( nbpb, rdvonif , npb, dvnbq_1d (1:nbpb) , jpi, jpj )276 CALL tab_1d_2d_2( nbpb, frld , npb, frld_1d (1:nbpb) , jpi, jpj ) 277 CALL tab_1d_2d_2( nbpb, hicif , npb, h_ice_1d (1:nbpb) , jpi, jpj ) 278 CALL tab_1d_2d_2( nbpb, hsnif , npb, h_snow_1d (1:nbpb) , jpi, jpj ) 279 CALL tab_1d_2d_2( nbpb, sist , npb, sist_1d (1:nbpb) , jpi, jpj ) 280 CALL tab_1d_2d_2( nbpb, tbif(:,:,1), npb, tbif_1d (1:nbpb , 1 ), jpi, jpj ) 281 CALL tab_1d_2d_2( nbpb, tbif(:,:,2), npb, tbif_1d (1:nbpb , 2 ), jpi, jpj ) 282 CALL tab_1d_2d_2( nbpb, tbif(:,:,3), npb, tbif_1d (1:nbpb , 3 ), jpi, jpj ) 283 CALL tab_1d_2d_2( nbpb, fscmbq , npb, fscbq_1d (1:nbpb) , jpi, jpj ) 284 CALL tab_1d_2d_2( nbpb, ffltbif , npb, fltbif_1d (1:nbpb) , jpi, jpj ) 285 CALL tab_1d_2d_2( nbpb, fstric , npb, fstbif_1d (1:nbpb) , jpi, jpj ) 286 CALL tab_1d_2d_2( nbpb, qldif , npb, qldif_1d (1:nbpb) , jpi, jpj ) 287 CALL tab_1d_2d_2( nbpb, qfvbq , npb, qfvbq_1d (1:nbpb) , jpi, jpj ) 288 CALL tab_1d_2d_2( nbpb, qstoif , npb, qstbif_1d (1:nbpb) , jpi, jpj ) 289 CALL tab_1d_2d_2( nbpb, rdmicif , npb, rdmicif_1d(1:nbpb) , jpi, jpj ) 290 CALL tab_1d_2d_2( nbpb, dmgwi , npb, dmgwi_1d (1:nbpb) , jpi, jpj ) 291 CALL tab_1d_2d_2( nbpb, rdmsnif , npb, rdmsnif_1d(1:nbpb) , jpi, jpj ) 292 CALL tab_1d_2d_2( nbpb, rdvosif , npb, dvsbq_1d (1:nbpb) , jpi, jpj ) 293 CALL tab_1d_2d_2( nbpb, rdvobif , npb, dvbbq_1d (1:nbpb) , jpi, jpj ) 294 CALL tab_1d_2d_2( nbpb, fdvolif , npb, dvlbq_1d (1:nbpb) , jpi, jpj ) 295 CALL tab_1d_2d_2( nbpb, rdvonif , npb, dvnbq_1d (1:nbpb) , jpi, jpj ) 296 296 297 297 … … 348 348 349 349 !...Put the variable in a 1-D array for lateral accretion 350 CALL tab_2d_1d ( nbpac, frld_1d (1:nbpac) , frld , jpi, jpj, npac(1:nbpac) )351 CALL tab_2d_1d ( nbpac, h_snow_1d (1:nbpac) , hsnif , jpi, jpj, npac(1:nbpac) )352 CALL tab_2d_1d ( nbpac, h_ice_1d (1:nbpac) , hicif , jpi, jpj, npac(1:nbpac) )353 CALL tab_2d_1d ( nbpac, tbif_1d (1:nbpac , 1 ), tbif(:,:,1), jpi, jpj, npac(1:nbpac) )354 CALL tab_2d_1d ( nbpac, tbif_1d (1:nbpac , 2 ), tbif(:,:,2), jpi, jpj, npac(1:nbpac) )355 CALL tab_2d_1d ( nbpac, tbif_1d (1:nbpac , 3 ), tbif(:,:,3), jpi, jpj, npac(1:nbpac) )356 CALL tab_2d_1d ( nbpac, qldif_1d (1:nbpac) , qldif , jpi, jpj, npac(1:nbpac) )357 CALL tab_2d_1d ( nbpac, qcmif_1d (1:nbpac) , qcmif , jpi, jpj, npac(1:nbpac) )358 CALL tab_2d_1d ( nbpac, qstbif_1d (1:nbpac) , qstoif , jpi, jpj, npac(1:nbpac) )359 CALL tab_2d_1d ( nbpac, rdmicif_1d(1:nbpac) , rdmicif , jpi, jpj, npac(1:nbpac) )360 CALL tab_2d_1d ( nbpac, dvlbq_1d (1:nbpac) , fdvolif , jpi, jpj, npac(1:nbpac) )361 CALL tab_2d_1d ( nbpac, tfu_1d (1:nbpac) , tfu , jpi, jpj, npac(1:nbpac) )350 CALL tab_2d_1d_2( nbpac, frld_1d (1:nbpac) , frld , jpi, jpj, npac(1:nbpac) ) 351 CALL tab_2d_1d_2( nbpac, h_snow_1d (1:nbpac) , hsnif , jpi, jpj, npac(1:nbpac) ) 352 CALL tab_2d_1d_2( nbpac, h_ice_1d (1:nbpac) , hicif , jpi, jpj, npac(1:nbpac) ) 353 CALL tab_2d_1d_2( nbpac, tbif_1d (1:nbpac , 1 ), tbif(:,:,1), jpi, jpj, npac(1:nbpac) ) 354 CALL tab_2d_1d_2( nbpac, tbif_1d (1:nbpac , 2 ), tbif(:,:,2), jpi, jpj, npac(1:nbpac) ) 355 CALL tab_2d_1d_2( nbpac, tbif_1d (1:nbpac , 3 ), tbif(:,:,3), jpi, jpj, npac(1:nbpac) ) 356 CALL tab_2d_1d_2( nbpac, qldif_1d (1:nbpac) , qldif , jpi, jpj, npac(1:nbpac) ) 357 CALL tab_2d_1d_2( nbpac, qcmif_1d (1:nbpac) , qcmif , jpi, jpj, npac(1:nbpac) ) 358 CALL tab_2d_1d_2( nbpac, qstbif_1d (1:nbpac) , qstoif , jpi, jpj, npac(1:nbpac) ) 359 CALL tab_2d_1d_2( nbpac, rdmicif_1d(1:nbpac) , rdmicif , jpi, jpj, npac(1:nbpac) ) 360 CALL tab_2d_1d_2( nbpac, dvlbq_1d (1:nbpac) , fdvolif , jpi, jpj, npac(1:nbpac) ) 361 CALL tab_2d_1d_2( nbpac, tfu_1d (1:nbpac) , tfu , jpi, jpj, npac(1:nbpac) ) 362 362 363 363 ! call lateral accretion routine. 364 CALL lim_thd_lac ( 1 , nbpac )364 CALL lim_thd_lac_2( 1 , nbpac ) 365 365 366 366 ! back to the geographic grid 367 CALL tab_1d_2d ( nbpac, frld , npac(1:nbpac), frld_1d (1:nbpac) , jpi, jpj )368 CALL tab_1d_2d ( nbpac, hsnif , npac(1:nbpac), h_snow_1d (1:nbpac) , jpi, jpj )369 CALL tab_1d_2d ( nbpac, hicif , npac(1:nbpac), h_ice_1d (1:nbpac) , jpi, jpj )370 CALL tab_1d_2d ( nbpac, tbif(:,:,1), npac(1:nbpac), tbif_1d (1:nbpac , 1 ), jpi, jpj )371 CALL tab_1d_2d ( nbpac, tbif(:,:,2), npac(1:nbpac), tbif_1d (1:nbpac , 2 ), jpi, jpj )372 CALL tab_1d_2d ( nbpac, tbif(:,:,3), npac(1:nbpac), tbif_1d (1:nbpac , 3 ), jpi, jpj )373 CALL tab_1d_2d ( nbpac, qstoif , npac(1:nbpac), qstbif_1d (1:nbpac) , jpi, jpj )374 CALL tab_1d_2d ( nbpac, rdmicif , npac(1:nbpac), rdmicif_1d(1:nbpac) , jpi, jpj )375 CALL tab_1d_2d ( nbpac, fdvolif , npac(1:nbpac), dvlbq_1d (1:nbpac) , jpi, jpj )367 CALL tab_1d_2d_2( nbpac, frld , npac(1:nbpac), frld_1d (1:nbpac) , jpi, jpj ) 368 CALL tab_1d_2d_2( nbpac, hsnif , npac(1:nbpac), h_snow_1d (1:nbpac) , jpi, jpj ) 369 CALL tab_1d_2d_2( nbpac, hicif , npac(1:nbpac), h_ice_1d (1:nbpac) , jpi, jpj ) 370 CALL tab_1d_2d_2( nbpac, tbif(:,:,1), npac(1:nbpac), tbif_1d (1:nbpac , 1 ), jpi, jpj ) 371 CALL tab_1d_2d_2( nbpac, tbif(:,:,2), npac(1:nbpac), tbif_1d (1:nbpac , 2 ), jpi, jpj ) 372 CALL tab_1d_2d_2( nbpac, tbif(:,:,3), npac(1:nbpac), tbif_1d (1:nbpac , 3 ), jpi, jpj ) 373 CALL tab_1d_2d_2( nbpac, qstoif , npac(1:nbpac), qstbif_1d (1:nbpac) , jpi, jpj ) 374 CALL tab_1d_2d_2( nbpac, rdmicif , npac(1:nbpac), rdmicif_1d(1:nbpac) , jpi, jpj ) 375 CALL tab_1d_2d_2( nbpac, fdvolif , npac(1:nbpac), dvlbq_1d (1:nbpac) , jpi, jpj ) 376 376 377 377 ENDIF … … 391 391 IF(ln_ctl) THEN 392 392 CALL prt_ctl_info(' lim_thd end ') 393 CALL prt_ctl(tab2d_1=hicif , clinfo1=' hicif : ', tab2d_2=hsnif , clinfo2=' hsnif : ') 394 CALL prt_ctl(tab2d_1=frld , clinfo1=' frld : ', tab2d_2=hicifp , clinfo2=' hicifp : ') 395 CALL prt_ctl(tab2d_1=phicif , clinfo1=' phicif : ', tab2d_2=pfrld , clinfo2=' pfrld : ') 396 CALL prt_ctl(tab2d_1=sist , clinfo1=' sist : ', tab2d_2=tbif(:,:,1), clinfo2=' tbif 1 : ') 397 CALL prt_ctl(tab2d_1=tbif(:,:,2), clinfo1=' tbif 2 : ', tab2d_2=tbif(:,:,3), clinfo2=' tbif 3 : ') 398 CALL prt_ctl(tab2d_1=fdtcn , clinfo1=' fdtcn : ', tab2d_2=qdtcn , clinfo2=' qdtcn : ') 399 CALL prt_ctl(tab2d_1=qstoif , clinfo1=' qstoif : ', tab2d_2=fsbbq , clinfo2=' fsbbq : ') 393 CALL prt_ctl(tab2d_1=hicif , clinfo1=' lim_thd: hicif : ', tab2d_2=hsnif , clinfo2=' hsnif : ') 394 CALL prt_ctl(tab2d_1=frld , clinfo1=' lim_thd: frld : ', tab2d_2=hicifp, clinfo2=' hicifp : ') 395 CALL prt_ctl(tab2d_1=phicif, clinfo1=' lim_thd: phicif : ', tab2d_2=pfrld , clinfo2=' pfrld : ') 396 CALL prt_ctl(tab2d_1=sist , clinfo1=' lim_thd: sist : ') 397 CALL prt_ctl(tab2d_1=tbif(:,:,1), clinfo1=' lim_thd: tbif 1 : ') 398 CALL prt_ctl(tab2d_1=tbif(:,:,2), clinfo1=' lim_thd: tbif 2 : ') 399 CALL prt_ctl(tab2d_1=tbif(:,:,3), clinfo1=' lim_thd: tbif 3 : ') 400 CALL prt_ctl(tab2d_1=fdtcn , clinfo1=' lim_thd: fdtcn : ', tab2d_2=qdtcn , clinfo2=' qdtcn : ') 401 CALL prt_ctl(tab2d_1=qstoif, clinfo1=' lim_thd: qstoif : ', tab2d_2=fsbbq , clinfo2=' fsbbq : ') 400 402 ENDIF 401 403 ! 402 END SUBROUTINE lim_thd403 404 405 SUBROUTINE lim_thd_init404 END SUBROUTINE lim_thd_2 405 406 407 SUBROUTINE lim_thd_init_2 406 408 !!------------------------------------------------------------------- 407 !! *** ROUTINE lim_thd_init ***409 !! *** ROUTINE lim_thd_init_2 *** 408 410 !! 409 411 !! ** Purpose : Physical constants and parameters linked to the ice … … 427 429 IF(lwp) THEN 428 430 WRITE(numout,*) 429 WRITE(numout,*)'lim_thd_init 430 WRITE(numout,*)'~~~~~~~~~~~~ '431 WRITE(numout,*)'lim_thd_init_2: ice parameters for ice thermodynamic computation ' 432 WRITE(numout,*)'~~~~~~~~~~~~~~' 431 433 WRITE(numout,*)' maximum melting at the bottom hmelt = ', hmelt 432 434 WRITE(numout,*)' ice thick. for lateral accretion in NH (SH) hiccrit(1/2) = ', hiccrit … … 458 460 ENDIF 459 461 460 END SUBROUTINE lim_thd_init 462 END SUBROUTINE lim_thd_init_2 461 463 462 464 #else 463 465 !!---------------------------------------------------------------------- 464 !! Default option Dummy module NO LIMsea-ice model466 !! Default option Dummy module NO LIM 2.0 sea-ice model 465 467 !!---------------------------------------------------------------------- 466 468 CONTAINS 467 SUBROUTINE lim_thd ! Dummy routine468 END SUBROUTINE lim_thd 469 SUBROUTINE lim_thd_2 ! Dummy routine 470 END SUBROUTINE lim_thd_2 469 471 #endif 470 472 471 473 !!====================================================================== 472 END MODULE limthd 474 END MODULE limthd_2 -
branches/dev_001_SBC/NEMO/LIM_SRC/limthd_lac.F90
r699 r881 1 MODULE limthd_lac 2 #if defined key_ ice_lim3 !!====================================================================== 4 !! *** MODULE limthd_lac ***1 MODULE limthd_lac_2 2 #if defined key_lim2 3 !!====================================================================== 4 !! *** MODULE limthd_lac_2 *** 5 5 !! lateral thermodynamic growth of the ice 6 6 !!====================================================================== 7 7 8 8 !!---------------------------------------------------------------------- 9 !! lim_lat_acr : lateral accretion of ice9 !! lim_lat_acr_2 : lateral accretion of ice 10 10 !! * Modules used 11 11 USE par_oce ! ocean parameters 12 12 USE phycst 13 USE ice_oce ! ice variables14 USE thd_ice 15 USE iceini 16 USE limistate 13 USE ice_oce ! ice variables 14 USE thd_ice_2 15 USE iceini_2 16 USE limistate_2 17 17 18 18 IMPLICIT NONE … … 20 20 21 21 !! * Routine accessibility 22 PUBLIC lim_thd_lac ! called by lim_thd22 PUBLIC lim_thd_lac_2 ! called by lim_thd_2 23 23 24 24 !! * Module variables … … 35 35 CONTAINS 36 36 37 SUBROUTINE lim_thd_lac ( kideb, kiut )37 SUBROUTINE lim_thd_lac_2( kideb, kiut ) 38 38 !!------------------------------------------------------------------- 39 !! *** ROUTINE lim_thd_lac ***39 !! *** ROUTINE lim_thd_lac_2 *** 40 40 !! 41 41 !! ** Purpose : Computation of the evolution of the ice thickness and … … 220 220 END DO 221 221 222 END SUBROUTINE lim_thd_lac 222 END SUBROUTINE lim_thd_lac_2 223 223 #else 224 224 !!====================================================================== 225 !! *** MODULE limthd_lac ***225 !! *** MODULE limthd_lac_2 *** 226 226 !! no sea ice model 227 227 !!====================================================================== 228 228 CONTAINS 229 SUBROUTINE lim_thd_lac ! Empty routine230 END SUBROUTINE lim_thd_lac 229 SUBROUTINE lim_thd_lac_2 ! Empty routine 230 END SUBROUTINE lim_thd_lac_2 231 231 #endif 232 END MODULE limthd_lac 232 END MODULE limthd_lac_2 -
branches/dev_001_SBC/NEMO/LIM_SRC/limthd_zdf.F90
r717 r881 1 MODULE limthd_zdf 1 MODULE limthd_zdf_2 2 2 !!====================================================================== 3 !! *** MODULE limthd_zdf ***3 !! *** MODULE limthd_zdf_2 *** 4 4 !! thermodynamic growth and decay of the ice 5 5 !!====================================================================== … … 7 7 !! 2.0 ! 02-08 (C. Ethe, G. Madec) F90 8 8 !!---------------------------------------------------------------------- 9 #if defined key_ ice_lim10 !!---------------------------------------------------------------------- 11 !! 'key_ ice_lim' LIMsea-ice model12 !!---------------------------------------------------------------------- 13 !!---------------------------------------------------------------------- 14 !! lim_thd_zdf 9 #if defined key_lim2 10 !!---------------------------------------------------------------------- 11 !! 'key_lim2' LIM 2.0 sea-ice model 12 !!---------------------------------------------------------------------- 13 !!---------------------------------------------------------------------- 14 !! lim_thd_zdf_2 : vertical accr./abl. and lateral ablation of sea ice 15 15 !!---------------------------------------------------------------------- 16 16 USE par_oce ! ocean parameters 17 17 USE phycst ! ??? 18 18 USE ice_oce ! ice variables 19 USE thd_ice 20 USE iceini 21 USE limistate 19 USE thd_ice_2 20 USE iceini_2 21 USE limistate_2 22 22 USE in_out_manager 23 23 … … 25 25 PRIVATE 26 26 27 PUBLIC lim_thd_zdf ! called by lim_thd27 PUBLIC lim_thd_zdf_2 ! called by lim_thd_2 28 28 29 29 REAL(wp) :: epsi20 = 1.e-20 , & ! constant values … … 39 39 CONTAINS 40 40 41 SUBROUTINE lim_thd_zdf ( kideb , kiut )41 SUBROUTINE lim_thd_zdf_2( kideb , kiut ) 42 42 !!------------------------------------------------------------------ 43 !! *** ROUTINE lim_thd_zdf ***43 !! *** ROUTINE lim_thd_zdf_2 *** 44 44 !! 45 45 !! ** Purpose : This routine determines the time evolution of snow … … 773 773 END DO 774 774 ! 775 END SUBROUTINE lim_thd_zdf 775 END SUBROUTINE lim_thd_zdf_2 776 776 777 777 #else … … 780 780 !!---------------------------------------------------------------------- 781 781 CONTAINS 782 SUBROUTINE lim_thd_zdf ! Empty routine783 END SUBROUTINE lim_thd_zdf 782 SUBROUTINE lim_thd_zdf_2 ! Empty routine 783 END SUBROUTINE lim_thd_zdf_2 784 784 #endif 785 785 786 786 !!====================================================================== 787 END MODULE limthd_zdf 787 END MODULE limthd_zdf_2 -
branches/dev_001_SBC/NEMO/LIM_SRC/limtrp.F90
r717 r881 1 MODULE limtrp 1 MODULE limtrp_2 2 2 !!====================================================================== 3 !! *** MODULE limtrp ***4 !! LIM transport ice model : sea-ice advection/diffusion3 !! *** MODULE limtrp_2 *** 4 !! LIM 2.0 transport ice model : sea-ice advection/diffusion 5 5 !!====================================================================== 6 #if defined key_ ice_lim7 !!---------------------------------------------------------------------- 8 !! 'key_ ice_lim' : LIMsea-ice model9 !!---------------------------------------------------------------------- 10 !! lim_trp : advection/diffusion process of sea ice11 !! lim_trp_init : initialization and namelist read6 #if defined key_lim2 7 !!---------------------------------------------------------------------- 8 !! 'key_lim2' : LIM 2.0 sea-ice model 9 !!---------------------------------------------------------------------- 10 !! lim_trp_2 : advection/diffusion process of sea ice 11 !! lim_trp_init_2 : initialization and namelist read 12 12 !!---------------------------------------------------------------------- 13 13 !! * Modules used … … 17 17 USE in_out_manager ! I/O manager 18 18 USE ice_oce ! ice variables 19 USE dom_ice 20 USE ice 21 USE iceini 22 USE limistate 23 USE limadv 24 USE limhdf 19 USE dom_ice_2 20 USE ice_2 21 USE iceini_2 22 USE limistate_2 23 USE limadv_2 24 USE limhdf_2 25 25 USE lbclnk 26 26 USE lib_mpp … … 30 30 31 31 !! * Routine accessibility 32 PUBLIC lim_trp ! called by ice_step32 PUBLIC lim_trp_2 ! called by sbc_ice_lim_2 33 33 34 34 !! * Shared module variables … … 54 54 CONTAINS 55 55 56 SUBROUTINE lim_trp ( kt )56 SUBROUTINE lim_trp_2( kt ) 57 57 !!------------------------------------------------------------------- 58 !! *** ROUTINE lim_trp ***58 !! *** ROUTINE lim_trp_2 *** 59 59 !! 60 60 !! ** purpose : advection/diffusion process of sea ice … … 97 97 !--------------------------------------------------------------------- 98 98 99 IF( kt == nit000 ) CALL lim_trp_init ! Initialization (first time-step only)99 IF( kt == nit000 ) CALL lim_trp_init_2 ! Initialization (first time-step only) 100 100 101 101 zsm(:,:) = area(:,:) … … 128 128 IF (lk_mpp ) CALL mpp_max(zcfl) 129 129 130 IF ( zcfl > 0.5 .AND. lwp ) WRITE(numout,*) 'lim_trp : violation of cfl criterion the ',nday,'th day, cfl = ',zcfl130 IF ( zcfl > 0.5 .AND. lwp ) WRITE(numout,*) 'lim_trp_2 : violation of cfl criterion the ',nday,'th day, cfl = ',zcfl 131 131 132 132 ! content of properties … … 149 149 IF ( MOD( nday , 2 ) == 0) THEN 150 150 DO jk = 1,initad 151 CALL lim_adv_x ( zusnit, zui_u, rone , zsm, zs0ice, sxice, sxxice, syice, syyice, sxyice )152 CALL lim_adv_y ( zusnit, zvi_v, rzero, zsm, zs0ice, sxice, sxxice, syice, syyice, sxyice )153 CALL lim_adv_x ( zusnit, zui_u, rone , zsm, zs0sn , sxsn , sxxsn , sysn , syysn , sxysn )154 CALL lim_adv_y ( zusnit, zvi_v, rzero, zsm, zs0sn , sxsn , sxxsn , sysn , syysn , sxysn )155 CALL lim_adv_x ( zusnit, zui_u, rone , zsm, zs0a , sxa , sxxa , sya , syya , sxya )156 CALL lim_adv_y ( zusnit, zvi_v, rzero, zsm, zs0a , sxa , sxxa , sya , syya , sxya )157 CALL lim_adv_x ( zusnit, zui_u, rone , zsm, zs0c0 , sxc0 , sxxc0 , syc0 , syyc0 , sxyc0 )158 CALL lim_adv_y ( zusnit, zvi_v, rzero, zsm, zs0c0 , sxc0 , sxxc0 , syc0 , syyc0 , sxyc0 )159 CALL lim_adv_x ( zusnit, zui_u, rone , zsm, zs0c1 , sxc1 , sxxc1 , syc1 , syyc1 , sxyc1 )160 CALL lim_adv_y ( zusnit, zvi_v, rzero, zsm, zs0c1 , sxc1 , sxxc1 , syc1 , syyc1 , sxyc1 )161 CALL lim_adv_x ( zusnit, zui_u, rone , zsm, zs0c2 , sxc2 , sxxc2 , syc2 , syyc2 , sxyc2 )162 CALL lim_adv_y ( zusnit, zvi_v, rzero, zsm, zs0c2 , sxc2 , sxxc2 , syc2 , syyc2 , sxyc2 )163 CALL lim_adv_x ( zusnit, zui_u, rone , zsm, zs0st , sxst , sxxst , syst , syyst , sxyst )164 CALL lim_adv_y ( zusnit, zvi_v, rzero, zsm, zs0st , sxst , sxxst , syst , syyst , sxyst )151 CALL lim_adv_x_2( zusnit, zui_u, rone , zsm, zs0ice, sxice, sxxice, syice, syyice, sxyice ) 152 CALL lim_adv_y_2( zusnit, zvi_v, rzero, zsm, zs0ice, sxice, sxxice, syice, syyice, sxyice ) 153 CALL lim_adv_x_2( zusnit, zui_u, rone , zsm, zs0sn , sxsn , sxxsn , sysn , syysn , sxysn ) 154 CALL lim_adv_y_2( zusnit, zvi_v, rzero, zsm, zs0sn , sxsn , sxxsn , sysn , syysn , sxysn ) 155 CALL lim_adv_x_2( zusnit, zui_u, rone , zsm, zs0a , sxa , sxxa , sya , syya , sxya ) 156 CALL lim_adv_y_2( zusnit, zvi_v, rzero, zsm, zs0a , sxa , sxxa , sya , syya , sxya ) 157 CALL lim_adv_x_2( zusnit, zui_u, rone , zsm, zs0c0 , sxc0 , sxxc0 , syc0 , syyc0 , sxyc0 ) 158 CALL lim_adv_y_2( zusnit, zvi_v, rzero, zsm, zs0c0 , sxc0 , sxxc0 , syc0 , syyc0 , sxyc0 ) 159 CALL lim_adv_x_2( zusnit, zui_u, rone , zsm, zs0c1 , sxc1 , sxxc1 , syc1 , syyc1 , sxyc1 ) 160 CALL lim_adv_y_2( zusnit, zvi_v, rzero, zsm, zs0c1 , sxc1 , sxxc1 , syc1 , syyc1 , sxyc1 ) 161 CALL lim_adv_x_2( zusnit, zui_u, rone , zsm, zs0c2 , sxc2 , sxxc2 , syc2 , syyc2 , sxyc2 ) 162 CALL lim_adv_y_2( zusnit, zvi_v, rzero, zsm, zs0c2 , sxc2 , sxxc2 , syc2 , syyc2 , sxyc2 ) 163 CALL lim_adv_x_2( zusnit, zui_u, rone , zsm, zs0st , sxst , sxxst , syst , syyst , sxyst ) 164 CALL lim_adv_y_2( zusnit, zvi_v, rzero, zsm, zs0st , sxst , sxxst , syst , syyst , sxyst ) 165 165 END DO 166 166 ELSE 167 167 DO jk = 1, initad 168 CALL lim_adv_y ( zusnit, zvi_v, rone , zsm, zs0ice, sxice, sxxice, syice, syyice, sxyice )169 CALL lim_adv_x ( zusnit, zui_u, rzero, zsm, zs0ice, sxice, sxxice, syice, syyice, sxyice )170 CALL lim_adv_y ( zusnit, zvi_v, rone , zsm, zs0sn , sxsn , sxxsn , sysn , syysn , sxysn )171 CALL lim_adv_x ( zusnit, zui_u, rzero, zsm, zs0sn , sxsn , sxxsn , sysn , syysn , sxysn )172 CALL lim_adv_y ( zusnit, zvi_v, rone , zsm, zs0a , sxa , sxxa , sya , syya , sxya )173 CALL lim_adv_x ( zusnit, zui_u, rzero, zsm, zs0a , sxa , sxxa , sya , syya , sxya )174 CALL lim_adv_y ( zusnit, zvi_v, rone , zsm, zs0c0 , sxc0 , sxxc0 , syc0 , syyc0 , sxyc0 )175 CALL lim_adv_x ( zusnit, zui_u, rzero, zsm, zs0c0 , sxc0 , sxxc0 , syc0 , syyc0 , sxyc0 )176 CALL lim_adv_y ( zusnit, zvi_v, rone , zsm, zs0c1 , sxc1 , sxxc1 , syc1 , syyc1 , sxyc1 )177 CALL lim_adv_x ( zusnit, zui_u, rzero, zsm, zs0c1 , sxc1 , sxxc1 , syc1 , syyc1 , sxyc1 )178 CALL lim_adv_y ( zusnit, zvi_v, rone , zsm, zs0c2 , sxc2 , sxxc2 , syc2 , syyc2 , sxyc2 )179 CALL lim_adv_x ( zusnit, zui_u, rzero, zsm, zs0c2 , sxc2 , sxxc2 , syc2 , syyc2 , sxyc2 )180 CALL lim_adv_y ( zusnit, zvi_v, rone , zsm, zs0st , sxst , sxxst , syst , syyst , sxyst )181 CALL lim_adv_x ( zusnit, zui_u, rzero, zsm, zs0st , sxst , sxxst , syst , syyst , sxyst )168 CALL lim_adv_y_2( zusnit, zvi_v, rone , zsm, zs0ice, sxice, sxxice, syice, syyice, sxyice ) 169 CALL lim_adv_x_2( zusnit, zui_u, rzero, zsm, zs0ice, sxice, sxxice, syice, syyice, sxyice ) 170 CALL lim_adv_y_2( zusnit, zvi_v, rone , zsm, zs0sn , sxsn , sxxsn , sysn , syysn , sxysn ) 171 CALL lim_adv_x_2( zusnit, zui_u, rzero, zsm, zs0sn , sxsn , sxxsn , sysn , syysn , sxysn ) 172 CALL lim_adv_y_2( zusnit, zvi_v, rone , zsm, zs0a , sxa , sxxa , sya , syya , sxya ) 173 CALL lim_adv_x_2( zusnit, zui_u, rzero, zsm, zs0a , sxa , sxxa , sya , syya , sxya ) 174 CALL lim_adv_y_2( zusnit, zvi_v, rone , zsm, zs0c0 , sxc0 , sxxc0 , syc0 , syyc0 , sxyc0 ) 175 CALL lim_adv_x_2( zusnit, zui_u, rzero, zsm, zs0c0 , sxc0 , sxxc0 , syc0 , syyc0 , sxyc0 ) 176 CALL lim_adv_y_2( zusnit, zvi_v, rone , zsm, zs0c1 , sxc1 , sxxc1 , syc1 , syyc1 , sxyc1 ) 177 CALL lim_adv_x_2( zusnit, zui_u, rzero, zsm, zs0c1 , sxc1 , sxxc1 , syc1 , syyc1 , sxyc1 ) 178 CALL lim_adv_y_2( zusnit, zvi_v, rone , zsm, zs0c2 , sxc2 , sxxc2 , syc2 , syyc2 , sxyc2 ) 179 CALL lim_adv_x_2( zusnit, zui_u, rzero, zsm, zs0c2 , sxc2 , sxxc2 , syc2 , syyc2 , sxyc2 ) 180 CALL lim_adv_y_2( zusnit, zvi_v, rone , zsm, zs0st , sxst , sxxst , syst , syyst , sxyst ) 181 CALL lim_adv_x_2( zusnit, zui_u, rzero, zsm, zs0st , sxst , sxxst , syst , syyst , sxyst ) 182 182 END DO 183 183 ENDIF … … 211 211 ! diffusion 212 212 ! --------- 213 CALL lim_hdf ( zs0ice )214 CALL lim_hdf ( zs0sn )215 CALL lim_hdf ( zs0a )216 CALL lim_hdf ( zs0c0 )217 CALL lim_hdf ( zs0c1 )218 CALL lim_hdf ( zs0c2 )219 CALL lim_hdf ( zs0st )213 CALL lim_hdf_2( zs0ice ) 214 CALL lim_hdf_2( zs0sn ) 215 CALL lim_hdf_2( zs0a ) 216 CALL lim_hdf_2( zs0c0 ) 217 CALL lim_hdf_2( zs0c1 ) 218 CALL lim_hdf_2( zs0c2 ) 219 CALL lim_hdf_2( zs0st ) 220 220 221 221 zs0ice(:,:) = MAX( rzero, zs0ice(:,:) * area(:,:) ) !!bug: est-ce utile … … 278 278 ENDIF 279 279 280 END SUBROUTINE lim_trp 281 282 283 SUBROUTINE lim_trp_init 280 END SUBROUTINE lim_trp_2 281 282 283 SUBROUTINE lim_trp_init_2 284 284 !!------------------------------------------------------------------- 285 !! *** ROUTINE lim_trp_init ***285 !! *** ROUTINE lim_trp_init_2 *** 286 286 !! 287 287 !! ** Purpose : initialization of ice advection parameters … … 303 303 IF(lwp) THEN 304 304 WRITE(numout,*) 305 WRITE(numout,*) 'lim_trp_init : Ice parameters for advection '306 WRITE(numout,*) '~~~~~~~~~~~~ '305 WRITE(numout,*) 'lim_trp_init_2 : Ice parameters for advection ' 306 WRITE(numout,*) '~~~~~~~~~~~~~~' 307 307 WRITE(numout,*) ' boundary conditions (0. no-slip, 1. free-slip) bound = ', bound 308 308 ENDIF 309 309 310 END SUBROUTINE lim_trp_init 310 END SUBROUTINE lim_trp_init_2 311 311 312 312 #else … … 315 315 !!---------------------------------------------------------------------- 316 316 CONTAINS 317 SUBROUTINE lim_trp ! Empty routine318 END SUBROUTINE lim_trp 317 SUBROUTINE lim_trp_2 ! Empty routine 318 END SUBROUTINE lim_trp_2 319 319 #endif 320 320 321 321 !!====================================================================== 322 END MODULE limtrp 322 END MODULE limtrp_2 -
branches/dev_001_SBC/NEMO/LIM_SRC/limwri.F90
r879 r881 1 MODULE limwri 1 MODULE limwri_2 2 2 !!====================================================================== 3 !! *** MODULE limwri ***3 !! *** MODULE limwri_2 *** 4 4 !! Ice diagnostics : write ice output files 5 5 !!====================================================================== … … 7 7 !! 2.0 ! 04-10 (C. Ethe ) 1D configuration 8 8 !!------------------------------------------------------------------- 9 #if defined key_ ice_lim10 !!---------------------------------------------------------------------- 11 !! 'key_ ice_lim' LIMsea-ice model12 !!---------------------------------------------------------------------- 13 !!---------------------------------------------------------------------- 14 !! lim_wri : write of the diagnostics variables in ouput file15 !! lim_wri_init : initialization and namelist read9 #if defined key_lim2 10 !!---------------------------------------------------------------------- 11 !! 'key_lim2' LIM 2.0 sea-ice model 12 !!---------------------------------------------------------------------- 13 !!---------------------------------------------------------------------- 14 !! lim_wri_2 : write of the diagnostics variables in ouput file 15 !! lim_wri_init_2 : initialization and namelist read 16 16 !!---------------------------------------------------------------------- 17 17 USE phycst … … 21 21 USE sbc_oce 22 22 USE sbc_ice 23 USE dom_ice 24 USE ice 23 USE dom_ice_2 24 USE ice_2 25 25 26 26 USE lbclnk … … 32 32 PRIVATE 33 33 34 PUBLIC lim_wri ! routine called by sbcice_lim module34 PUBLIC lim_wri_2 ! routine called by sbc_ice_lim_2 35 35 36 36 INTEGER, PARAMETER :: jpnoumax = 40 ! maximum number of variable for ice output … … 55 55 !!---------------------------------------------------------------------- 56 56 !! LIM 2.0, UCL-LOCEAN-IPSL (2006) 57 !! $ Header: $57 !! $ Id: $ 58 58 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 59 59 !!---------------------------------------------------------------------- … … 65 65 !! 'key_dimgout' Direct Access file 66 66 !!---------------------------------------------------------------------- 67 # include "limwri_dimg .h90"67 # include "limwri_dimg_2.h90" 68 68 #else 69 69 !!---------------------------------------------------------------------- … … 71 71 !!---------------------------------------------------------------------- 72 72 73 SUBROUTINE lim_wri ( kt )74 !!------------------------------------------------------------------- 75 !! *** ROUTINE lim_wri ***73 SUBROUTINE lim_wri_2( kt ) 74 !!------------------------------------------------------------------- 75 !! *** ROUTINE lim_wri_2 *** 76 76 !! 77 77 !! ** Purpose : write the sea-ice output file in NetCDF … … 96 96 IF( kt == nit000 ) THEN ! Initialisation ! 97 97 ! !--------------------! 98 CALL lim_wri_init 98 CALL lim_wri_init_2 99 99 100 100 zsto = rdt_ice … … 183 183 IF( ( nn_fsbc * niter + nit000 - 1 ) >= nitend ) CALL histclo( nice ) 184 184 ! 185 END SUBROUTINE lim_wri 185 END SUBROUTINE lim_wri_2 186 186 187 187 #endif 188 188 189 SUBROUTINE lim_wri_init 190 !!------------------------------------------------------------------- 191 !! *** ROUTINE lim_wri_init ***189 SUBROUTINE lim_wri_init_2 190 !!------------------------------------------------------------------- 191 !! *** ROUTINE lim_wri_init_2 *** 192 192 !! 193 193 !! ** Purpose : intialisation of LIM sea-ice output … … 255 255 IF(lwp) THEN 256 256 WRITE(numout,*) 257 WRITE(numout,*) 'lim_wri_init : Ice parameters for outputs'258 WRITE(numout,*) '~~~~~~~~~~~~ '257 WRITE(numout,*) 'lim_wri_init_2 : Ice parameters for outputs' 258 WRITE(numout,*) '~~~~~~~~~~~~~~' 259 259 WRITE(numout,*) ' number of fields to be stored noumef = ', noumef 260 260 WRITE(numout,*) ' title name unit Saving (1/0) ', & … … 266 266 ENDIF 267 267 ! 268 END SUBROUTINE lim_wri_init 268 END SUBROUTINE lim_wri_init_2 269 269 270 270 #else 271 271 !!---------------------------------------------------------------------- 272 !! Default option : Empty module NO LIMsea-ice model272 !! Default option : Empty module NO LIM 2.0 sea-ice model 273 273 !!---------------------------------------------------------------------- 274 274 CONTAINS 275 SUBROUTINE lim_wri ! Empty routine276 END SUBROUTINE lim_wri 275 SUBROUTINE lim_wri_2 ! Empty routine 276 END SUBROUTINE lim_wri_2 277 277 #endif 278 278 279 279 !!====================================================================== 280 END MODULE limwri 280 END MODULE limwri_2 -
branches/dev_001_SBC/NEMO/LIM_SRC/limwri_dimg.h90
r879 r881 1 SUBROUTINE lim_wri (kt)1 SUBROUTINE lim_wri_2(kt) 2 2 !!---------------------------------------------------------------------- 3 3 !! LIM 2.0, UCL-LOCEAN-IPSL (2005) … … 52 52 IF ( kt == nit000 ) THEN 53 53 54 CALL lim_wri_init 54 CALL lim_wri_init_2 55 55 56 56 nwf = 0 … … 58 58 59 59 IF (lwp ) THEN 60 WRITE(numout,*) 'lim_wri : Write ice outputs in dimg'60 WRITE(numout,*) 'lim_wri_2 : Write ice outputs in dimg' 61 61 WRITE(numout,*) '~~~~~~~~' 62 62 WRITE(numout,*) ' According to namelist_ice, following fields saved:' … … 203 203 END IF ! MOD(kt+nn_fsbc-1-nit000+1, nwrite == 0 ) ! 204 204 205 END SUBROUTINE lim_wri 205 END SUBROUTINE lim_wri_2 -
branches/dev_001_SBC/NEMO/LIM_SRC/par_ice.F90
r699 r881 1 MODULE par_ice 1 MODULE par_ice_2 2 #if defined key_lim2 2 3 !!====================================================================== 3 !! *** MODULE par_ice ***4 !! *** MODULE par_ice_2 *** 4 5 !! Sea-Ice model : definition of the parameters 5 6 !!====================================================================== … … 24 25 25 26 !!====================================================================== 26 END MODULE par_ice 27 #endif 28 END MODULE par_ice_2 -
branches/dev_001_SBC/NEMO/LIM_SRC/thd_ice.F90
r717 r881 1 MODULE thd_ice 1 MODULE thd_ice_2 2 #if defined key_lim2 2 3 !!====================================================================== 3 !! *** MODULE thd_ice ***4 !! LIM sea-ice : Ice thermodynamics in 1D4 !! *** MODULE thd_ice_2 *** 5 !! LIM 2.0 sea-ice : Ice thermodynamics in 1D 5 6 !!===================================================================== 6 7 !! History : … … 12 13 !!---------------------------------------------------------------------- 13 14 !! * Modules used 14 USE par_ice 15 USE par_ice_2 15 16 16 17 IMPLICIT NONE … … 82 83 83 84 !!====================================================================== 84 END MODULE thd_ice 85 #endif 86 END MODULE thd_ice_2 -
branches/dev_001_SBC/NEMO/NST_SRC/agrif_user.F90
r811 r881 65 65 USE sol_oce 66 66 USE in_out_manager 67 #if defined key_ ice_lim67 #if defined key_lim2 68 68 USE ice_oce 69 69 #endif -
branches/dev_001_SBC/NEMO/OPA_SRC/DIA/diawri.F90
r748 r881 244 244 & jpi, jpj, nh_T, 1 , 1, 1 , -99 , 32, clop, zsto, zout ) 245 245 #endif 246 !!$#if ! defined key_dynspg_rl && defined key_ ice_lim246 !!$#if ! defined key_dynspg_rl && defined key_lim2 247 247 !!$ ! sowaflup = sowaflep + sorunoff + sowafldp + a term associated to 248 248 !!$ ! internal damping to Levitus that can be diagnosed from others … … 282 282 283 283 284 #if ( defined key_coupled && ! defined key_ ice_lim)284 #if ( defined key_coupled && ! defined key_lim2 ) 285 285 CALL histdef( nid_T, "sohefldp", "Surface Heat Flux: Damping" , "W/m2" , & ! qrp 286 286 & jpi, jpj, nh_T, 1 , 1, 1 , -99 , 32, clop, zsto, zout ) … … 308 308 #endif 309 309 310 #if defined key_ ice_lim&& defined key_coupled310 #if defined key_lim2 && defined key_coupled 311 311 CALL histdef( nid_T,"soicetem" , "Ice Surface Temperature" , "K" , & ! tn_ice 312 312 & jpi, jpj, nh_T, 1 , 1, 1 , -99 , 32, clop, zsto, zout ) … … 414 414 CALL histwrite( nid_T, "sossheig", it, sshn , ndim_hT, ndex_hT ) ! sea surface height 415 415 #endif 416 !!$#if ! defined key_dynspg_rl && defined key_ ice_lim416 !!$#if ! defined key_dynspg_rl && defined key_lim2 417 417 !!$ CALL histwrite( nid_T, "iowaflup", it, fsalt(:,:) , ndim_hT, ndex_hT ) ! ice=>ocean water flux 418 418 !!$ CALL histwrite( nid_T, "sowaflep", it, fmass(:,:) , ndim_hT, ndex_hT ) ! atmos=>ocean water flux … … 434 434 CALL histwrite( nid_T, "sosafldp", it, zw2d , ndim_hT, ndex_hT ) ! salt flux damping 435 435 #endif 436 #if ( defined key_coupled && ! defined key_ ice_lim)436 #if ( defined key_coupled && ! defined key_lim2 ) 437 437 CALL histwrite( nid_T, "sohefldp", it, qrp , ndim_hT, ndex_hT ) ! heat flux damping 438 438 CALL histwrite( nid_T, "sowafldp", it, erp , ndim_hT, ndex_hT ) ! freshwater flux damping … … 452 452 CALL histwrite( nid_T, "sohtc300", it, htc3 , ndim_hT, ndex_hT ) ! first 300m heaat content 453 453 #endif 454 #if defined key_ ice_lim&& defined key_coupled454 #if defined key_lim2 && defined key_coupled 455 455 CALL histwrite( nid_T, "soicetem", it, tn_ice , ndim_hT, ndex_hT ) ! surf. ice temperature 456 456 CALL histwrite( nid_T, "soicealb", it, alb_ice , ndim_hT, ndex_hT ) ! ice albedo -
branches/dev_001_SBC/NEMO/OPA_SRC/DIA/diawri_dimg.h90
r717 r881 186 186 ! fsel(:,:,15) = fsel(:,:,15) + fbt(:,:) 187 187 fsel(:,:,16) = fsel(:,:,16) + emps(:,:) 188 #if defined key_ ice_lim188 #if defined key_lim2 189 189 fsel(:,:,17) = fsel(:,:,17) + fsalt(:,:) 190 190 #endif … … 276 276 ! fsel(:,:,15) = fbt(:,:) 277 277 fsel(:,:,16) = emps(:,:) * tmask(:,:,1) 278 #if defined key_ ice_lim278 #if defined key_lim2 279 279 fsel(:,:,17) = fsalt(:,:) * tmask(:,:,1) 280 280 #endif -
branches/dev_001_SBC/NEMO/OPA_SRC/SBC/albedo.F90
r703 r881 50 50 CONTAINS 51 51 52 #if defined key_ ice_lim53 !!---------------------------------------------------------------------- 54 !! 'key_ ice_lim' LIMice model52 #if defined key_lim2 53 !!---------------------------------------------------------------------- 54 !! 'key_lim2' LIM 2.0 ice model 55 55 !!---------------------------------------------------------------------- 56 56 … … 68 68 !! References : Shine and Hendersson-Sellers 1985, JGR, 90(D1), 2243-2250. 69 69 !!---------------------------------------------------------------------- 70 USE ice ! ???70 USE ice_2 ! ??? 71 71 !! 72 72 REAL(wp), INTENT(out), DIMENSION(jpi,jpj) :: palb ! albedo of ice under overcast sky -
branches/dev_001_SBC/NEMO/OPA_SRC/SBC/cpl_oasis3.F90
r708 r881 51 51 52 52 USE oce, only: tn, un, vn 53 USE ice , only: frld, hicif, hsnif53 USE ice_2, only: frld, hicif, hsnif 54 54 55 55 IMPLICIT NONE -
branches/dev_001_SBC/NEMO/OPA_SRC/SBC/sbc_ice.F90
r702 r881 6 6 !! History : 9.0 ! 06-08 (G. Modec) Surface module 7 7 !!---------------------------------------------------------------------- 8 #if defined key_ ice_lim8 #if defined key_lim2 9 9 !!---------------------------------------------------------------------- 10 !! 'key_ ice_lim' : Limsea-ice model10 !! 'key_lim2' : LIM 2.0 sea-ice model 11 11 !!---------------------------------------------------------------------- 12 12 USE par_oce ! ocean parameters -
branches/dev_001_SBC/NEMO/OPA_SRC/SBC/sbcblk_clio.F90
r879 r881 30 30 USE albedo 31 31 USE prtctl ! Print control 32 #if defined key_lim3 33 USE par_ice 34 #elif defined key_lim2 32 #if defined key_lim2 33 USE par_ice_2 35 34 USE ice_2 36 35 #endif -
branches/dev_001_SBC/NEMO/OPA_SRC/SBC/sbccpl.F90
r702 r881 27 27 USE cpl_oasis4 ! OASIS4 coupling (to ECHAM5) 28 28 USE geo2ocean, ONLY : repere, repcmo 29 USE ice , only: frld ! : leads fraction = 1-a/totalarea29 USE ice_2, only : frld ! : leads fraction = 1-a/totalarea 30 30 31 31 USE sbc_oce ! Surface boundary condition: ocean fields … … 64 64 fr2_i0 ! : 2nd part of the fraction of sol.rad. which penetrate inside the ice cover 65 65 66 USE ice , only: hicif , & ! : ice thickness66 USE ice_2, only : hicif , & ! : ice thickness 67 67 frld , & ! : leads fraction = 1-a/totalarea 68 68 hsnif , & ! : snow thickness -
branches/dev_001_SBC/NEMO/OPA_SRC/SBC/sbcice_lim.F90
r880 r881 1 MODULE sbcice_lim 1 MODULE sbcice_lim_2 2 2 !!====================================================================== 3 !! *** MODULE sbcice ***3 !! *** MODULE sbcice_lim_2 *** 4 4 !! Surface module : update surface ocean boundary condition over ice 5 5 !! covered area using LIM sea-ice model 6 !! Sea-Ice model : LIM Sea ice model time-stepping6 !! Sea-Ice model : LIM 2.0 Sea ice model time-stepping 7 7 !!====================================================================== 8 !! History : 9.0 ! 06-06 (G. Madec) from icestp .F908 !! History : 9.0 ! 06-06 (G. Madec) from icestp_2.F90 9 9 !!---------------------------------------------------------------------- 10 #if defined key_ ice_lim10 #if defined key_lim2 11 11 !!---------------------------------------------------------------------- 12 !! 'key_ ice_lim' : Limsea-ice model12 !! 'key_lim2' : LIM 2.0 sea-ice model 13 13 !!---------------------------------------------------------------------- 14 14 !!---------------------------------------------------------------------- 15 !! sbc_ice_lim 15 !! sbc_ice_lim_2 : sea-ice model time-stepping and 16 16 !! update ocean sbc over ice-covered area 17 17 !!---------------------------------------------------------------------- 18 18 USE oce ! ocean dynamics and tracers 19 19 USE dom_oce ! ocean space and time domain 20 USE ice 21 USE iceini 20 USE ice_2 21 USE iceini_2 22 22 USE ice_oce ! ice variables 23 USE dom_ice 23 USE dom_ice_2 24 24 USE cpl_oce 25 25 … … 33 33 USE phycst ! Define parameters for the routines 34 34 USE eosbn2 ! equation of state 35 USE limdyn 36 USE limtrp 37 USE limdmp 38 USE limthd 39 USE limsbc 40 USE limdia 41 USE limwri 42 USE limrst 35 USE limdyn_2 36 USE limtrp_2 37 USE limdmp_2 38 USE limthd_2 39 USE limsbc_2 ! sea surface boundary condition 40 USE limdia_2 41 USE limwri_2 42 USE limrst_2 43 43 44 44 USE lbclnk … … 50 50 PRIVATE 51 51 52 PUBLIC sbc_ice_lim ! routine called by step.F9052 PUBLIC sbc_ice_lim_2 ! routine called by sbcmod.F90 53 53 54 54 !! * Substitutions … … 57 57 !!---------------------------------------------------------------------- 58 58 !! OPA 9.0 , LOCEAN-IPSL (2006) 59 !! $ Header: /59 !! $ Id: $ 60 60 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 61 61 !!---------------------------------------------------------------------- … … 63 63 CONTAINS 64 64 65 SUBROUTINE sbc_ice_lim ( kt, kblk )65 SUBROUTINE sbc_ice_lim_2( kt, kblk ) 66 66 !!--------------------------------------------------------------------- 67 !! *** ROUTINE ice_stp***67 !! *** ROUTINE sbc_ice_lim_2 *** 68 68 !! 69 69 !! ** Purpose : update the ocean surface boundary condition via the … … 95 95 IF( kt == nit000 ) THEN 96 96 IF(lwp) WRITE(numout,*) 97 IF(lwp) WRITE(numout,*) 'sbc_ice_lim : update ocean surface boudary condition'98 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~ via Louvain la Neuve Ice Model (LIM) time stepping'97 IF(lwp) WRITE(numout,*) 'sbc_ice_lim_2 : update ocean surface boudary condition' 98 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~ via Louvain la Neuve Ice Model (LIM) time stepping' 99 99 100 CALL ice_init 100 CALL ice_init_2 101 101 102 102 ENDIF … … 161 161 ! Ice model step ! 162 162 ! ---------------- ! 163 ; CALL lim_rst_opn ( kt ) ! Open Ice restart file164 ; CALL lim_dyn ( kt ) ! Ice dynamics ( rheology/dynamics )165 ; CALL lim_trp ( kt ) ! Ice transport ( Advection/diffusion )166 IF( ln_limdmp ) CALL lim_dmp ( kt ) ! Ice damping167 ; CALL lim_thd ( kt ) ! Ice thermodynamics168 ; CALL lim_sbc ( kt ) ! Ice/Ocean Mass & Heat fluxes163 ; CALL lim_rst_opn_2 ( kt ) ! Open Ice restart file 164 ; CALL lim_dyn_2 ( kt ) ! Ice dynamics ( rheology/dynamics ) 165 ; CALL lim_trp_2 ( kt ) ! Ice transport ( Advection/diffusion ) 166 IF( ln_limdmp ) CALL lim_dmp_2 ( kt ) ! Ice damping 167 ; CALL lim_thd_2 ( kt ) ! Ice thermodynamics 168 ; CALL lim_sbc_2 ( kt ) ! Ice/Ocean Mass & Heat fluxes 169 169 IF( MOD( kt+nn_fsbc-1, ninfo ) == 0 .OR. & 170 & ntmoy == 1 ) CALL lim_dia ( kt ) ! Ice Diagnostics171 ; CALL lim_wri ( kt ) ! Ice outputs172 IF( lrst_ice ) CALL lim_rst_write ( kt ) ! Ice restart file170 & ntmoy == 1 ) CALL lim_dia_2 ( kt ) ! Ice Diagnostics 171 ; CALL lim_wri_2 ( kt ) ! Ice outputs 172 IF( lrst_ice ) CALL lim_rst_write_2( kt ) ! Ice restart file 173 173 ! 174 174 ENDIF 175 175 ! 176 END SUBROUTINE sbc_ice_lim 176 END SUBROUTINE sbc_ice_lim_2 177 177 178 178 #else 179 179 !!---------------------------------------------------------------------- 180 !! Default option Dummy module NO LIMsea-ice model180 !! Default option Dummy module NO LIM 2.0 sea-ice model 181 181 !!---------------------------------------------------------------------- 182 182 CONTAINS 183 SUBROUTINE sbc_ice_lim ( kt, kblk ) ! Dummy routine184 WRITE(*,*) 'sbc_ice_lim : You should not have seen this print! error?', kt, kblk185 END SUBROUTINE sbc_ice_lim 183 SUBROUTINE sbc_ice_lim_2 ( kt, kblk ) ! Dummy routine 184 WRITE(*,*) 'sbc_ice_lim_2: You should not have seen this print! error?', kt, kblk 185 END SUBROUTINE sbc_ice_lim_2 186 186 #endif 187 187 188 188 !!====================================================================== 189 END MODULE sbcice_lim 189 END MODULE sbcice_lim_2 -
branches/dev_001_SBC/NEMO/OPA_SRC/SBC/sbcmod.F90
r879 r881 26 26 USE sbcblk_core ! surface boundary condition: bulk formulation : CORE 27 27 USE sbcice_if ! surface boundary condition: ice-if sea-ice model 28 USE sbcice_lim ! surface boundary condition: LIMsea-ice model28 USE sbcice_lim_2 ! surface boundary condition: LIM 2.0 sea-ice model 29 29 USE sbccpl ! surface boundary condition: coupled florulation 30 30 USE sbcssr ! surface boundary condition: sea surface restoring … … 228 228 CASE( 1 ) ; CALL sbc_ice_if ( kt ) ! Ice-cover climatology ("Ice-if" model) 229 229 ! ! (update heat and freshwater fluxes) 230 CASE( 2 ) ; CALL sbc_ice_lim ( kt, nsbc ) ! LIMice model230 CASE( 2 ) ; CALL sbc_ice_lim_2( kt, nsbc ) ! LIM 2.0 ice model 231 231 END SELECT ! (update all fluxes using bulk + LIM) 232 232 -
branches/dev_001_SBC/NEMO/OPA_SRC/TRA/traadv_cen2.F90
r811 r881 161 161 rnfmsk(ji,jj) * rnfmsk_z(jk), & ! near runoff mouths (& closed sea outflows) 162 162 upsmsk(ji,jj) & ! some of some straits 163 #if defined key_ ice_lim163 #if defined key_lim2 164 164 ! ! below ice covered area (if tn < "freezing"+0.1 ) 165 165 , MAX( 0., SIGN( 1., fzptn(ji,jj) + 0.1 - tn(ji,jj,jk) ) ) * tmask(ji,jj,jk) & -
branches/dev_001_SBC/NEMO/OPA_SRC/cpl_oce.F90
r699 r881 218 218 qsrc !: solar radiation (w m-2) 219 219 220 # if defined key_ ice_lim220 # if defined key_lim2 221 221 REAL(wp), DIMENSION(jpi,jpj) :: & !: 222 222 watm , & !: -
branches/dev_001_SBC/NEMO/OPA_SRC/ice_oce.F90
r717 r881 11 11 !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 12 12 !!---------------------------------------------------------------------- 13 #if defined key_ ice_lim13 #if defined key_lim2 14 14 !!---------------------------------------------------------------------- 15 !! 'key_ ice_lim' : LIMice model15 !! 'key_lim2' : LIM 2.0 ice model 16 16 !!---------------------------------------------------------------------- 17 17 !! * Modules used … … 46 46 #else 47 47 !!---------------------------------------------------------------------- 48 !! Default option NO LIMsea-ice model48 !! Default option NO LIM 2.0 sea-ice model 49 49 !!---------------------------------------------------------------------- 50 50 LOGICAL, PUBLIC, PARAMETER :: lk_ice_lim = .FALSE. !: No LIM ice model -
branches/dev_001_SBC/NEMO/OPA_SRC/restart.F90
r811 r881 193 193 !!---------------------------------------------------------------------- 194 194 REAL(wp) :: zcoef, zkt, zrdt, zrdttra1, zndastp 195 #if defined key_ ice_lim195 #if defined key_lim2 196 196 INTEGER :: ji, jj 197 197 #endif -
branches/dev_001_SBC/NEMO/TOP_SRC/TRP/trcadv_cen2.F90
r760 r881 164 164 zind(ji,jj,jk) = MAX ( upsrnfh(ji,jj) * upsrnfz(jk), & ! changing advection scheme near runoff 165 165 & upsadv(ji,jj) & ! in the vicinity of some straits 166 #if defined key_ ice_lim166 #if defined key_lim2 167 167 & , tmask(ji,jj,jk) & ! half upstream tracer fluxes 168 168 & * MAX( 0., SIGN( 1., fzptn(ji,jj) & ! if tn < ("freezing"+0.1 )
Note: See TracChangeset
for help on using the changeset viewer.