diff --git a/Dockerfile b/Dockerfile index c87e12b..79fbcfe 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,10 @@ # ===== 第一阶段:构建阶段 ===== FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +# 配置 NuGet 使用国内镜像源 +RUN dotnet nuget add source https://mirrors.cloud.tencent.com/nuget/ \ + && dotnet nuget disable source nuget.org + # 配置 apt-get 使用 apt-cacher-ng 作为代理 RUN echo 'Acquire::http::Proxy "http://192.168.1.140:3142";' > /etc/apt/apt.conf.d/01proxy diff --git a/Fortran/1.json b/Fortran/1.json index 764c1d3..d41f2ea 100644 --- a/Fortran/1.json +++ b/Fortran/1.json @@ -1,9 +1,9 @@ { - "fortranSourceFile": "D:\\\u5DE5\u4F5C2025\\\u7B97\u6CD5\u5E73\u53F0\\dll\\\u9A6C\u65AF\u4EAC\u8DDF\u6A21\u578B\\MSJGMX\\MSJGMX\\MSJGMX - \u526F\u672C.f90", + "fortranSourceFile": "D:\\\u5DE5\u4F5C2025\\\u7B97\u6CD5\u5E73\u53F0\\dll\\\u9A6C\u65AF\u4EAC\u6839-\u65B0\u5B89\u6C5F\u6A21\u578B\\ceshi\\Console1\\Console1\\MSJGMX - \u526F\u672C.f90", "fortranFunctionName": "MSJGMX", "projectName": "FortranWebApi", - "outputDirectory": "D:\\\u5DE5\u4F5C2025\\\u7B97\u6CD5\u5E73\u53F0\\\u8F93\u51FA\u5E93\\\u9A6C\u65AF\u4EAC\u8DDF\u6A21\u578B", - "cmbLanguage": "", + "outputDirectory": "D:\\\u5DE5\u4F5C2025\\\u7B97\u6CD5\u5E73\u53F0\\\u8F93\u51FA\u5E93\\\u9A6C\u65AF\u4EAC\u6839\u65B0\u5B89\u6C5F\u6A21\u578B", + "cmbLanguage": "Fortran", "parameters": [ { "name": "FILELEN", @@ -30,9 +30,105 @@ "isSelected": true }, { - "name": "PAR", + "name": "WUM", "dataType": "Float", - "arrayType": "OneDimensional", + "arrayType": "Scalar", + "direction": "Input", + "description": "", + "isSelected": true + }, + { + "name": "W1", + "dataType": "Float", + "arrayType": "Scalar", + "direction": "Input", + "description": "", + "isSelected": true + }, + { + "name": "WDM", + "dataType": "Float", + "arrayType": "Scalar", + "direction": "Input", + "description": "", + "isSelected": true + }, + { + "name": "KC", + "dataType": "Float", + "arrayType": "Scalar", + "direction": "Input", + "description": "", + "isSelected": true + }, + { + "name": "C", + "dataType": "Float", + "arrayType": "Scalar", + "direction": "Input", + "description": "", + "isSelected": true + }, + { + "name": "B", + "dataType": "Float", + "arrayType": "Scalar", + "direction": "Input", + "description": "", + "isSelected": true + }, + { + "name": "IMP1", + "dataType": "Float", + "arrayType": "Scalar", + "direction": "Input", + "description": "", + "isSelected": true + }, + { + "name": "SM", + "dataType": "Float", + "arrayType": "Scalar", + "direction": "Input", + "description": "", + "isSelected": true + }, + { + "name": "EX", + "dataType": "Float", + "arrayType": "Scalar", + "direction": "Input", + "description": "", + "isSelected": true + }, + { + "name": "KG", + "dataType": "Float", + "arrayType": "Scalar", + "direction": "Input", + "description": "", + "isSelected": true + }, + { + "name": "KSS", + "dataType": "Float", + "arrayType": "Scalar", + "direction": "Input", + "description": "", + "isSelected": true + }, + { + "name": "KKG", + "dataType": "Float", + "arrayType": "Scalar", + "direction": "Input", + "description": "", + "isSelected": true + }, + { + "name": "KKSS", + "dataType": "Float", + "arrayType": "Scalar", "direction": "Input", "description": "", "isSelected": true diff --git a/Fortran/1.xlsx b/Fortran/1.xlsx index b7dbb86..279f36f 100644 Binary files a/Fortran/1.xlsx and b/Fortran/1.xlsx differ diff --git a/Fortran/MSJGMX.f90 b/Fortran/MSJGMX.f90 index d11f59b..e4e11f2 100644 --- a/Fortran/MSJGMX.f90 +++ b/Fortran/MSJGMX.f90 @@ -1,28 +1,39 @@ subroutine MSJGMX( FILELEN ,& - NODE ,& ! 单元出流数组大小 //输入变量 - M ,& ! 无因次单位数组大小 //输入变量 - PAR ,& ! //输入变量 - NAREA ,& ! 单元面积个数 //输入变量 - AREA ,& ! 单元面积 //输入变量 - UH ,& ! 无因次单位线 //输入变量 - DT ,& ! 时段步长 //输入变量 - P ,& ! 降雨系列 //输入变量 - EP ,& ! 蒸发皿蒸发能力 //输入变量 - W ,& ! 土壤含水层 1.上层 2.下层 3.深层 //输入变量 - FR ,& ! 初始产流面积 //输入变量 - S ,& ! 初始自由水深 //输入变量 - QRSS0 ,& ! 初始壤中流流量 //输入变量 - QRG0 ,& ! 初始地下水径流量 //输入变量 - Q20 ,& ! 出流流量初始值 浮点数 //输入 - X ,& ! 流量比重因子 浮点数 //输入参数 - K ,& ! 流量模数 浮点数 //输入参数 - DETAT ,& ! 时间步长 (小时) 浮点数 //输入参数 - C0 ,& ! 系数 浮点数 //输出参数 - C1 ,& ! 浮点数 //输出参数 - C2 ,& ! 浮点数 //输出参数 - QOUT )& ! 出流流量 浮点数 //输出 - BIND(C, NAME="MSJGMX") - + NODE ,& ! ��Ԫ���������С //������� + M ,& ! ����ε�λ�����С //������� + WUM ,& ! �ϲ�����ˮ����wum //������� + W1 ,& ! �²�����ˮ����wl //������� + WDM ,& ! �������ˮ����wdm //������� + KC ,& !������������ϵ��KC //������� + C ,& !�������ϵ��c //������� + B ,& !����ˮ��ˮ����ϵ��b //������� + IMP1 ,& !��ˮ�������imp1 //������� + SM ,& !����ˮ��ˮ����sm //������� + EX ,& !����ˮ��ˮ����ָ��ex //������� + KG ,& !����ˮ����ϵ��kg //������� + KSS ,& !����������ϵ��kss //������� + KKG ,& !����ˮ����ϵ��kkg //������� + KKSS ,& !����������ϵ��kkss //������� + NAREA ,& ! ��Ԫ������� //������� + AREA ,& ! ��Ԫ��� //������� + UH ,& ! ����ε�λ�� //������� + DT ,& ! ʱ�β��� //������� + P ,& ! ����ϵ�� //������� + EP ,& ! �������������� //������� + W ,& ! ������ˮ�� 1.�ϲ� 2.�²� 3.��� //������� + FR ,& ! ��ʼ������� //������� + S ,& ! ��ʼ����ˮ�� //������� + QRSS0 ,& ! ��ʼ���������� //������� + QRG0 ,& ! ��ʼ����ˮ������ //������� + Q20 ,& ! ����������ʼֵ ������ //���� + X ,& ! ������������ ������ //������� + K ,& ! ����ģ�� ������ //������� + DETAT ,& ! ʱ�䲽�� ��Сʱ�� ������ //������� + C0 ,& ! ϵ�� ������ //������� + C1 ,& ! ������ //������� + C2 ,& ! ������ //������� + QOUT )& ! �������� ������ //��� + BIND(C, NAME="MSJGMX") ! Expose subroutine MSJGMX to users of this DLL !DEC$ ATTRIBUTES DLLEXPORT::MSJGMX @@ -44,48 +55,74 @@ subroutine MSJGMX( FILELEN ,& INTEGER::NODE ! INTEGER::M , I ! - REAL::PAR(13) ! 1.上层张力水容量wum 2.下层张力水容量wl 3.深层张力水容量wdm - ! 4.蒸发能力折算系数KC.深层蒸发系数c 6.张力水蓄水容量系数b - ! 7.不透水面积比率imp1 8.自由水蓄水容量sm 9.自由水蓄水容量指数ex - !10.地下水出流系数kg 11.壤中流出流系数kss 12.地下水出流系数kkg - !13.壤中流出流系数kkss + REAL::PAR(13) ! 1.�ϲ�����ˮ����wum 2.�²�����ˮ����wl 3.�������ˮ����wdm + ! 4.������������ϵ��KC.�������ϵ��c 6.����ˮ��ˮ����ϵ��b + ! 7.��ˮ�������imp1 8.����ˮ��ˮ����sm 9.����ˮ��ˮ����ָ��ex + !10.����ˮ����ϵ��kg 11.����������ϵ��kss 12.����ˮ����ϵ��kkg + !13.����������ϵ��kkss - INTEGER::NAREA ! 单元面积个数 - REAL::AREA(NAREA) ! 单元面积 - REAL::UH(M) ! 无因次单位线 - REAL::DT ! 时段步长 - REAL::P(NAREA,NODE) ! 降雨系列 - REAL::EP(NAREA,NODE) ! 蒸发皿蒸发能力 - REAL::W(3) ! 土壤含水层 1.上层 2.下层 3.深层 - REAL::FR ! 初始产流面积 - REAL::S ! 初始自由水深 - REAL::QRSS0 ! 初始壤中流流量 - REAL::QRG0 ! 初始地下水径流量 + REAL::WUM !�ϲ�����ˮ����wum + REAL::W1 !�²�����ˮ����wl + REAL::WDM ! �������ˮ����wdm + REAL::KC ! ������������ϵ�� + REAL::C ! �������ϵ�� + REAL::B ! ����ˮ��ˮ����ϵ�� + REAL::IMP1 ! ��ˮ������� + REAL::SM ! ����ˮ��ˮ���� + REAL::EX ! ����ˮ��ˮ����ָ�� + REAL::KG ! ����ˮ����ϵ�� + REAL::KSS ! ����������ϵ�� + REAL::KKG ! ����ˮ����ϵ�� + REAL::KKSS ! ����������ϵ�� + + INTEGER::NAREA ! ��Ԫ������� + REAL::AREA(NAREA) ! ��Ԫ��� + REAL::UH(M) ! ����ε�λ�� + REAL::DT ! ʱ�β��� + REAL::P(NAREA,NODE) ! ����ϵ�� + REAL::EP(NAREA,NODE) ! �������������� + REAL::W(3) ! ������ˮ�� 1.�ϲ� 2.�²� 3.��� + REAL::FR ! ��ʼ������� + REAL::S ! ��ʼ����ˮ�� + REAL::QRSS0 ! ��ʼ���������� + REAL::QRG0 ! ��ʼ����ˮ������ REAL::Q20(NAREA) - REAL::QOUT(NAREA) + REAL::QOUT(NODE) CALL XAJ( FILELEN ,& - NODE ,& ! 单元出流数组大小 //输入变量 - M ,& ! 无因次单位数组大小 //输入变量 - PAR ,& ! //输入变量 - NAREA ,& ! 单元面积个数 //输入变量 - AREA ,& ! 单元面积 //输入变量 - UH ,& ! 无因次单位线 //输入变量 - DT ,& ! 时段步长 //输入变量 - P ,& ! 降雨系列 //输入变量 - EP ,& ! 蒸发皿蒸发能力 //输入变量 - W ,& ! 土壤含水层 1.上层 2.下层 3.深层 //输入变量 - FR ,& ! 初始产流面积 //输入变量 - S ,& ! 初始自由水深 //输入变量 - QRSS0 ,& ! 初始壤中流流量 //输入变量 - QRG0 ,& ! 初始地下水径流量 //输入变量 - Q20 ,& ! 出流流量初始值 浮点数 //输入 - X ,& ! 流量比重因子 浮点数 //输入参数 - K ,& ! 流量模数 浮点数 //输入参数 - DETAT ,& ! 时间步长 (小时) 浮点数 //输入参数 - C0 ,& ! 系数 浮点数 //输出参数 - C1 ,& ! 浮点数 //输出参数 - C2 ,& ! 浮点数 //输出参数 - QOUT ) ! 出流流量 浮点数 //输出 + NODE ,& ! ��Ԫ���������С //������� + M ,& ! ����ε�λ�����С //������� + WUM ,& ! �ϲ�����ˮ����wum //������� + W1 ,& ! �²�����ˮ����wl //������� + WDM ,& ! �������ˮ����wdm //������� + KC ,& !������������ϵ��KC //������� + C ,& !�������ϵ��c //������� + B ,& !����ˮ��ˮ����ϵ��b //������� + IMP1 ,& !��ˮ�������imp1 //������� + SM ,& !����ˮ��ˮ����sm //������� + EX ,& !����ˮ��ˮ����ָ��ex //������� + KG ,& !����ˮ����ϵ��kg //������� + KSS ,& !����������ϵ��kss //������� + KKG ,& !����ˮ����ϵ��kkg //������� + KKSS ,& !����������ϵ��kkss //������� + NAREA ,& ! ��Ԫ������� //������� + AREA ,& ! ��Ԫ��� //������� + UH ,& ! ����ε�λ�� //������� + DT ,& ! ʱ�β��� //������� + P ,& ! ����ϵ�� //������� + EP ,& ! �������������� //������� + W ,& ! ������ˮ�� 1.�ϲ� 2.�²� 3.��� //������� + FR ,& ! ��ʼ������� //������� + S ,& ! ��ʼ����ˮ�� //������� + QRSS0 ,& ! ��ʼ���������� //������� + QRG0 ,& ! ��ʼ����ˮ������ //������� + Q20 ,& ! ����������ʼֵ ������ //���� + X ,& ! ������������ ������ //������� + K ,& ! ����ģ�� ������ //������� + DETAT ,& ! ʱ�䲽�� ��Сʱ�� ������ //������� + C0 ,& ! ϵ�� ������ //������� + C1 ,& ! ������ //������� + C2 ,& ! ������ //������� + QOUT ) ! �������� ������ //��� end subroutine MSJGMX diff --git a/Fortran/Mc_method.f90 b/Fortran/Mc_method.f90 index 762522f..c51be50 100644 --- a/Fortran/Mc_method.f90 +++ b/Fortran/Mc_method.f90 @@ -11,17 +11,17 @@ ! PURPOSE: Entry point for the console application. ! !**************************************************************************** -SUBROUTINE Mc_method( NFILENAME ,& ! 文件名字长度 整数 //输入参数 - N ,& ! 入流流量数据点个数 整数 //输入参数 - Q1 ,& ! 入流流量 浮点数 //输入参数 - Q20 ,& ! 出流流量初始值 浮点数 //输入 - X ,& ! 流量比重因子 浮点数 //输入参数 - K ,& ! 流量模数 浮点数 //输入参数 - DETAT ,& ! 时间步长 (小时) 浮点数 //输入参数 - C0 ,& ! 系数 浮点数 //输出参数 - C1 ,& ! 浮点数 //输出参数 - C2 ,& ! 浮点数 //输出参数 - Q2 ) ! 出流流量 浮点数 //输出 +SUBROUTINE Mc_method( NFILENAME ,& ! �ļ����ֳ��� ���� //������� + N ,& ! �����������ݵ���� ���� //������� + Q1 ,& ! �������� ������ //������� + Q20 ,& ! ����������ʼֵ ������ //���� + X ,& ! ������������ ������ //������� + K ,& ! ����ģ�� ������ //������� + DETAT ,& ! ʱ�䲽�� ��Сʱ�� ������ //������� + C0 ,& ! ϵ�� ������ //������� + C1 ,& ! ������ //������� + C2 ,& ! ������ //������� + Q2 ) ! �������� ������ //��� INTEGER::NFILENAME CHARACTER(LEN = NFILENAME)::FILENAME diff --git a/Fortran/XAJ.f90 b/Fortran/XAJ.f90 index 8616058..f326c94 100644 --- a/Fortran/XAJ.f90 +++ b/Fortran/XAJ.f90 @@ -1,26 +1,38 @@ -SUBROUTINE XAJ(FILELEN ,& +SUBROUTINE XAJ( FILELEN ,& NODE ,& ! ��Ԫ���������С //������� - M ,& ! ����ε�λ�����С //������� - PAR ,& ! //������� - NAREA ,& ! ��Ԫ������� //������� - AREA ,& ! ��Ԫ��� //������� - UH ,& ! ����ε�λ�� //������� - DT ,& ! ʱ�β��� //������� - P ,& ! ����ϵ�� //������� - EP ,& ! �������������� //������� - W ,& ! ������ˮ�� 1.�ϲ� 2.�²� 3.��� //������� - FR ,& ! ��ʼ������� //������� - S ,& ! ��ʼ����ˮ�� //������� - QRSS0 ,& ! ��ʼ���������� //������� - QRG0 ,& ! ��ʼ����ˮ������ //������� - Q20 ,& ! ����������ʼֵ ������ //���� - X ,& ! ������������ ������ //������� - K ,& ! ����ģ�� ������ //������� - DETAT ,& ! ʱ�䲽�� ��Сʱ�� ������ //������� - C0 ,& ! ϵ�� ������ //������� - C1 ,& ! ������ //������� - C2 ,& ! ������ //������� - QOUT ) ! �������� ������ //��� + M ,& ! ����ε�λ�����С //������� + WUM ,& ! �ϲ�����ˮ����wum //������� + W1 ,& ! �²�����ˮ����wl //������� + WDM ,& ! �������ˮ����wdm //������� + KC ,& !������������ϵ��KC //������� + C ,& !�������ϵ��c //������� + B ,& !����ˮ��ˮ����ϵ��b //������� + IMP1 ,& !��ˮ�������imp1 //������� + SM ,& !����ˮ��ˮ����sm //������� + EX ,& !����ˮ��ˮ����ָ��ex //������� + KG ,& !����ˮ����ϵ��kg //������� + KSS ,& !����������ϵ��kss //������� + KKG ,& !����ˮ����ϵ��kkg //������� + KKSS ,& !����������ϵ��kkss //������� + NAREA ,& ! ��Ԫ������� //������� + AREA ,& ! ��Ԫ��� //������� + UH ,& ! ����ε�λ�� //������� + DT ,& ! ʱ�β��� //������� + P ,& ! ����ϵ�� //������� + EP ,& ! �������������� //������� + W ,& ! ������ˮ�� 1.�ϲ� 2.�²� 3.��� //������� + FR ,& ! ��ʼ������� //������� + S ,& ! ��ʼ����ˮ�� //������� + QRSS0 ,& ! ��ʼ���������� //������� + QRG0 ,& ! ��ʼ����ˮ������ //������� + Q20 ,& ! ����������ʼֵ ������ //���� + X ,& ! ������������ ������ //������� + K ,& ! ����ģ�� ������ //������� + DETAT ,& ! ʱ�䲽�� ��Сʱ�� ������ //������� + C0 ,& ! ϵ�� ������ //������� + C1 ,& ! ������ //������� + C2 ,& ! ������ //������� + QOUT ) ! �������� ������ //��� IMPLICIT NONE @@ -42,6 +54,21 @@ SUBROUTINE XAJ(FILELEN ,& ! 7.��ˮ�������imp1 8.����ˮ��ˮ����sm 9.����ˮ��ˮ����ָ��ex !10.����ˮ����ϵ��kg 11.����������ϵ��kss 12.����ˮ����ϵ��kkg !13.����������ϵ��kkss + + REAL::WUM !�ϲ�����ˮ����wum + REAL::W1 !�²�����ˮ����wl + REAL::WDM ! �������ˮ����wdm + REAL::KC ! ������������ϵ�� + REAL::C ! �������ϵ�� + REAL::B ! ����ˮ��ˮ����ϵ�� + REAL::IMP1 ! ��ˮ������� + REAL::SM ! ����ˮ��ˮ���� + REAL::EX ! ����ˮ��ˮ����ָ�� + REAL::KG ! ����ˮ����ϵ�� + REAL::KSS ! ����������ϵ�� + REAL::KKG ! ����ˮ����ϵ�� + REAL::KKSS ! ����������ϵ�� + integer::NAREA ! ��Ԫ������� //������� REAL::AREA(NAREA) ! ��Ԫ��� REAL::Q1(NAREA,NODE) @@ -69,7 +96,19 @@ SUBROUTINE XAJ(FILELEN ,& CALL XAJMX( FILELEN ,& NODE ,& ! ��Ԫ���������С //������� M ,& ! ����ε�λ�����С //������� - PAR ,& ! //������� + WUM ,& ! �ϲ�����ˮ����wum //������� + W1 ,& ! �²�����ˮ����wl //������� + WDM ,& ! �������ˮ����wdm //������� + KC ,& !������������ϵ��KC //������� + C ,& !�������ϵ��c //������� + B ,& !����ˮ��ˮ����ϵ��b //������� + IMP1 ,& !��ˮ�������imp1 //������� + SM ,& !����ˮ��ˮ����sm //������� + EX ,& !����ˮ��ˮ����ָ��ex //������� + KG ,& !����ˮ����ϵ��kg //������� + KSS ,& !����������ϵ��kss //������� + KKG ,& !����ˮ����ϵ��kkg //������� + KKSS ,& !����������ϵ��kkss //������� AREA(I) ,& ! ��Ԫ��� //������� UH ,& ! ����ε�λ�� //������� DT ,& ! ʱ�β��� //������� diff --git a/Fortran/XAJMX.f90 b/Fortran/XAJMX.f90 index ea84f14..d5a738d 100644 --- a/Fortran/XAJMX.f90 +++ b/Fortran/XAJMX.f90 @@ -1,7 +1,19 @@ SUBROUTINE XAJMX( FILELEN ,& N ,& ! ��Ԫ���������С //������� M ,& ! ����ε�λ�����С //������� - PAR ,& ! //������� + WUM ,& ! �ϲ�����ˮ����wum //������� + W1 ,& ! �²�����ˮ����wl //������� + WDM ,& ! �������ˮ����wdm //������� + KC ,& !������������ϵ��KC //������� + C ,& !�������ϵ��c //������� + B ,& !����ˮ��ˮ����ϵ��b //������� + IMP1 ,& !��ˮ�������imp1 //������� + SM ,& !����ˮ��ˮ����sm //������� + EX ,& !����ˮ��ˮ����ָ��ex //������� + KG ,& !����ˮ����ϵ��kg //������� + KSS ,& !����������ϵ��kss //������� + KKG ,& !����ˮ����ϵ��kkg //������� + KKSS ,& !����������ϵ��kkss //������� AREA ,& ! ��Ԫ��� //������� UH ,& ! ����ε�λ�� //������� DT ,& ! ʱ�β��� //������� @@ -24,6 +36,21 @@ SUBROUTINE XAJMX( FILELEN ,& ! 7.��ˮ�������imp1 8.����ˮ��ˮ����sm 9.����ˮ��ˮ����ָ��ex !10.����ˮ����ϵ��kg 11.����������ϵ��kss 12.����ˮ����ϵ��kkg !13.����������ϵ��kkss + + REAL::WUM !�ϲ�����ˮ����wum + REAL::W1 !�²�����ˮ����wl + REAL::WDM ! �������ˮ����wdm + REAL::KC ! ������������ϵ�� + REAL::C ! �������ϵ�� + REAL::B ! ����ˮ��ˮ����ϵ�� + REAL::IMP1 ! ��ˮ������� + REAL::SM ! ����ˮ��ˮ���� + REAL::EX ! ����ˮ��ˮ����ָ�� + REAL::KG ! ����ˮ����ϵ�� + REAL::KSS ! ����������ϵ�� + REAL::KKG ! ����ˮ����ϵ�� + REAL::KKSS ! ����������ϵ�� + REAL::AREA ! ��Ԫ��� REAL::UH(M) ! ����ε�λ�� REAL::DT ! ʱ�β��� @@ -40,17 +67,7 @@ SUBROUTINE XAJMX( FILELEN ,& REAL::KSSD REAL::KGD REAL::E(3) - REAL::WM(3) - REAL::KC ! ������������ϵ�� - REAL::C ! �������ϵ�� - REAL::B ! ����ˮ��ˮ����ϵ�� - REAL::IMP1 ! ��ˮ������� - REAL::SM ! ����ˮ��ˮ���� - REAL::EX ! ����ˮ��ˮ����ָ�� - REAL::KG ! ����ˮ����ϵ�� - REAL::KSS ! ����������ϵ�� - REAL::KKG ! ����ˮ����ϵ�� - REAL::KKSS ! ����������ϵ�� + REAL::WM(3) !���±�����ԭvb������δ�����ı��� INTEGER::I ! ������ //��ʱ���� @@ -115,18 +132,8 @@ SUBROUTINE XAJMX( FILELEN ,& KGD = 0.0 do i = 1,3 E(I)=0.0 - WM(I) =0.0 END DO - KC = 0.0 - C = 0.0 - B = 0.0 - IMP1 = 0.0 - SM = 0.0 - EX = 0.0 - KG = 0.0 - KSS = 0.0 - KKG = 0.0 - KKSS = 0.0 + U = 0.0 CI = 0.0 CG = 0.0 @@ -161,23 +168,6 @@ SUBROUTINE XAJMX( FILELEN ,& ! ��ֵ ICHECK = 1 - DO I = 1, 3 - - WM(I) = PAR(I) - - END DO - - KC = PAR(4) - C = PAR(5) - B = PAR(6) - IMP1 = PAR(7) - SM = PAR(8) - EX = PAR(9) - KG = PAR(10) - KSS = PAR(11) - KKG = PAR(12) - KKSS = PAR(13) - DO I = 1, N QR(I) = 0.0 @@ -210,7 +200,7 @@ SUBROUTINE XAJMX( FILELEN ,& END IF EP(I) = EP(I) * KC - WM0 = WM(1) + WM(2) + WM(3) + WM0 = WUM + W1 + WDM W0 = W(1) + W(2) + W(3) PE = P(I) - EP(I) @@ -256,7 +246,7 @@ SUBROUTINE XAJMX( FILELEN ,& ELSE E(1) = W(1) + P(I) - E(2) = (EP(I) - E(1)) * W(2) / WM(2) + E(2) = (EP(I) - E(1)) * W(2) / W1 IF (W(2) .LE.( C * WM(2))) THEN @@ -282,15 +272,15 @@ SUBROUTINE XAJMX( FILELEN ,& W(2) = W(2) - E(2) W(3) = W(3) - E(3) - IF (W(1) .GT. WM(1)) THEN + IF (W(1) .GT. WUM) THEN - W(2) = W(1) - WM(1) + W(2) - W(1) = WM(1) + W(2) = W(1) - WUM + W(2) + W(1) = WUM - IF (W(2) .GT. WM(2)) THEN + IF (W(2) .GT. W1) THEN - W(3) = W(3) + W(2) - WM(2) - W(2) = WM(2) + W(3) = W(3) + W(2) - W1 + W(2) = W1 END IF diff --git a/HttpRequests/fortranwebapi.http b/HttpRequests/fortranwebapi.http index aa780ce..ecb004f 100644 --- a/HttpRequests/fortranwebapi.http +++ b/HttpRequests/fortranwebapi.http @@ -9,7 +9,19 @@ Content-Type: application/json "text": "{\"FuncName\":\"calculate_main\",\"ClassName\":\"\",\"Par\":[ {"Name":"FILELEN","DataType":"0","ArrayType":"0","IsOut":"2","Data":0}, {"Name":"NODE","DataType":"0","ArrayType":"0","IsOut":"2","Data":0}, {"Name":"M","DataType":"0","ArrayType":"0","IsOut":"2","Data":0}, - {"Name":"PAR","DataType":"1","ArrayType":"1","IsOut":"2","Data":[]}, + {"Name":"WUM","DataType":"1","ArrayType":"0","IsOut":"2","Data":0}, + {"Name":"W1","DataType":"1","ArrayType":"0","IsOut":"2","Data":0}, + {"Name":"WDM","DataType":"1","ArrayType":"0","IsOut":"2","Data":0}, + {"Name":"KC","DataType":"1","ArrayType":"0","IsOut":"2","Data":0}, + {"Name":"C","DataType":"1","ArrayType":"0","IsOut":"2","Data":0}, + {"Name":"B","DataType":"1","ArrayType":"0","IsOut":"2","Data":0}, + {"Name":"IMP1","DataType":"1","ArrayType":"0","IsOut":"2","Data":0}, + {"Name":"SM","DataType":"1","ArrayType":"0","IsOut":"2","Data":0}, + {"Name":"EX","DataType":"1","ArrayType":"0","IsOut":"2","Data":0}, + {"Name":"KG","DataType":"1","ArrayType":"0","IsOut":"2","Data":0}, + {"Name":"KSS","DataType":"1","ArrayType":"0","IsOut":"2","Data":0}, + {"Name":"KKG","DataType":"1","ArrayType":"0","IsOut":"2","Data":0}, + {"Name":"KKSS","DataType":"1","ArrayType":"0","IsOut":"2","Data":0}, {"Name":"NAREA","DataType":"0","ArrayType":"0","IsOut":"2","Data":0}, {"Name":"AREA","DataType":"1","ArrayType":"1","IsOut":"2","Data":[]}, {"Name":"UH","DataType":"1","ArrayType":"1","IsOut":"2","Data":[]}, diff --git a/Services/FortranInteropService.cs b/Services/FortranInteropService.cs index 2b2856c..fd2cc23 100644 --- a/Services/FortranInteropService.cs +++ b/Services/FortranInteropService.cs @@ -37,7 +37,19 @@ namespace FortranWebApi.Services ref int FILELEN, ref int NODE, ref int M, - float[] PAR, + ref float WUM, + ref float W1, + ref float WDM, + ref float KC, + ref float C, + ref float B, + ref float IMP1, + ref float SM, + ref float EX, + ref float KG, + ref float KSS, + ref float KKG, + ref float KKSS, ref int NAREA, float[] AREA, float[] UH, @@ -85,7 +97,19 @@ namespace FortranWebApi.Services int FILELEN = GetIntParameter(parameters, "FILELEN"); int NODE = GetIntParameter(parameters, "NODE"); int M = GetIntParameter(parameters, "M"); - float[] PAR = GetFloatArrayParameter(parameters, "PAR"); + float WUM = GetFloatParameter(parameters, "WUM"); + float W1 = GetFloatParameter(parameters, "W1"); + float WDM = GetFloatParameter(parameters, "WDM"); + float KC = GetFloatParameter(parameters, "KC"); + float C = GetFloatParameter(parameters, "C"); + float B = GetFloatParameter(parameters, "B"); + float IMP1 = GetFloatParameter(parameters, "IMP1"); + float SM = GetFloatParameter(parameters, "SM"); + float EX = GetFloatParameter(parameters, "EX"); + float KG = GetFloatParameter(parameters, "KG"); + float KSS = GetFloatParameter(parameters, "KSS"); + float KKG = GetFloatParameter(parameters, "KKG"); + float KKSS = GetFloatParameter(parameters, "KKSS"); int NAREA = GetIntParameter(parameters, "NAREA"); float[] AREA = GetFloatArrayParameter(parameters, "AREA"); float[] UH = GetFloatArrayParameter(parameters, "UH"); @@ -115,7 +139,19 @@ namespace FortranWebApi.Services ref FILELEN, ref NODE, ref M, - PAR, + ref WUM, + ref W1, + ref WDM, + ref KC, + ref C, + ref B, + ref IMP1, + ref SM, + ref EX, + ref KG, + ref KSS, + ref KKG, + ref KKSS, ref NAREA, AREA, UH,