Changeset 881 for branches/dev_001_SBC/NEMO/LIM_SRC/limtrp.F90
- Timestamp:
- 2008-04-08T11:45:52+02:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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
Note: See TracChangeset
for help on using the changeset viewer.