!--------------------------------------- LICENCE BEGIN ----------------------------------- !Environment Canada - Atmospheric Science and Technology License/Disclaimer, ! version 3; Last Modified: May 7, 2008. !This is free but copyrighted software; you can use/redistribute/modify it under the terms !of the Environment Canada - Atmospheric Science and Technology License/Disclaimer !version 3 or (at your option) any later version that should be found at: !http://collaboration.cmc.ec.gc.ca/science/rpn.comm/license.html ! !This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; !without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. !See the above mentioned License/Disclaimer for more details. !You should have received a copy of the License/Disclaimer along with this software; !if not, you can write to: EC-RPN COMM Group, 2121 TransCanada, suite 500, Dorval (Quebec), !CANADA, H9P 1J3; or send e-mail to service.rpn@ec.gc.ca !-------------------------------------- LICENCE END --------------------------------------subroutine mupdts (sscale,inmemo,n,m,nrz) 1 c c arguments c logical sscale,inmemo integer n,m,nrz c---- c c On entry: c sscale: .true. if scalar initial scaling, c .false. if diagonal initial scaling c n: number of variables c c This routine has to return: c m: the number of updates to form the approximate Hessien H, c inmemo: .true., if the vectors y and s used to form H are stored c in core memory, c .false. otherwise (storage of y and s on disk, for c instance). c When inmemo=.false., the routine `dystbl', which stores and c restores (y,s) pairs, has to be rewritten. c c---- c if (sscale) then m=(nrz-3*n)/(2*n) else m=(nrz-4*n)/(2*n) endif inmemo=.true. return end