[325] | 1 | MODULE traqsr |
---|
| 2 | !!====================================================================== |
---|
| 3 | !! *** MODULE traqsr *** |
---|
| 4 | !! Ocean physics: solar radiation penetration in the top ocean levels |
---|
| 5 | !!====================================================================== |
---|
| 6 | |
---|
| 7 | !!---------------------------------------------------------------------- |
---|
| 8 | !! tra_qsr : trend due to the solar radiation penetration |
---|
| 9 | !! tra_qsr_init : solar radiation penetration initialization |
---|
| 10 | !!---------------------------------------------------------------------- |
---|
[343] | 11 | !! OPA 9.0 , LOCEAN-IPSL (2005) |
---|
[719] | 12 | !! $Header$ |
---|
[343] | 13 | !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt |
---|
| 14 | !!---------------------------------------------------------------------- |
---|
[325] | 15 | !! * Modules used |
---|
| 16 | USE in_out_manager ! I/O manager |
---|
| 17 | |
---|
| 18 | IMPLICIT NONE |
---|
| 19 | PRIVATE |
---|
| 20 | |
---|
| 21 | !! * Routine accessibility |
---|
| 22 | PUBLIC tra_qsr_init ! routine called by opa.F90 |
---|
| 23 | |
---|
| 24 | !! * Shared module variables |
---|
| 25 | LOGICAL, PUBLIC :: ln_traqsr = .TRUE. !: qsr flag (Default=T) |
---|
| 26 | |
---|
| 27 | !! * Module variables |
---|
| 28 | REAL(wp), PUBLIC :: & !!! * penetrative solar radiation namelist * |
---|
[654] | 29 | xsi1 = 0.35_wp ! first depth of extinction |
---|
| 30 | LOGICAL , PUBLIC :: ln_qsr_sms = .false. ! flag to use or not the biological fluxes for light |
---|
[325] | 31 | |
---|
[654] | 32 | |
---|
[325] | 33 | CONTAINS |
---|
| 34 | |
---|
| 35 | SUBROUTINE tra_qsr_init |
---|
| 36 | !!---------------------------------------------------------------------- |
---|
| 37 | !! *** ROUTINE tra_qsr_init *** |
---|
| 38 | !! |
---|
| 39 | !! ** Purpose : Initialization for the penetrative solar radiation |
---|
| 40 | !! |
---|
| 41 | !! ** Method : The profile of solar radiation within the ocean is set |
---|
| 42 | !! from two length scale of penetration (xsr1,xsr2) and a ratio |
---|
[654] | 43 | !! (rabs). These parameters are read in the namqsr namelist. The |
---|
[325] | 44 | !! default values correspond to clear water (type I in Jerlov' |
---|
| 45 | !! (1968) classification. |
---|
| 46 | !! called by tra_qsr at the first timestep (nit000) |
---|
| 47 | !! |
---|
| 48 | !! ** Action : - initialize xsr1, xsr2 and rabs |
---|
| 49 | !! |
---|
| 50 | !! Reference : |
---|
| 51 | !! Jerlov, N. G., 1968 Optical Oceanography, Elsevier, 194pp. |
---|
| 52 | !! |
---|
| 53 | !! History : |
---|
| 54 | !! 8.5 ! 02-06 (G. Madec) Original code |
---|
| 55 | !!---------------------------------------------------------------------- |
---|
| 56 | !! * Local declarations |
---|
| 57 | |
---|
[976] | 58 | NAMELIST/nam_qsr/ ln_traqsr, xsi1 |
---|
[325] | 59 | !!---------------------------------------------------------------------- |
---|
| 60 | |
---|
[976] | 61 | ! Read Namelist nam_qsr : ratio and length of penetration |
---|
[325] | 62 | ! -------------------- |
---|
| 63 | REWIND ( numnam ) |
---|
[976] | 64 | READ ( numnam, nam_qsr ) |
---|
[325] | 65 | |
---|
| 66 | ! Parameter control and print |
---|
| 67 | ! --------------------------- |
---|
| 68 | IF( ln_traqsr ) THEN |
---|
| 69 | IF ( lwp ) THEN |
---|
| 70 | WRITE(numout,*) |
---|
| 71 | WRITE(numout,*) 'tra_qsr_init : penetration of the surface solar radiation' |
---|
| 72 | WRITE(numout,*) '~~~~~~~~~~~~' |
---|
[654] | 73 | WRITE(numout,*) ' Namelist namqsr : set the parameter of penetration' |
---|
[325] | 74 | WRITE(numout,*) ' first depth of extinction xsi1 = ',xsi1 |
---|
[654] | 75 | WRITE(numout,*) ' Biological fluxes for light(Y/N) ln_qsr_sms = ',ln_qsr_sms |
---|
[325] | 76 | WRITE(numout,*) ' ' |
---|
| 77 | END IF |
---|
| 78 | ELSE |
---|
| 79 | IF ( lwp ) THEN |
---|
| 80 | WRITE(numout,*) |
---|
| 81 | WRITE(numout,*) 'tra_qsr_init : NO solar flux penetration' |
---|
| 82 | WRITE(numout,*) '~~~~~~~~~~~~' |
---|
| 83 | END IF |
---|
| 84 | ENDIF |
---|
| 85 | |
---|
[498] | 86 | IF( xsi1 < 0.e0 ) & |
---|
| 87 | CALL ctl_stop( ' 0<xsi1 not satisfied' ) |
---|
[325] | 88 | |
---|
| 89 | |
---|
| 90 | END SUBROUTINE tra_qsr_init |
---|
| 91 | |
---|
| 92 | !!====================================================================== |
---|
| 93 | END MODULE traqsr |
---|