- Timestamp:
- 2015-05-27T18:17:08+02:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5218_CNRS17_coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssm.F90
r5223 r5299 58 58 REAL(wp) :: zcoef, zf_sbc ! local scalar 59 59 REAL(wp), DIMENSION(jpi,jpj,jpts) :: zts 60 REAL(wp), DIMENSION(jpi,jpj) :: zub, zvb,zdep61 60 !!--------------------------------------------------------------------- 62 61 63 62 ! !* surface T-, U-, V- ocean level variables (T, S, depth, velocity) 64 IF( nn_components == jp_iam_opa ) THEN 65 DO jj = 1, jpj 66 DO ji = 1, jpi 67 zts(ji,jj,jp_tem) = tsb(ji,jj,mikt(ji,jj),jp_tem) 68 zts(ji,jj,jp_sal) = tsb(ji,jj,mikt(ji,jj),jp_sal) 69 END DO 63 DO jj = 1, jpj 64 DO ji = 1, jpi 65 zts(ji,jj,jp_tem) = tsn(ji,jj,mikt(ji,jj),jp_tem) 66 zts(ji,jj,jp_sal) = tsn(ji,jj,mikt(ji,jj),jp_sal) 70 67 END DO 71 ELSE 72 DO jj = 1, jpj 73 DO ji = 1, jpi 74 zts(ji,jj,jp_tem) = tsb(ji,jj,mikt(ji,jj),jp_tem) 75 zts(ji,jj,jp_sal) = tsb(ji,jj,mikt(ji,jj),jp_sal) 76 END DO 77 END DO 78 ENDIF 79 zub(:,:) = ub (:,:,1 ) 80 zvb(:,:) = vb (:,:,1 ) 81 ! 82 IF( lk_vvl ) THEN 83 zdep(:,:) = fse3t_n(:,:,1) 84 ENDIF 85 ! ! ---------------------------------------- ! 68 END DO 69 ! 86 70 IF( nn_fsbc == 1 ) THEN ! Instantaneous surface fields ! 87 71 ! ! ---------------------------------------- ! 88 ssu_m(:,:) = zub(:,:)89 ssv_m(:,:) = zvb(:,:)72 ssu_m(:,:) = ub(:,:,1) 73 ssv_m(:,:) = vb(:,:,1) 90 74 IF( ln_useCT ) THEN ; sst_m(:,:) = eos_pt_from_ct( zts(:,:,jp_tem), zts(:,:,jp_sal) ) 91 75 ELSE ; sst_m(:,:) = zts(:,:,jp_tem) … … 93 77 sss_m(:,:) = zts(:,:,jp_sal) 94 78 ! ! removed inverse barometer ssh when Patm forcing is used (for sea-ice dynamics) 95 IF( nn_components == jp_iam_opa ) THEN 96 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = sshb(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 97 ELSE ; ssh_m(:,:) = sshb(:,:) 98 ENDIF 99 ELSE 100 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = sshn(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 101 ELSE ; ssh_m(:,:) = sshn(:,:) 102 ENDIF 103 ENDIF 104 ! 105 IF( lk_vvl ) fse3t_m(:,:) = zdep(:,:) 79 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = sshn(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 80 ELSE ; ssh_m(:,:) = sshn(:,:) 81 ENDIF 82 ! 83 IF( lk_vvl ) fse3t_m(:,:) = fse3t_n(:,:,1) 106 84 ! 107 85 ELSE … … 112 90 IF(lwp) WRITE(numout,*) '~~~~~~~ mean fields initialised to instantaneous values' 113 91 zcoef = REAL( nn_fsbc - 1, wp ) 114 ssu_m(:,:) = zcoef * zub(:,:)115 ssv_m(:,:) = zcoef * zvb(:,:)92 ssu_m(:,:) = zcoef * ub(:,:,1) 93 ssv_m(:,:) = zcoef * vb(:,:,1) 116 94 IF( ln_useCT ) THEN ; sst_m(:,:) = zcoef * eos_pt_from_ct( zts(:,:,jp_tem), zts(:,:,jp_sal) ) 117 95 ELSE ; sst_m(:,:) = zcoef * zts(:,:,jp_tem) … … 119 97 sss_m(:,:) = zcoef * zts(:,:,jp_sal) 120 98 ! ! removed inverse barometer ssh when Patm forcing is used (for sea-ice dynamics) 121 IF( nn_components == jp_iam_opa ) THEN 122 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = zcoef * ( sshb(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) ) 123 ELSE ; ssh_m(:,:) = zcoef * sshb(:,:) 124 ENDIF 125 ELSE 126 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = zcoef * ( sshn(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) ) 127 ELSE ; ssh_m(:,:) = zcoef * sshn(:,:) 128 ENDIF 99 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = zcoef * ( sshn(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) ) 100 ELSE ; ssh_m(:,:) = zcoef * sshn(:,:) 129 101 ENDIF 130 102 ! 131 IF( lk_vvl ) fse3t_m(:,:) = zcoef * zdep(:,:)103 IF( lk_vvl ) fse3t_m(:,:) = zcoef * fse3t_n(:,:,1) 132 104 ! ! ---------------------------------------- ! 133 105 ELSEIF( MOD( kt - 2 , nn_fsbc ) == 0 ) THEN ! Initialisation: New mean computation ! … … 143 115 ! ! Cumulate at each time step ! 144 116 ! ! ---------------------------------------- ! 145 ssu_m(:,:) = ssu_m(:,:) + zub(:,:)146 ssv_m(:,:) = ssv_m(:,:) + zvb(:,:)117 ssu_m(:,:) = ssu_m(:,:) + ub(:,:,1) 118 ssv_m(:,:) = ssv_m(:,:) + vb(:,:,1) 147 119 IF( ln_useCT ) THEN ; sst_m(:,:) = sst_m(:,:) + eos_pt_from_ct( zts(:,:,jp_tem), zts(:,:,jp_sal) ) 148 120 ELSE ; sst_m(:,:) = sst_m(:,:) + zts(:,:,jp_tem) … … 150 122 sss_m(:,:) = sss_m(:,:) + zts(:,:,jp_sal) 151 123 ! ! removed inverse barometer ssh when Patm forcing is used (for sea-ice dynamics) 152 IF( nn_components == jp_iam_opa ) THEN 153 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = ssh_m(:,:) + sshb(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 154 ELSE ; ssh_m(:,:) = ssh_m(:,:) + sshb(:,:) 155 ENDIF 156 ELSE 157 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = ssh_m(:,:) + sshb(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 158 ELSE ; ssh_m(:,:) = ssh_m(:,:) + sshb(:,:) 159 ENDIF 160 ENDIF 161 ! 162 IF( lk_vvl ) fse3t_m(:,:) = fse3t_m(:,:) + zdep(:,:) 124 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = ssh_m(:,:) + sshn(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 125 ELSE ; ssh_m(:,:) = ssh_m(:,:) + sshn(:,:) 126 ENDIF 127 ! 128 IF( lk_vvl ) fse3t_m(:,:) = fse3t_m(:,:) + fse3t_n(:,:,1) 163 129 164 130 ! ! ---------------------------------------- !
Note: See TracChangeset
for help on using the changeset viewer.