- Timestamp:
- 2013-11-07T11:19:49+01:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/OPA_SRC/DIA/diahsb.F90
r4161 r4162 36 36 LOGICAL, PUBLIC :: ln_diahsb !: check the heat and salt budgets 37 37 38 REAL( wp), SAVE :: frc_t , frc_s , frc_v ! global forcing trends39 REAL( wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: ssh_ini !40 REAL( wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: hc_loc_ini, sc_loc_ini, e3t_ini !41 REAL( wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: hcssh_loc_ini, scssh_loc_ini !38 REAL(dp), SAVE :: frc_t , frc_s , frc_v ! global forcing trends 39 REAL(dp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: ssh_ini ! 40 REAL(dp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: hc_loc_ini, sc_loc_ini, e3t_ini ! 41 REAL(dp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: hcssh_loc_ini, scssh_loc_ini ! 42 42 43 43 !! * Substitutions … … 67 67 !! 68 68 INTEGER :: jk ! dummy loop indice 69 REAL( wp) :: zdiff_hc , zdiff_sc ! heat and salt content variations70 REAL( wp) :: zdiff_v1 , zdiff_v2 ! volume variation71 REAL( wp) :: z_hc , z_sc ! heat and salt content72 REAL( wp) :: z_v1 , z_v2 ! volume73 REAL( wp) :: zdeltat ! - -74 REAL( wp) :: z_frc_trd_t , z_frc_trd_s ! - -75 REAL( wp) :: z_frc_trd_v ! - -76 REAL( wp), POINTER, DIMENSION(:,:) :: zsurf !69 REAL(dp) :: zdiff_hc , zdiff_sc ! heat and salt content variations 70 REAL(dp) :: zdiff_v1 , zdiff_v2 ! volume variation 71 REAL(dp) :: z_hc , z_sc ! heat and salt content 72 REAL(dp) :: z_v1 , z_v2 ! volume 73 REAL(dp) :: zdeltat ! - - 74 REAL(dp) :: z_frc_trd_t , z_frc_trd_s ! - - 75 REAL(dp) :: z_frc_trd_v ! - - 76 REAL(dp), POINTER, DIMENSION(:,:) :: zsurf ! 77 77 !!--------------------------------------------------------------------------- 78 78 IF( nn_timing == 1 ) CALL timing_start('dia_hsb') … … 88 88 z_frc_trd_t = glob_sum( sbc_tsc(:,:,jp_tem) * zsurf(:,:) ) ! heat fluxes 89 89 z_frc_trd_s = glob_sum( sbc_tsc(:,:,jp_sal) * zsurf(:,:) ) ! salt fluxes 90 ! 91 IF( ln_rnf ) z_frc_trd_t = z_frc_trd_t + glob_sum( rnf_tsc(:,:,jp_tem) * zsurf(:,:) ) 92 IF( ln_rnf_sal) z_frc_trd_s = z_frc_trd_s + glob_sum( rnf_tsc(:,:,jp_sal) * zsurf(:,:) ) 93 90 94 ! Add penetrative solar radiation 91 95 IF( ln_traqsr ) z_frc_trd_t = z_frc_trd_t + r1_rau0_rcp * glob_sum( qsr (:,:) * zsurf(:,:) ) … … 100 104 ! 2a - Content variations ! 101 105 ! ------------------------ ! 102 zdiff_v2 = 0._ wp103 zdiff_hc = 0._ wp104 zdiff_sc = 0._ wp106 zdiff_v2 = 0._dp 107 zdiff_hc = 0._dp 108 zdiff_sc = 0._dp 105 109 ! volume variation (calculated with ssh) 106 110 zdiff_v1 = glob_sum( zsurf(:,:) * ( sshn(:,:) - ssh_ini(:,:) ) ) … … 122 126 123 127 ! add ssh if not vvl 124 #if ! defined key_vvl 125 zdiff_v2 = zdiff_v2 + zdiff_v1126 zdiff_hc = zdiff_hc + glob_sum( zsurf(:,:) * ( sshn(:,:) * tsn(:,:,1,jp_tem) &127 & - hcssh_loc_ini(:,:) ) )128 zdiff_sc = zdiff_sc + glob_sum( zsurf(:,:) * ( sshn(:,:) * tsn(:,:,1,jp_sal) &129 & - scssh_loc_ini(:,:) ) )130 #endif 128 IF( .NOT. lk_vvl ) THEN 129 zdiff_v2 = zdiff_v2 + zdiff_v1 130 zdiff_hc = zdiff_hc + glob_sum( zsurf(:,:) * ( sshn(:,:) * tsn(:,:,1,jp_tem) & 131 & - hcssh_loc_ini(:,:) ) ) 132 zdiff_sc = zdiff_sc + glob_sum( zsurf(:,:) * ( sshn(:,:) * tsn(:,:,1,jp_sal) & 133 & - scssh_loc_ini(:,:) ) ) 134 ENDIF 131 135 ! 132 136 ! ----------------------- ! 133 137 ! 2b - Content ! 134 138 ! ----------------------- ! 135 z_v2 = 0._ wp136 z_hc = 0._ wp137 z_sc = 0._ wp139 z_v2 = 0._dp 140 z_hc = 0._dp 141 z_sc = 0._dp 138 142 ! volume (calculated with ssh) 139 143 z_v1 = glob_sum( zsurf(:,:) * sshn(:,:) ) … … 147 151 ENDDO 148 152 ! add ssh if not vvl 149 #if ! defined key_vvl 150 z_v2 = z_v2 + z_v1151 z_hc = z_hc + glob_sum( zsurf(:,:) * sshn(:,:) * tsn(:,:,1,jp_tem) )152 z_sc = z_sc + glob_sum( zsurf(:,:) * sshn(:,:) * tsn(:,:,1,jp_sal) )153 #endif 153 IF( .NOT. lk_vvl ) THEN 154 z_v2 = z_v2 + z_v1 155 z_hc = z_hc + glob_sum( zsurf(:,:) * sshn(:,:) * tsn(:,:,1,jp_tem) ) 156 z_sc = z_sc + glob_sum( zsurf(:,:) * sshn(:,:) * tsn(:,:,1,jp_sal) ) 157 ENDIF 154 158 155 159 ! ----------------------- ! … … 160 164 CALL iom_put( 'bgtemper' , z_hc / z_v2 ) ! Temperature (C) 161 165 CALL iom_put( 'bgsaline' , z_sc / z_v2 ) ! Salinity (psu) 162 CALL iom_put( 'bgheatco' , zdiff_hc * rau0 * rcp * 1.e-9_ wp ) ! Heat content variation (10^9 J)166 CALL iom_put( 'bgheatco' , zdiff_hc * rau0 * rcp * 1.e-9_dp ) ! Heat content variation (10^9 J) 163 167 CALL iom_put( 'bgsaltco' , zdiff_sc * 1.e-9 ) ! Salt content variation (psu*km3) 164 168 CALL iom_put( 'bgvolssh' , zdiff_v1 * 1.e-9 ) ! volume ssh (km3) … … 166 170 CALL iom_put( 'bgvoltot' , zdiff_v2 * 1.e-9 ) ! volume total (km3) 167 171 CALL iom_put( 'bgfrcvol' , frc_v * 1.e-9 ) ! vol - surface forcing (volume) 168 CALL iom_put( 'bgfrctem' , frc_t * rau0 * rcp * 1.e-9_ wp ) ! hc - surface forcing (heat content)172 CALL iom_put( 'bgfrctem' , frc_t * rau0 * rcp * 1.e-9_dp ) ! hc - surface forcing (heat content) 169 173 CALL iom_put( 'bgfrcsal' , frc_s * 1.e-9 ) ! sc - surface forcing (salt content) 170 174 ! … … 286 290 hcssh_loc_ini(:,:) = tsn(:,:,1,jp_tem) * sshn(:,:) ! initial heat content in ssh 287 291 scssh_loc_ini(:,:) = tsn(:,:,1,jp_sal) * sshn(:,:) ! initial salt content in ssh 288 frc_v = 0._ wp289 frc_t = 0._ wp290 frc_s = 0._ wp292 frc_v = 0._dp 293 frc_t = 0._dp 294 frc_s = 0._dp 291 295 ENDIF 292 296
Note: See TracChangeset
for help on using the changeset viewer.