Changeset 3518
 Timestamp:
 20121029T13:22:36+01:00 (11 years ago)
 Location:
 branches/2012/dev_r3452_UKMO2_DIADCT
 Files:

 2 edited
Legend:
 Unmodified
 Added
 Removed

branches/2012/dev_r3452_UKMO2_DIADCT/DOC/TexFiles/Chapters/Chap_DIA.tex
r3294 r3518 836 836  \texttt{volume\_transport} for volume transports ( unit: $10^{6} m^{3} s^{1}$ ) 837 837 838  \texttt{heat\_transport} for heat transports ( unit: $ 10^{15} W$ )839 840  \texttt{salt\_transport} for salt transports ( unit: $ 10^{9}g s^{1}$ )\\838  \texttt{heat\_transport} for heat transports ( unit: $W$ ) 839 840  \texttt{salt\_transport} for salt transports ( unit: $kg s^{1}$ )\\ 841 841 842 842 
branches/2012/dev_r3452_UKMO2_DIADCT/NEMOGCM/NEMO/OPA_SRC/DIA/diadct.F90
r3501 r3518 21 21 !! 22 22 !! 23 !! dia_dct : compute the transport through a sec.24 !! dia_dct_init : read namelist.25 !! readsec : read sections description and pathway26 !! removepoints : remove points which are common to 2 procs23 !! dia_dct : Compute the transport through a sec. 24 !! dia_dct_init : Read namelist. 25 !! readsec : Read sections description and pathway 26 !! removepoints : Remove points which are common to 2 procs 27 27 !! transport : Compute transport for each sections 28 !! dia_dct_wri : write tranports results in ascii files29 !! interp : compute Temperature/Salinity/density onUpoint or Vpoint28 !! dia_dct_wri : Write tranports results in ascii files 29 !! interp : Compute temperature/salinity/density at Upoint or Vpoint 30 30 !! 31 31 !! … … 95 95 INTEGER :: nb_class ! number of boundaries for density classes 96 96 INTEGER, DIMENSION(nb_point_max) :: direction ! vector direction of the point in the section 97 CHARACTER(len=40),DIMENSION(nb_class_max) :: classname ! c aracteristics of the class97 CHARACTER(len=40),DIMENSION(nb_class_max) :: classname ! characteristics of the class 98 98 REAL(wp), DIMENSION(nb_class_max) :: zsigi ,&! insitu density classes (99 if you don't want) 99 99 zsigp ,&! potential density classes (99 if you don't want) … … 309 309 INTEGER :: isec, iiglo, ijglo, iiloc, ijloc,iost,i1 ,i2 ! temporary integer 310 310 INTEGER :: jsec, jpt ! dummy loop indices 311 ! heat/salt tranport is actived312 311 313 312 INTEGER, DIMENSION(2) :: icoord … … 501 500 !! *** function removepoints 502 501 !! 503 !! ** Purpose :: 504 !! remove points which are common to 2 procs 505 !! 502 !! ** Purpose :: Remove points which are common to 2 procs 506 503 !! 507 504 ! … … 595 592 !! loop on the level jk !! 596 593 !! 597 !! Output :: Arrays containing the volume,density, salinity,temperature etc598 !! transports for eachpoint in a section, summed over each nn_dct.594 !! Output :: Arrays containing the volume,density,heat,salt transports for each i 595 !! point in a section, summed over each nn_dct. 599 596 !! 600 597 !! … … 698 695 DO jk=1,mbathy(k%I,k%J) 699 696 700 ! compute temp arature, salinity, insitu & potential density, ssh and depth at U/V point697 ! compute temperature, salinity, insitu & potential density, ssh and depth at U/V point 701 698 SELECT CASE( sec%direction(jseg) ) 702 699 CASE(0,1) … … 745 742 transports_3d(2,jsec,jseg,jk) = transports_3d(2,jsec,jseg,jk) + zTnorm * zrhoi 746 743 transports_3d(3,jsec,jseg,jk) = transports_3d(3,jsec,jseg,jk) + zTnorm * zrhop 747 transports_3d(4,jsec,jseg,jk) = transports_3d(4,jsec,jseg,jk) + zTnorm * ztn748 transports_3d(5,jsec,jseg,jk) = transports_3d(5,jsec,jseg,jk) + zTnorm * zsn 744 transports_3d(4,jsec,jseg,jk) = transports_3d(4,jsec,jseg,jk) + zTnorm * (ztn + 273.15) * zrhop * rcp 745 transports_3d(5,jsec,jseg,jk) = transports_3d(5,jsec,jseg,jk) + zTnorm * zsn * zrhop * 0.001 749 746 ENDIF 750 747 … … 787 784 ENDDO !end of loop on the segment 788 785 789 ENDIF 786 ENDIF !end of sec%nb_point =0 case 790 787 ! 791 788 END SUBROUTINE transport … … 796 793 !! and sum over the density/salinity/temperature/depth classes 797 794 !! 798 !! Method: 799 !! Sum over relevant grid cells to obtain values 800 !! for each 795 !! Method: Sum over relevant grid cells to obtain values 796 !! for each class 801 797 !! There are several loops: 802 798 !! loop on the segment between 2 nodes … … 805 801 !! test on the density/temperature/salinity/level 806 802 !! 807 !! ** Method :Transport through a given section is equal to the sum of transports808 !! 809 !! 810 !! 803 !! Note: Transport through a given section is equal to the sum of transports 804 !! computed on each proc. 805 !! On each proc,transport is equal to the sum of transport computed through 806 !! segments linking each point of sec%listPoint with the next one. 811 807 !! 812 808 !! … … 816 812 817 813 TYPE(POINT_SECTION) :: k 818 INTEGER :: jk,jseg,jclass ! loopon level/segment/classes814 INTEGER :: jk,jseg,jclass ! dummy variables for looping on level/segment/classes 819 815 REAL(wp) :: ztn, zsn, zrhoi, zrhop, zsshn, zfsdep ! temperature/salinity/ssh/potential density /depth at u/v point 820 816 !! … … 891 887 ! LOOP ON THE DENSITY CLASSES  892 888 ! 893 !The computation is made for each density/ heat/salt/...class889 !The computation is made for each density/temperature/salinity/depth class 894 890 DO jclass=1,MAX(1,sec%nb_class1) 895 891 … … 1015 1011 !! 1016 1012 !! 2. Write heat transports in "heat_transport" 1017 !! Unit: Peta W : area * Velocity * T * rhau * Cp / 1.e151013 !! Unit: W : area * Velocity / 1.e6 * T(in Kelvin) * rhop * Cp 1018 1014 !! 1019 1015 !! 3. Write salt transports in "salt_transport" 1020 !! Unit: 10^9 g m^3 / s : area * Velocity * S / 1.e61016 !! Unit: Kg/s : area * Velocity / 1.e6 * S * 1.e3 1021 1017 !! 1022 1018 !! … … 1152 1148 !! 1153 1149 !! 1154 !! Purpose: compute Temperature/Salinity/density at Upoint or Vpoint1150 !! Purpose: compute temperature/salinity/density at Upoint or Vpoint 1155 1151 !!  1156 1152 !! … … 1161 1157 !! 1162 1158 !! 1163 !!  I  I+1  Z= Temperature/Salinity/density at UpoinT1159 !!  I  I+1  Z=temperature/salinity/density at UpoinT 1164 1160 !!    1165 !!  1. Veritcal einterpolation: compute zbis1161 !!  1. Veritcal interpolation: compute zbis 1166 1162 !!    interpolation between ptab(I,J,K) and ptab(I,J,K+1) 1167 1163 !!    zbis = … … 1244 1240 zdep2 = fsdept(ii2,ij2,kk)  zdepu 1245 1241 1246 ! weights1242 ! weights 1247 1243 zwgt1 = SQRT( ( 0.5 * zet1 ) * ( 0.5 * zet1 ) + ( zdep1 * zdep1 ) ) 1248 1244 zwgt2 = SQRT( ( 0.5 * zet2 ) * ( 0.5 * zet2 ) + ( zdep2 * zdep2 ) ) … … 1271 1267 1272 1268 IF( ze3t >= 0. )THEN 1273 ! zbis1269 ! zbis 1274 1270 zbis = ptab(ii2,ij2,kk) + zwgt1 * ( ptab(ii2,ij2,kk1)  ptab(ii2,ij2,kk) ) 1275 1271 ! result 1276 1272 interp = umask(ii1,ij1,kk) * ( zet2 * ptab(ii1,ij1,kk) + zet1 * zbis )/( zet1 + zet2 ) 1277 1273 ELSE 1278 ! zbis1274 ! zbis 1279 1275 zbis = ptab(ii1,ij1,kk) + zwgt2 * ( ptab(ii1,ij1,kk1)  ptab(ii1,ij2,kk) ) 1280 1276 ! result … … 1303 1299 END SUBROUTINE dia_dct_init 1304 1300 1305 SUBROUTINE dia_dct( kt ) 1306 INTEGER, INTENT( in ) :: kt! ocean timestep index1301 SUBROUTINE dia_dct( kt ) ! Dummy routine 1302 INTEGER, INTENT( in ) :: kt ! ocean timestep index 1307 1303 WRITE(*,*) 'dia_dct: You should not have seen this print! error?', kt 1308 1304 END SUBROUTINE dia_dct
Note: See TracChangeset
for help on using the changeset viewer.