[6] | 1 | SUBROUTINE ice_sal_conserv(kideb,kiut,message,err, |
---|
| 2 | & zmb0,zmb1,zfb,zfsu,zdt) |
---|
| 3 | |
---|
| 4 | !=============================================================================! |
---|
| 5 | |
---|
| 6 | ! This routine tests conservation of the mass of salt |
---|
| 7 | ! (c) Martin Vancoppenolle, September 2008 |
---|
| 8 | |
---|
| 9 | INCLUDE 'type.com' |
---|
| 10 | INCLUDE 'para.com' |
---|
| 11 | |
---|
| 12 | CHARACTER(len=15) :: |
---|
| 13 | & message ! : message indicating the name of the routine calling |
---|
| 14 | |
---|
| 15 | REAL(8) :: |
---|
| 16 | & err |
---|
| 17 | |
---|
| 18 | REAL(8) :: |
---|
| 19 | & zmb0 , |
---|
| 20 | & zmb1 , |
---|
| 21 | & zfb , |
---|
| 22 | & zfsu |
---|
| 23 | |
---|
| 24 | REAL(8) :: |
---|
| 25 | & zdt |
---|
| 26 | |
---|
| 27 | INTEGER :: |
---|
| 28 | & ji , ! : index for space |
---|
| 29 | & jk , ! : index for ice layers |
---|
| 30 | & jn ! : index for tracers |
---|
| 31 | |
---|
| 32 | REAL(8) :: |
---|
| 33 | & zdm ! : actual mass variation |
---|
| 34 | & zdmf |
---|
| 35 | |
---|
| 36 | !=============================================================================! |
---|
| 37 | |
---|
| 38 | WRITE(numout,*) ' ice_sal_conserv : ' |
---|
| 39 | WRITE(numout,*) ' ~~~~~~~~~~~~~~~ ' |
---|
| 40 | WRITE(numout,*) ' message : ', message |
---|
| 41 | WRITE(numout,*) ' error : ', err |
---|
| 42 | WRITE(numout,*) ' kideb, kiut : ', kideb, kiut |
---|
| 43 | WRITE(numout,*) ' ddtb : ', zdt |
---|
| 44 | WRITE(numout,*) ' ms_i_init : ', zmb0 |
---|
| 45 | WRITE(numout,*) ' ms_i_final : ', zmb1 |
---|
| 46 | |
---|
| 47 | zdm = ( zmb1 - zmb0 ) / zdt |
---|
| 48 | zdmf = zfb + zfsu |
---|
| 49 | |
---|
| 50 | WRITE(numout,*) ' Actual mass variation zdm : ', zdm |
---|
| 51 | WRITE(numout,*) ' Mass variation from fluxes zdmf : ', zdmf |
---|
| 52 | WRITE(numout,*) ' Sal conserv error : ', ABS(zdm-zdmf) |
---|
| 53 | |
---|
| 54 | WRITE(503,*) zmb1, ABS(zdm-zdmf)*zdt |
---|
| 55 | |
---|
| 56 | IF ( ABS ( zdm - zdmf ) .GT. err ) THEN |
---|
| 57 | WRITE(numout,*) ' Conservation error after ', message |
---|
| 58 | WRITE(numout,*) ' Error : ', |
---|
| 59 | & ABS( zdm - zdmf ) |
---|
| 60 | WRITE(numout,*) ' Actual mass variation zdm : ', zdm |
---|
| 61 | WRITE(numout,*) ' Mass variation from fluxes zdmf : ', zdmf |
---|
| 62 | WRITE(numout,*) |
---|
| 63 | WRITE(numout,*) ' ms_i_init : ', zmb0 |
---|
| 64 | WRITE(numout,*) ' ms_i_final : ', zmb1 |
---|
| 65 | ! WRITE(numout,*) ' s_i_b : ', ( s_i_b(ji,layer), |
---|
| 66 | ! & layer = 1, nlay_i ) |
---|
| 67 | ENDIF |
---|
| 68 | RETURN |
---|
| 69 | |
---|
| 70 | !=============================================================================! |
---|
| 71 | !-- End of ice_sal_conserv -- |
---|
| 72 | END |
---|