pr32604.f90

来自「用于进行gcc测试」· F90 代码 · 共 62 行

F90
62
字号
MODULE TEST  IMPLICIT NONE  INTEGER, PARAMETER :: dp=KIND(0.0D0)  TYPE mulliken_restraint_type    INTEGER                         :: ref_count    REAL(KIND = dp)                 :: strength    REAL(KIND = dp)                 :: TARGET    INTEGER                         :: natoms    INTEGER, POINTER, DIMENSION(:)  :: atoms  END TYPE mulliken_restraint_typeCONTAINS  SUBROUTINE INIT(mulliken)   TYPE(mulliken_restraint_type), INTENT(INOUT) :: mulliken   ALLOCATE(mulliken%atoms(1))   mulliken%atoms(1)=1   mulliken%natoms=1   mulliken%target=0   mulliken%strength=0  END SUBROUTINE INIT  SUBROUTINE restraint_functional(mulliken_restraint_control,charges, &                                charges_deriv,energy,order_p)    TYPE(mulliken_restraint_type), &      INTENT(IN)                             :: mulliken_restraint_control    REAL(KIND=dp), DIMENSION(:, :), POINTER  :: charges, charges_deriv    REAL(KIND=dp), INTENT(OUT)               :: energy, order_p    INTEGER                                  :: I    REAL(KIND=dp)                            :: dum    charges_deriv=0.0_dp    order_p=0.0_dp    DO I=1,mulliken_restraint_control%natoms       order_p=order_p+charges(mulliken_restraint_control%atoms(I),1) &                      -charges(mulliken_restraint_control%atoms(I),2)    ENDDO   energy=mulliken_restraint_control%strength*(order_p-mulliken_restraint_control%target)**2   dum=2*mulliken_restraint_control%strength*(order_p-mulliken_restraint_control%target)    DO I=1,mulliken_restraint_control%natoms       charges_deriv(mulliken_restraint_control%atoms(I),1)=  dum       charges_deriv(mulliken_restraint_control%atoms(I),2)= -dum    ENDDOEND SUBROUTINE restraint_functionalEND MODULE    USE TEST    IMPLICIT NONE    TYPE(mulliken_restraint_type) :: mulliken    REAL(KIND=dp), DIMENSION(:, :), POINTER  :: charges, charges_deriv    REAL(KIND=dp) :: energy,order_p    ALLOCATE(charges(1,2),charges_deriv(1,2))    charges(1,1)=2.0_dp    charges(1,2)=1.0_dp    CALL INIT(mulliken)    CALL restraint_functional(mulliken,charges,charges_deriv,energy,order_p)    write(6,*) order_pEND

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?