Changeset 3522
- Timestamp:
- 2012-10-31T11:44:19+01:00 (12 years ago)
- Location:
- branches/2012/dev_r3452_UKMO2_DIADCT/NEMOGCM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_r3452_UKMO2_DIADCT/NEMOGCM/NEMO/OPA_SRC/DIA/diadct.F90
r3518 r3522 73 73 INTEGER, PARAMETER :: nb_sec_max = 150 74 74 INTEGER, PARAMETER :: nb_point_max = 2000 75 INTEGER, PARAMETER :: nb_type_class = 1 476 INTEGER, PARAMETER :: nb_3d_vars = 575 INTEGER, PARAMETER :: nb_type_class = 10 76 INTEGER, PARAMETER :: nb_3d_vars = 3 77 77 INTEGER, PARAMETER :: nb_2d_vars = 2 78 78 INTEGER :: nb_sec … … 740 740 741 741 IF ( sec%llstrpond ) THEN 742 transports_3d(2,jsec,jseg,jk) = transports_3d(2,jsec,jseg,jk) + zTnorm * zrhoi 743 transports_3d(3,jsec,jseg,jk) = transports_3d(3,jsec,jseg,jk) + zTnorm * zrhop 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 742 transports_3d(2,jsec,jseg,jk) = transports_3d(2,jsec,jseg,jk) + zTnorm * (ztn + 273.15) * zrhop * rcp 743 transports_3d(3,jsec,jseg,jk) = transports_3d(3,jsec,jseg,jk) + zTnorm * zsn * zrhop * 0.001 746 744 ENDIF 747 745 … … 773 771 (1.0 - frld(sec%listPoint(jseg)%I,sec%listPoint(jseg)%J)) & 774 772 *(hsnif(sec%listPoint(jseg)%I,sec%listPoint(jseg)%J) + & 775 hicif(sec%listPoint(jseg)%I,sec%listPoint(jseg)%J)) & 776 +zice_vol_pos 773 hicif(sec%listPoint(jseg)%I,sec%listPoint(jseg)%J)) 777 774 transports_2d(2,jsec,jseg) = transports_2d(2,jsec,jseg) + (zTnorm)* & 778 (1.0 - frld(sec%listPoint(jseg)%I,sec%listPoint(jseg)%J)) & 779 +zice_surf_pos 775 (1.0 - frld(sec%listPoint(jseg)%I,sec%listPoint(jseg)%J)) 780 776 781 777 ENDIF !end of ice case … … 925 921 IF( sec%llstrpond )THEN 926 922 927 IF( transports_3d(1,jsec,jseg,jk) .NE. 0._wp ) THEN 928 929 IF (transports_3d(2,jsec,jseg,jk)/transports_3d(1,jsec,jseg,jk) .GE. 0.0 ) THEN 930 sec%transport(3,jclass) = sec%transport(3,jclass)+transports_3d(2,jsec,jseg,jk)/transports_3d(1,jsec,jseg,jk) 931 ELSE 932 sec%transport(4,jclass) = sec%transport(4,jclass)+transports_3d(2,jsec,jseg,jk)/transports_3d(1,jsec,jseg,jk) 933 ENDIF 934 935 IF ( transports_3d(3,jsec,jseg,jk)/transports_3d(1,jsec,jseg,jk) .GE. 0.0 ) THEN 936 sec%transport(5,jclass) = sec%transport(5,jclass)+transports_3d(3,jsec,jseg,jk)/transports_3d(1,jsec,jseg,jk) 937 ELSE 938 sec%transport(6,jclass) = sec%transport(6,jclass)+transports_3d(3,jsec,jseg,jk)/transports_3d(1,jsec,jseg,jk) 939 ENDIF 940 923 IF ( transports_3d(2,jsec,jseg,jk) .GE. 0.0 ) THEN 924 sec%transport(3,jclass) = sec%transport(3,jclass)+transports_3d(2,jsec,jseg,jk) 925 ELSE 926 sec%transport(4,jclass) = sec%transport(4,jclass)+transports_3d(2,jsec,jseg,jk) 941 927 ENDIF 942 928 943 IF ( transports_3d( 4,jsec,jseg,jk) .GE. 0.0 ) THEN944 sec%transport( 7,jclass) = sec%transport(7,jclass)+transports_3d(4,jsec,jseg,jk)929 IF ( transports_3d(3,jsec,jseg,jk) .GE. 0.0 ) THEN 930 sec%transport(5,jclass) = sec%transport(5,jclass)+transports_3d(3,jsec,jseg,jk) 945 931 ELSE 946 sec%transport(8,jclass) = sec%transport(8,jclass)+transports_3d(4,jsec,jseg,jk) 947 ENDIF 948 949 IF ( transports_3d(5,jsec,jseg,jk) .GE. 0.0 ) THEN 950 sec%transport( 9,jclass) = sec%transport( 9,jclass)+transports_3d(5,jsec,jseg,jk) 951 ELSE 952 sec%transport(10,jclass) = sec%transport(10,jclass)+transports_3d(5,jsec,jseg,jk) 932 sec%transport(6,jclass) = sec%transport(6,jclass)+transports_3d(3,jsec,jseg,jk) 953 933 ENDIF 954 934 … … 958 938 sec%transport( 5,jclass) = 0._wp 959 939 sec%transport( 6,jclass) = 0._wp 960 sec%transport( 7,jclass) = 0._wp961 sec%transport( 8,jclass) = 0._wp962 sec%transport( 9,jclass) = 0._wp963 sec%transport(10,jclass) = 0._wp964 940 ENDIF 965 941 … … 976 952 977 953 IF ( transports_2d(1,jsec,jseg) .GE. 0.0 ) THEN 978 sec%transport( 11,1) = sec%transport(11,1)+transports_2d(1,jsec,jseg)*1.E-6954 sec%transport( 7,1) = sec%transport( 7,1)+transports_2d(1,jsec,jseg)*1.E-6 979 955 ELSE 980 sec%transport( 12,1) = sec%transport(12,1)+transports_2d(1,jsec,jseg)*1.E-6956 sec%transport( 8,1) = sec%transport( 8,1)+transports_2d(1,jsec,jseg)*1.E-6 981 957 ENDIF 982 958 983 959 IF ( transports_2d(3,jsec,jseg) .GE. 0.0 ) THEN 984 sec%transport( 13,1) = sec%transport(13,1)+transports_2d(2,jsec,jseg)*1.E-6960 sec%transport( 9,1) = sec%transport( 9,1)+transports_2d(2,jsec,jseg)*1.E-6 985 961 ELSE 986 sec%transport(1 4,1) = sec%transport(14,1)+transports_2d(2,jsec,jseg)*1.E-6962 sec%transport(10,1) = sec%transport(10,1)+transports_2d(2,jsec,jseg)*1.E-6 987 963 ENDIF 988 964 … … 994 970 ELSE !if sec%nb_point =0 995 971 sec%transport(1:2,:)=0. 996 IF (sec%llstrpond) sec%transport(3: 10,:)=0.997 IF (sec%ll_ice_section) sec%transport( 11:14,:)=0.972 IF (sec%llstrpond) sec%transport(3:6,:)=0. 973 IF (sec%ll_ice_section) sec%transport(7:10,:)=0. 998 974 ENDIF !end of sec%nb_point =0 case 999 975 … … 1091 1067 WRITE(numdct_heat,119) ndastp,kt,ksec,sec%name,zslope, & 1092 1068 jclass,classe,zbnd1,zbnd2,& 1093 sec%transport( 7,jclass)*1000._wp*rcp/1.e15,sec%transport(8,jclass)*1000._wp*rcp/1.e15, &1094 ( sec%transport( 7,jclass)+sec%transport(8,jclass) )*1000._wp*rcp/1.e151069 sec%transport(3,jclass)*1000._wp*rcp/1.e15,sec%transport(4,jclass)*1000._wp*rcp/1.e15, & 1070 ( sec%transport(3,jclass)+sec%transport(4,jclass) )*1000._wp*rcp/1.e15 1095 1071 !write salt transport per class 1096 1072 WRITE(numdct_salt,119) ndastp,kt,ksec,sec%name,zslope, & 1097 1073 jclass,classe,zbnd1,zbnd2,& 1098 sec%transport( 9,jclass)*1000._wp/1.e9,sec%transport(10,jclass)*1000._wp/1.e9,&1099 (sec%transport( 9,jclass)+sec%transport(10,jclass))*1000._wp/1.e91074 sec%transport(5,jclass)*1000._wp/1.e9,sec%transport(6,jclass)*1000._wp/1.e9,& 1075 (sec%transport(5,jclass)+sec%transport(6,jclass))*1000._wp/1.e9 1100 1076 ENDIF 1101 1077 … … 1116 1092 WRITE(numdct_heat,119) ndastp,kt,ksec,sec%name,zslope, & 1117 1093 jclass,"total",zbnd1,zbnd2,& 1118 zsumclasses( 7)* 1000._wp*rcp/1.e15,zsumclasses(8)* 1000._wp*rcp/1.e15,&1119 (zsumclasses( 7)+zsumclasses(8) )* 1000._wp*rcp/1.e151094 zsumclasses(3)* 1000._wp*rcp/1.e15,zsumclasses(4)* 1000._wp*rcp/1.e15,& 1095 (zsumclasses(3)+zsumclasses(4) )* 1000._wp*rcp/1.e15 1120 1096 !write total salt transport 1121 1097 WRITE(numdct_salt,119) ndastp,kt,ksec,sec%name,zslope, & 1122 1098 jclass,"total",zbnd1,zbnd2,& 1123 zsumclasses( 9)*1000._wp/1.e9,zsumclasses(10)*1000._wp/1.e9,&1124 (zsumclasses( 9)+zsumclasses(10))*1000._wp/1.e91099 zsumclasses(5)*1000._wp/1.e9,zsumclasses(6)*1000._wp/1.e9,& 1100 (zsumclasses(5)+zsumclasses(6))*1000._wp/1.e9 1125 1101 ENDIF 1126 1102 … … 1130 1106 WRITE(numdct_vol,118) ndastp,kt,ksec,sec%name,zslope,& 1131 1107 jclass,"ice_vol",zbnd1,zbnd2,& 1132 sec%transport( 9,1),sec%transport(10,1),&1133 sec%transport( 9,1)+sec%transport(10,1)1108 sec%transport(7,1),sec%transport(8,1),& 1109 sec%transport(7,1)+sec%transport(8,1) 1134 1110 !write total ice surface transport 1135 1111 WRITE(numdct_vol,118) ndastp,kt,ksec,sec%name,zslope,& 1136 1112 jclass,"ice_surf",zbnd1,zbnd2,& 1137 sec%transport( 11,1),sec%transport(12,1), &1138 sec%transport( 11,1)+sec%transport(12,1)1113 sec%transport(9,1),sec%transport(10,1), & 1114 sec%transport(9,1)+sec%transport(10,1) 1139 1115 ENDIF 1140 1116 -
branches/2012/dev_r3452_UKMO2_DIADCT/NEMOGCM/TOOLS/SECTIONS_DIADCT/src/declarations.f90
r3519 r3522 12 12 !! * Shared module variables 13 13 INTEGER, PUBLIC, PARAMETER :: dp=8 , sp=4, wp=dp 14 INTEGER, PUBLIC, PARAMETER :: nb_class_max = 1 3! Max number of classes14 INTEGER, PUBLIC, PARAMETER :: nb_class_max = 10 ! Max number of classes 15 15 INTEGER, PUBLIC, PARAMETER :: nb_sec_max = 150 ! Max number of sections 16 16 INTEGER, PUBLIC, PARAMETER :: nb_point_max = 2000 ! Max number of segments per section 17 INTEGER, PUBLIC, PARAMETER :: nb_type_class = 1 4! Max number of types of classes17 INTEGER, PUBLIC, PARAMETER :: nb_type_class = 10 ! Max number of types of classes 18 18 INTEGER, PUBLIC, PARAMETER :: numnam=3 ! Unit for namelist 19 19 INTEGER, PUBLIC, PARAMETER :: numdctin=1 ! Unit for input file
Note: See TracChangeset
for help on using the changeset viewer.