- Timestamp:
- 2015-04-03T10:48:51+02:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5171_CNRS_LIM3_seaicebgc/NEMOGCM/NEMO/TOP_SRC/TRP/trcsbc.F90
r5184 r5193 63 63 ! 64 64 INTEGER :: ji, jj, jn ! dummy loop indices 65 REAL(wp) :: zs rau, zse3t! temporary scalars66 REAL(wp) :: zswitch, zftra, zcd, zdtra, ztfx, ztra , zeuler! temporary scalars65 REAL(wp) :: zse3t ! temporary scalars 66 REAL(wp) :: zswitch, zftra, zcd, zdtra, ztfx, ztra ! temporary scalars 67 67 CHARACTER (len=22) :: charout 68 68 REAL(wp), POINTER, DIMENSION(:,: ) :: zsfx … … 99 99 ENDIF 100 100 101 WRITE(numout,*) ' trc_sbc initial values', trn(3,2,1,2), trb(3,2,1,2), tra(3,2,1,2) 102 101 103 ! 0. initialization 102 zsrau = 1. / rau0103 104 zeuler = 1. ; IF ( neuler .EQ. 0 ) zeuler = 0.105 106 104 DO jn = 1, jptra 107 105 ! … … 114 112 DO ji = fs_2, fs_jpim1 ! vector opt. 115 113 zse3t = 1. / fse3t(ji,jj,1) 116 tra(ji,jj,1,jn) = tra(ji,jj,1,jn) + zsfx(ji,jj) * zsrau* trn(ji,jj,1,jn) * zse3t114 tra(ji,jj,1,jn) = tra(ji,jj,1,jn) + zsfx(ji,jj) * r1_rau0 * trn(ji,jj,1,jn) * zse3t 117 115 END DO 118 116 END DO … … 122 120 DO jj = 2, jpj 123 121 DO ji = fs_2, fs_jpim1 ! vector opt. 124 122 125 123 zse3t = 1. / fse3t(ji,jj,1) 126 124 … … 133 131 ztfx = zftra + zswitch * zcd ! net tracer flux (+C/D if no ice/ocean mass exchange) 134 132 135 ! tracer change (left member: euler; right member:leapfrog) 136 ztra = ( 1. - zeuler ) * trn(ji,jj,1,jn) + zeuler * trb(ji,jj,1,jn) 137 138 ! MAX is there to avoid integral ocean uptake in the case of freezing (for iron) 139 zdtra = MAX ( - ztra / r2dtra(1) , zsrau * ( ztfx + zsfx(ji,jj) * trn(ji,jj,1,jn) ) * zse3t ) ! tracer tendency 140 ! r2dtra is time step 141 tra(ji,jj,1,jn) = tra(ji,jj,1,jn) + zdtra ! new line 133 zdtra = r1_rau0 * ( ztfx + zsfx(ji,jj) * trn(ji,jj,1,jn) ) * zse3t 134 tra(ji,jj,1,jn) = MAX( tra(ji,jj,1,jn) + zdtra, 0.) ! avoid integral ocean uptake if freezing (for iron) 142 135 143 ! IF ( ztfx .NE. 0.0 ) THEN 144 ! WRITE(numout,*) ji, jj, jn 145 ! WRITE(numout,*) ' trc_o : ', trc_o(ji,jj,jn) 146 ! WRITE(numout,*) ' trc_i : ', trc_i(ji,jj,jn) 147 ! WRITE(numout,*) ' fmmflx : ', fmmflx(ji,jj) 148 ! WRITE(numout,*) ' zswitch: ', zswitch 149 ! WRITE(numout,*) ' zcd : ', zcd 150 ! WRITE(numout,*) ' zftra : ', zftra 151 ! WRITE(numout,*) ' ztfx : ', ztfx 152 ! WRITE(numout,*) ' zsrau : ', zsrau 153 ! WRITE(numout,*) ' zsfx : ', zsfx(ji,jj) 154 ! WRITE(numout,*) ' zse3t : ', zse3t 155 ! WRITE(numout,*) ' ztra : ', ztra 156 ! WRITE(numout,*) ' zdtra : ', zdtra 157 ! WRITE(numout,*) ' Old tendency : ', zsfx(ji,jj) * zsrau * trn(ji,jj,1,jn) * zse3t 158 ! ENDIF 136 ! IF ( ztfx .NE. 0.0 ) THEN 137 IF ( ( ji .EQ. 3 ) .AND. ( jj .EQ. 2 ) .AND. ( jn .EQ. 2 ) ) THEN 138 WRITE(numout,*) ji, jj, jn 139 WRITE(numout,*) ' trn : ', trn(ji,jj,1,jn) 140 WRITE(numout,*) ' trb : ', trb(ji,jj,1,jn) 141 WRITE(numout,*) ' tra : ', tra(ji,jj,1,jn) 142 WRITE(numout,*) ' trc_o : ', trc_o(ji,jj,jn) 143 WRITE(numout,*) ' trc_i : ', trc_i(ji,jj,jn) 144 WRITE(numout,*) ' fmmflx : ', fmmflx(ji,jj) 145 WRITE(numout,*) ' zswitch: ', zswitch 146 WRITE(numout,*) ' zcd : ', zcd 147 WRITE(numout,*) ' zftra : ', zftra 148 WRITE(numout,*) ' ztfx : ', ztfx 149 WRITE(numout,*) ' r1_rau0 : ', r1_rau0 150 WRITE(numout,*) ' zsfx : ', zsfx(ji,jj) 151 WRITE(numout,*) ' zse3t : ', zse3t 152 WRITE(numout,*) ' ztra : ', ztra 153 WRITE(numout,*) ' zdtra : ', zdtra 154 WRITE(numout,*) ' Old tendency : ', zsfx(ji,jj) * r1_rau0 * trn(ji,jj,1,jn) * zse3t 155 ENDIF 159 156 160 157 END DO
Note: See TracChangeset
for help on using the changeset viewer.