From 86977cdc23d9c68ca22dfdd16f45a60a1faf0e08 Mon Sep 17 00:00:00 2001 From: tp <1799149022@qq.com> Date: Thu, 12 Jun 2025 13:41:05 +0800 Subject: [PATCH] 2 --- Dockerfile | 4 + Fortran/1.json | 106 ++++++++++++++++++- Fortran/1.xlsx | Bin 10912 -> 7501 bytes Fortran/MSJGMX.f90 | 163 ++++++++++++++++++------------ Fortran/Mc_method.f90 | 22 ++-- Fortran/XAJ.f90 | 85 +++++++++++----- Fortran/XAJMX.f90 | 86 +++++++--------- HttpRequests/fortranwebapi.http | 14 ++- Services/FortranInteropService.cs | 42 +++++++- 9 files changed, 368 insertions(+), 154 deletions(-) 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 b7dbb866df202d8cae1932e7c87abdebd76826b1..279f36fdddca59e9f97f612f236e98fa08e7857a 100644 GIT binary patch literal 7501 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 QkzbUKkS}(A